Listar pacotes no Yum que dependem de outro pacote instalado

34

Estou tentando instalar um pacote RPM de terceiros no RHEL5, que depende da versão 3.4 do sqlite. De acordo com o Yum eu já tenho o 3.3.6 instalado.

Existe uma maneira de listar os pacotes instalados que dependem do sqlite 3.3.6?

    
por Rich 08.06.2011 / 11:52

5 respostas

36

A opção de rpm que você quer é:

rpm -q --whatrequires sqlite

Editado: adicionado - instalado por discussão em outras respostas / comentários

Editado: removido - instalado como se fosse uma opção inválida para rpm

    
por 08.06.2011 / 15:58
22

Resposta

repoquery -q --installed --whatrequires sqlite

Explicações

rpm -q --whatrequires sqlite apenas relata dependências nos nomes dos pacotes.

Pelo contrário, repoquery age da seguinte forma (de manpages):

   --alldeps
          When used with --whatrequires, look for non-explicit dependencies in addition to explicit ones (e.g. files and Provides  in  addition  to  package  names).
          This is the default.

Exemplo

Vamos pegar o pacote libdb .

# rpm -q --whatrequires libdb
no package requires libdb

Nenhum pacote depende de libdb , portanto, poderemos removê-lo sem problemas. No entanto ...

# yum remove -y libdb
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package libdb.x86_64 0:5.3.21-19.el7 will be erased
--> Processing Dependency: libdb(x86-64) = 5.3.21-19.el7 for package: libdb-utils-5.3.21-19.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: pam-1.1.8-12.el7_1.1.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-libs-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: libdb-utils-5.3.21-19.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: cyrus-sasl-lib-2.1.26-20.el7_2.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-python-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: python-libs-2.7.5-39.el7_2.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-devel-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-build-libs-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: iproute-3.10.0-54.el7_2.1.x86_64
--> Running transaction check
. . .
. . .
. . .
Error: Trying to remove "systemd", which is protected
Error: Trying to remove "yum", which is protected

Como você pode ver, alguns outros pacotes não dependem diretamente do pacote, mas do arquivo libdb-5.3.so()(64bit) fornecido por ele.

Finalmente, aqui está a lista real de pacotes, dependendo de libdb :

# repoquery -q --installed --whatrequires libdb
cyrus-sasl-lib-0:2.1.26-20.el7_2.x86_64
iproute-0:3.10.0-54.el7_2.1.x86_64
libdb-utils-0:5.3.21-19.el7.x86_64
pam-0:1.1.8-12.el7_1.1.x86_64
postfix-2:2.10.1-6.el7.x86_64
python-libs-0:2.7.5-39.el7_2.x86_64
rpm-0:4.11.3-17.el7.x86_64
rpm-build-libs-0:4.11.3-17.el7.x86_64
rpm-devel-0:4.11.3-17.el7.x86_64
rpm-libs-0:4.11.3-17.el7.x86_64
rpm-python-0:4.11.3-17.el7.x86_64
    
por 15.11.2016 / 10:58
6

Para dnf (nova versão do yum), você pode tentar com o comando repoquery wrapper:

dnf repoquery --whatrequires sqlite

Se não estiver disponível, você poderá instalá-lo com o comando:

dnf -y install dnf-plugins-core
    
por 25.02.2016 / 15:34
5

Você também pode tentar este comando.

repoquery --whatrequires sqlite

Eu tenho este comando de ServerFault e também de Os fóruns do Fedora.

    
por 27.05.2014 / 21:09
2

Eu acho que o que você realmente quer saber é "quais são os pacotes que requerem o sqlite-3.3.6, mas não ficarão felizes com sqlite-3.4.z" ... e a única boa maneira de descobrir isso é tentar. Como:

echo | yum upgrade sqlite
    
por 24.06.2011 / 22:35