Como verificar se é seguro excluir uma biblioteca?

4

Encontrei uma biblioteca no meu sistema e não acho que ela seja usada em lugar algum. Então, pelo amor de Deus, eu o apagaria, mas quero ter certeza de que não quebre nada.

Especificamente, é sobre libgme0. Eu estou no Linux Mint 18.

Até agora eu tentei

ldd /bin/* | grep libgme0 ldd /sbin/* | grep libgme0 ldd /usr/bin/* | grep libgme0 ldd /usr/sbin/* | grep libgme0

e não obteve resultados. Isso é prova suficiente de que esta biblioteca não é utilizada e salva para excluir?

    
por mad 13.12.2016 / 21:56

4 respostas

8

Você provavelmente deve deixar o gerenciador de pacotes de sua distribuição decidir se é seguro removê-lo ou não.

Talvez tente removê-lo com apt-get remove libgme0 e veja se ele deseja remover outros pacotes?

    
por 13.12.2016 / 22:06
4

Os arquivos em /bin , /lib , /sbin ou /usr , exceto /usr/local , estão sob o controle do gerenciador de pacotes. Nunca modifique ou exclua esses arquivos manualmente.

Para verificar se uma biblioteca em /lib ou /usr/lib está em uso, primeiro determine qual pacote contém. No Linux Mint, execute dpkg -S /usr/lib/libgme.so.* . Em seguida, determine quais pacotes instalados têm dependência no pacote da biblioteca; você pode usar aptitude search '~i ~Dlibgme0' . Se isso retornar quaisquer ocorrências, a biblioteca estará em uso e você não poderá removê-la sem quebrar seu sistema (a menos que você não use nenhum dos pacotes que dependem dela, caso em que você poderá remover a biblioteca se remover esses outros pacotes também). Como alternativa, solicite a remoção do pacote ( sudo apt-get remove libgme0 ) e veja o que mais é removido com ele.

Em geral, não remova algo a menos que você tenha certeza de que não precisa dele. Muitos arquivos são necessários porque algum outro programa os utiliza, mesmo que você não os use diretamente.

O APT, a ferramenta de gerenciamento de pacotes usada no Mint (e no Debian, Ubuntu, elementary OS e outros), possui um mecanismo para marcar pacotes como “instalados automaticamente” (como dependência de outro pacote) ou “manualmente instalado”. Você pode executar apt-get autoremove para remover todos os pacotes marcados como instalados automaticamente e que atualmente não são requeridos por nenhum pacote instalado manualmente. Revise a lista de pacotes que ele propõe remover: às vezes um pacote é instalado automaticamente, mas você o quer. Use apt-mark ou Aptitude para definir o marcador manual / automático de um pacote.

    
por 14.12.2016 / 02:30
2

Não, não é prova suficiente que não seja usado e seguro excluir.

Binários que usam uma biblioteca podem se sentar em outros locais, exceto / bin, / sbin, / usr / bin, / usr / sbin.

    
por 13.12.2016 / 23:15
1

A resposta curta

Não.

A resposta longa

Não. Porque não é uma lista completa de binários que podem usar essa biblioteca. Binários podem existir em qualquer lugar no seu sistema de arquivos. Os locais binários padrão incluem /bin , /bin/sbin , /usr/bin , /usr/sbin , /usr/local/bin , /usr/local/sbin . No entanto, é provável que alguns pacotes instalem executáveis em outros locais, como /opt . Além disso, os usuários podem colocá-los em quase todos os lugares em seu diretório pessoal e você não tem controle sobre isso se não tiver privilégios suficientes. Se você realmente deseja enumerar todos os executáveis em seu sistema de arquivos, este é um comando mais seguro:

find / -type f -perm -100

Mas, novamente, isso precisa de privilégios. Como você pode esperar, verificar se uma biblioteca não é usada por binários pode ser um processo demorado e tedioso.

No entanto, se você estiver usando um gerenciador de pacotes, ele fornecerá ajuda. Qualquer gerenciador de pacotes não trivial pode ajudá-lo a listar as dependências da biblioteca. Por exemplo, os seguintes comandos mostram as dependências da biblioteca do pacote wget :

Debian / Ubuntu:

apt-cache show wget

Arch:

pacman -Qi wget

Normalmente, os gerenciadores de pacotes também impedem que você desinstale um pacote de biblioteca que possa ser usado no momento.

Usar um gerenciador de pacotes é a maneira correta de manter as dependências da biblioteca. Se você realmente precisa de softwares que não são oferecidos em sua distribuição e precisam compilar a partir da origem, deixe os binários de saída e bibliotecas nos diretórios prefixados por /usr/local (como /usr/local/bin , /usr/local/sbin e /usr/local/lib . Isso fará seu trabalho muito mais fácil no caso de você querer remover uma biblioteca no futuro, porque não é esperado que pacotes mantidos pelo gerenciador de pacotes dependam de bibliotecas em /usr/local .

    
por 14.12.2016 / 07:45