O Apt poderia excluir pacotes necessários pelo software que os usuários instalaram da fonte?

14

O Apt lida com dependências entre pacotes instalados a partir de seus repositórios ou *.debarquivos. No entanto, e o software com o qual os usuários compilaram e instalaram a partir da fonte ./configure && make && make installsem antes criar um .debarquivo? É possível que o Apt remova os pacotes necessários para esses softwares? Instalar o software da fonte /optou /usr/localfazer a diferença?

Elena
fonte
1
Você pode instalar um pacote equivs como substituto de um pacote instalado da origem, para forçar suas dependências a permanecerem instaladas.
Faheem Mitha 04/07/2015

Respostas:

13

O APT não sabe nada sobre o software que foi instalado manualmente. Ele não sabe de quais bibliotecas esse software precisa ou algo assim.

Quando o APT instala um pacote apenas para atender às dependências de outro pacote, esse pacote é marcado como instalado automaticamente. Se você remover todos os pacotes que dependem de um pacote instalado automaticamente, esse pacote será removido quando você executar apt-get autoremove; frontends de nível superior para o APT geralmente oferecem isso após outras manutenções. Para evitar a remoção de pacotes necessários ao software instalado localmente, marque esses pacotes como instalados manualmente: ou a chave no aptitude.apt-mark manual PACKAGE-NAMEm

Para encontrar quais pacotes de biblioteca um executável binário precisa, execute ldd /path/to/executable. Para cada linha que contém , execute para exibir o nome do pacote que contém essa biblioteca. Para scripts, mostra o intérprete usado pelo script; verifique se esse intérprete permanece instalado. Encontrar que bibliotecas são usadas por um script pode ser difícil, não há uma maneira universal de fazer isso./usr/lib/SOMETHINGdpkg -S /usr/lib/SOMETHINGhead -n 1 /path/to/script

Se você instalou manualmente uma versão mais recente de um pacote presente em sua distribuição, observe as dependências do pacote da distribuição e marque-as como instaladas manualmente.

Gilles 'SO- parar de ser mau'
fonte
apt-getno Debian Jessie não tem a manualopção. Para essas dicas de instalação manual vs. automática (matic) que tenho usado apt-mark. ( apt-mark manual pkg, apt-mark showmanual pkg, apt-mark auto pkg, Etc.)
Lekensteyn
@Lekensteyn eu quis dizer apt-mark, obrigado.
Gilles 'SO- stop be evil'
14

apte dpkgabsolutamente pode remover o software exigido por outro software instalado localmente que esteja fora do escopo do sistema de gerenciamento de pacotes. Não há simplesmente nenhuma maneira para apte dpkgsaber que esse software pode existir.

O local em que esse software está instalado não faz diferença: pode estar /optou /usr/localnos diretórios pessoais dos usuários (nesse caso, mesmo o administrador do sistema pode não estar ciente de sua presença), ou em qualquer lugar, na verdade.

Tecnicamente, aptou dpkgpode até remover o software exigido por outro software que faz parte do sistema de gerenciamento de pacotes, se o último não declarar que depende do software anterior. No entanto, o processo de criação de pacotes deb inclui automação para ajudar a impedir que os mantenedores de pacotes se esqueçam de declarar uma dependência como essa.

Celada
fonte