web-dev-qa-db-fra.com

Comment lister les dépendances RPM?

Notre serveur de production exécute CentOS version 5.2 (finale).

Comment puis-je voir/obtenir/lister toutes les dépendances d'un package déjà installé RPM?

Par exemple: SQLite v3.3.6 est déjà installé sur le serveur. Je veux voir toutes les dépendances de ce paquet particulier.

Voici la sortie de la commande: rpm -qa |grep sqlite

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

Aussi, pourquoi il répertorie 2 entrées de sqlite-3.3.6-2 ici?

38
Gnanam
  1. rpm -q --requires somepackagehere

  2. L'un est le i?86 package, l'autre est le x86_64 paquet.

30

La commande yum deplist Vous montrera quelles sont les dépendances rpm, voici un exemple pour le package expect (cela fonctionnera même si vous n'avez pas encore le package installé localement):

# 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
35
davey

Suite à la réponse d'Ignacio, vous pouvez voir l'architecture spécifique des packages en procédant comme suit:

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

Dans mon cas, je n'ai qu'un seul package, i686 ... mais vous pouvez obtenir l'architecture associée aux packages de cette façon. Si vous êtes intéressé par ce que vous pouvez obtenir d'autre du --queryformat, émettez un rpm --querytags pour voir la liste des variables disponibles.

6
Alex

Les gens ont déjà répondu:

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

Oui, rpm ou yum fonctionne et répond correctement à la question. La principale différence entre rpm et yum est que yum montre également quels packages vous pouvez installer pour répondre aux exigences de la bibliothèque et/ou du fichier. Malheureusement, si le package n'est pas installé, aucune de ces méthodes n'est utile. Étant donné que l'affiche d'origine a déjà spécifié que le package que vous vérifiez est installé, il s'agit d'un point d'inhibition.

Que faire si vous n'avez pas installé le package? yum peut toujours être utilisé, mais indirectement. Vous pouvez effectuer une installation fictive en annulant l'opération d'installation.

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

Voici un exemple:

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
3
Suave-V

J'ai un extrait rapide de Shell qui imprime tous les packages installés ainsi que leurs dépendances:

for i in `rpm -qa` ; do echo "Package [$i]:"; rpm -q --requires $i ; echo ; done
3
Daeon