-
rpm -q --requires somepackagehere
-
Um é o pacote
i?86
, o outro é o pacotex86_64
.
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?
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
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.
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
As pessoas já responderam com:
rpm -q --requires PKG
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