/usr/local/lib contém bibliotecas cujos relatórios do Aptitude não estão instalados

/usr/local/lib contém bibliotecas cujos relatórios do Aptitude não estão instalados

Estou tentando construir um projeto que use uma biblioteca específica (SDL) no Ubuntu. O projeto usa uma versão antiga da biblioteca (libSDL-1.2). Cometi o erro de instalar a biblioteca mais recente, mas já a removi. No entanto, ainda posso encontrar vestígios dele em vários diretórios de bibliotecas do Ubuntu.

insira a descrição da imagem aqui

Em alguns diretórios existe a versão adequada (/usr/lib/i386-linux-gnu/) enquanto em outros existe a versão mais recente e errada (/usr/local/lib/). Por que tenho essas inconsistências e como removo completamente o libSDL2?

Responder1

/usr/local/contém arquivos que não são instalados pelo gerenciador de pacotes, seja devido a uma instalação manual ou arquivos adicionais baixados, por exemplo, por um script de instalação de um pacote (embora a maioria deles vá para /opt/).

O APT, portanto, não tem conhecimento dos arquivos abaixo desse diretório. Se você instalou as bibliotecas manualmente, por exemplo, extraindo um arquivo lá, você também poderá removê-las da mesma maneira.
Preste atenção, porém, se você não os instalou manualmente. Neste caso, conte-nos como você os instalou para receber mais e melhor ajuda.

Outra possibilidade é que as bibliotecas possam estar lá porque podem ter sido baixadas por outra coisa, e não pela instalação da libsdl2 usando o APT. Por exemplo, o Source Engine da Valve usa SDL2. Quando você instala um jogo baseado no código-fonte, por exemplo, Half Life ou Portal, o Steam baixa suas próprias bibliotecas (embora as mantenha no diretório inicial do usuário). Isso pode vir de algo semelhante. Se você não tem ideia de onde eles vêm, deixe-os em paz. Eles não atrapalharão seu desenvolvimento, se feitos corretamente (veja abaixo) e a exclusão poderá quebrar algum outro aplicativo.

Se você quiser continuar usando o SDL1.2, poderá fazê-lo sem remover as outras bibliotecas: Diga ao compilador/vinculador para usar as bibliotecas mais antigas. As bibliotecas compartilhadas SDL2 são sempre chamadas libsdl2-....so, portanto, basta vincular as bibliotecas corretas sem elas sdl2.

informação relacionada