Para pesquisar o que causou a instalação de um determinado pacote, eu gostaria de obter uma lista de pacotes que dependem desse pacote. Não consegui encontrar nada óbvio man dpkg
.
201
Para pesquisar o que causou a instalação de um determinado pacote, eu gostaria de obter uma lista de pacotes que dependem desse pacote. Não consegui encontrar nada óbvio man dpkg
.
aptitude
algo que não é instalado por padrão há anos. Em 2017, todo mundo no Ubuntu ainda temapt-cache
. Qualquer um que seguir a pergunta vinculada se perderá em uma discussão sobre um programa que poucos terão.Respostas:
apt-cache rdepends packagename
deve fazer o que quiserfonte
apt-cache rdepends tofrodos
confirmou a suspeita de que foi instalado por outro pacote (o obsoletodos2unix
).--installed
, o resultado será útil para pacotes que podem ser usados por muitos outros:apt-cache rdepends --installed packagename
sudo apt rdepends packagename
(Note que não está usando o apt-cache, mas simplesmente apt)O aptitude tem uma maneira bastante agradável de lidar com isso:
Por padrão, ele lista apenas o motivo "mais instalado, mais forte, mais rígido, mais curto", mas você pode usar
aptitude -v why
para fazer com que ele produza tudo o que encontrar.fonte
reverse-depends
dentroubuntu-dev-tools
ubuntu-dev-tools
está no Debianopenssh-server
recomendado (e, portanto, instalado)xauth
em um servidor sem cabeçalho, arrastando centenas de dependências x11 e dezenas de atualizações inúteis por mês. Esse é o problema com o gerenciamento automatizado de pacotes!Exemplo:
fonte
apt showpkg <pkgname>
Há mais de uma maneira, com cada método mostrando uma saída diferente.
Para uma visão detalhada da árvore de dependência reversa completa;
Alternativamente;
Ou uma lista concisa:
fonte
rdepends
mostra nessa árvore?apt-rdepends php7.0-fpm
mostrased
.sed
não depende do PHP, muito menos do PHP FPM.apt-rdepends -r yourPackageNameHere
A opção mais simples ainda é:
o que não requer a instalação de nenhum pacote.
fonte
apt-cache
saída de s. É exatamente o que eu precisava agora (depurando uma incompatibilidade glibc 2.28, portanto, com votos positivos)Além de outras boas respostas, um APT / APT-GET
-s
faz uma remoção "simulada" (ou instala).sudo apt -s remove <pkgname>
O uso
-s
ou--simulated
remoção (ou instalação) de pacotes normalmente listará todas as dependências afetadas. Ele mostrará pacotes órfãos ao remover ou dependências necessárias ao instalar sem realmente executar oinstall
ouremove
. Apenas informativo.fonte
apt remove -s php7.0-fpm
mostraThe following additional packages will be installed: apache2 apache2-bin apache2-data libapache2-mod-php7.0 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0
. Por que o apache seria instalado se eu removesse o PHP FPM?