Como encontrar razão para pacotes órfãos no apt-get autoremove?

3

Em geral, apt-get autoremove remove pacotes que foram instalados como uma dependência de algum outro pacote que não está mais instalado. Percebi que minha lista de pacotes órfãos inclui coisas como emacs24 e tmux , que definitivamente quero manter. É possível descobrir qual outro pacote (agora ausente) foi responsável por instalá-los em primeiro lugar?

    
por bluenote10 05.08.2017 / 12:50

1 resposta

4

Automaticamente:

Uma das soluções é usar aptitude , primeiro instalá-lo:

sudo apt install aptitude

Agora, para descobrir por que um pacote foi instalado no seu Ubuntu, você pode executar:

aptitude why pkgname 

No entanto, note que:

  

A dependência que o aptitude produziu neste caso é apenas uma sugestão. Isso ocorre porque nenhum pacote atualmente instalado neste computador depende ou recomenda o "pkgname".

Além disso:

  

aptitude why não executa resolução completa de dependência; só exibe   relações diretas entre pacotes.

Em conclusão, se você não encontrar um pacote relacionado, há uma grande chance de que este pacote tenha sido instalado como uma dependência ou recomendação de outros pacotes que serão removidos usando apt autoremove ou de alguma forma está relacionado a essa cadeia.

manualmente

Primeiro, vamos criar uma situação e, em seguida, tentar descobrir por que um pacote foi instalado. Instalei pela primeira vez vlc em meu sistema:

sudo apt install vlc

depois disso, removo apenas o vlc usando sudo apt remove vlc , agora, se eu executar sudo apt autoremove , recebo:

libqt5x11extras5 vlc-bin vlc-plugin-qt ...

vamos primeiro verificar um deles usando aptitude :

$ aptitude why libqt5x11extras5
aptitude why libqt5x11extras5
i   xorg      Depends  xterm | x-terminal-emulator
p   qterminal Provides x-terminal-emulator

no entanto, o outro por causa de uma cadeia de dependência direta funcionará bem:

$ aptitude why vlc-bin
c   vlc      Depends  vlc-bin

preste atenção no c significa que o pacote foi excluído, mas seus arquivos de configuração ainda estão no meu sistema, portanto há uma grande chance (nesse caso, 100%) de que vlc-bin tenha sido instalado por vlc .

Agora voltemos ao nosso trabalho e descubra porque libqt5x11extras5 reside no nosso Ubuntu:

$ apt-cache rdepends libqt5x11extras5 | xargs dpkg -l |& grep -e '^i' -e '^rc'

usando apt-cache rdepends Estou procurando todos os pacotes que dependam de libqt5x11extras5 , então estou procurando aqueles que estão instalados ou foram instalados no meu sistema usando dpkg com a combinação de grep , o resultado é:

ii  libqt5x11extras5
ii  vlc-plugin-qt

ver? Descobrimos que esse pacote estava relacionado a outro pacote que está em nossa lista autoremove : vlc-plugin-qt , no final:

$ aptitude why vlc-plugin-qt
c   vlc

e voltamos para o vlc .

    
por Ravexina 05.08.2017 / 13:20