Como listar dependências de RPM?

31

Nosso servidor de produção está executando o CentOS Release 5.2 (Final).

Como faço para ver / obter / listar todas as dependências de um pacote RPM já instalado ?

Por exemplo: o SQLite v3.3.6 já está instalado no servidor. Eu quero ver todas as dependências deste pacote em particular.

Aqui está a saída do comando: rpm -qa |grep sqlite

python-sqlite-1.1.7-1.2.1
sqlite-3.3.6-2
sqlite-3.3.6-2

Além disso, por que listar 2 entradas de sqlite-3.3.6-2 aqui?

    
por Gnanam 09.11.2010 / 08:49

5 respostas

25
  1. rpm -q --requires somepackagehere

  2. Um é o pacote i?86 , o outro é o pacote x86_64 .

por 09.11.2010 / 08:53
33

O comando yum deplist mostrará quais rpm são dependências, aqui está um exemplo para o pacote expect (isso funcionará mesmo se você ainda não tiver o pacote instalado localmente ):

# yum deplist expect
..
..
package: expect.i386 5.43.0-5.1
 dependency: libc.so.6
  provider: glibc.i686 2.5-49
  provider: glibc.i686 2.5-49
 dependency: libtcl8.4.so
  provider: tcl.i386 8.4.13-4.el5
    
por 09.11.2010 / 09:57
6

Seguindo a resposta de Ignacio, você pode ver a arquitetura específica dos pacotes fazendo o seguinte:

$ rpm -qa --queryformat "%{NAME} %{ARCH}\n" sqlite
sqlite i686

No meu caso, eu só tenho o pacote i686 ... mas você pode obter a arquitetura associada aos pacotes dessa maneira. Se você estiver interessado no que mais pode obter do --queryformat, emita um rpm --querytags para ver a lista de variáveis disponíveis.

    
por 09.11.2010 / 09:51
3

Eu tenho um snippet de shell rápido que mostra todos os pacotes instalados junto com suas dependências:

for i in 'rpm -qa' ; do echo "Package [$i]:"; rpm -q --requires $i ; echo ; done
    
por 29.05.2017 / 21:10
1

As pessoas já responderam com:

  1. rpm -q --requires PKG
  2. yum -q deplist PKG

Sim, rpm ou yum funciona e responde corretamente à pergunta. A principal diferença entre rpm e yum é que o yum também mostra quais pacotes você pode instalar para atender à biblioteca e / ou aos requisitos de arquivo. Infelizmente, se o pacote não estiver instalado, nenhum desses métodos será útil. Como o pôster original já especificou que o pacote que você está verificando está instalado, esse é um ponto sem áudio.

E se você não tivesse o pacote instalado? yum ainda pode ser usado, mas indiretamente. Você pode fazer uma instalação simulada cancelando a operação de instalação.

printf n  |  yum install PKG  |  grep -- "---> Package"

Aqui está um exemplo:

printf n  |  yum install php  |  grep -- "---> Package"
---> Package php.x86_64 0:5.4.16-45.el7 will be installed
---> Package php-cli.x86_64 0:5.4.16-45.el7 will be installed
---> Package php-common.x86_64 0:5.4.16-45.el7 will be installed
---> Package libzip.x86_64 0:0.10.1-8.el7 will be installed
    
por 22.09.2018 / 01:38