Estou tentando instalar um pacote RPM de terceiros no RHEL5, que depende da versão 3.4 do sqlite. De acordo com Yum, eu já tenho o 3.3.6 instalado.
Existe uma maneira de listar os pacotes instalados que dependem do sqlite 3.3.6?
package-management
rhel
yum
Rico
fonte
fonte
repoquery
pode ser usado para gerar uma estrutura agradável como uma árvore de todos os pacotes que requerem um pacote específico, por exemplo:repoquery --pkgnarrow=installed --tree-whatrequires sqlite
--installed
é uma opção para,repoquery
mas é inválida pararpm
.Responda
Explicações
rpm -q --whatrequires sqlite
relata apenas dependências nos nomes dos pacotes.Pelo contrário,
repoquery
age da seguinte forma (de páginas de manual):Exemplo
Vamos pegar o pacote
libdb
.Nenhum pacote depende
libdb
, portanto, poderemos removê-lo sem problemas. Contudo...Como você pode ver, alguns outros pacotes dependiam não 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
:fonte
Para o dnf (nova versão do yum), você pode tentar com o comando repoquery wrapper:
Se não estiver disponível, você pode instalá-lo com o comando:
fonte
--installed --recursive
no final para que ele só retorna o que está realmente instalado e não puxar a partir dos repositóriosVocê também pode experimentar este comando.
Eu recebi esse comando do ServerFault e também dos Fóruns do Fedora.
fonte
Eu acho que o que você realmente quer saber é "quais são os pacotes que exigem o sqlite-3.3.6, mas não serão felizes com o sqlite-3.4.z" ... e a única maneira de descobrir isso é: tente. Gostar:
fonte
Como Wes Hardaker disse , um bom método interno é usar
rpm -q --whatrequires <package>
. O fato é querpm
opera em recursos para resolução de dependências, não apenas em pacotes, como por exemplodpkg
na família de distribuições Linux Debian / Ubuntu. Como outros observaram, simplesmente fazerrpm -q --whatrequires sqlite
não conta a história toda, daí o motivo de alguns sugerirem o usorepoquery
.repoquery
, no entanto, não é instalado por padrão no RHEL / CentOS 7 mínimo (talvez na área de trabalho também?); portanto, pode não estar disponível para todos.Um usuário pode fazer
rpm -q --provides <pkgname>
para ver todos os recursos que um pacote fornece e depois usarrpm -q --whatrequires <capability>
para ver quais pacotes instalados exigem esse recurso. Esta informação pode ser consultada de forma sucinta usando uma linha única BASH (separada aqui em duas linhas para o comprimento):Isso usa apenas opções embutidas em
rpm
si e, portanto, não requer a instalação de nenhum pacote adicional (por exemplo,yum-utils
no CentOS 7, que é o pacote que contémrepoquery
).fonte