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
.