J'essaie d'installer un package RPM tiers sur RHEL5, qui dépend de la version 3.4 de sqlite. Selon Yum, j'ai déjà installé 3.3.6.
Existe-t-il un moyen de répertorier les packages installés qui dépendent de sqlite 3.3.6?
package-management
rhel
yum
Riches
la source
la source
repoquery
peut être utilisé pour générer une belle arborescence ressemblant à la structure de tous les paquets nécessitant un paquet particulier, par exemple:repoquery --pkgnarrow=installed --tree-whatrequires sqlite
--installed
est une option pourrepoquery
mais n'est pas valide pourrpm
.Répondre
Des explications
rpm -q --whatrequires sqlite
rapporte uniquement les dépendances sur les noms de paquets.Au contraire,
repoquery
agit comme suit (à partir des pages de manuel):Exemple
Prenons le paquet
libdb
.Aucun paquet ne dépend
libdb
, nous devrions donc pouvoir le retirer en douceur. Pourtant...Comme vous pouvez le constater, certains autres paquets ne dépendaient pas directement du paquet, mais du fichier
libdb-5.3.so()(64bit)
fourni par celui-ci.Enfin, voici la liste réelle des paquets en fonction de
libdb
:la source
Pour dnf (nouvelle version de yum), essayez avec la commande de wrapper de repoquerie:
S'il n'est pas disponible, vous pouvez l'installer avec la commande suivante:
la source
--installed --recursive
de la fin pour qu'elle ne retourne que ce qui est réellement installé et qu'elle ne soit pas extraite des référentielsVous pouvez également essayer cette commande.
J'ai reçu cette commande de ServerFault et également de The Fedora Forums.
la source
Je pense que ce que vous voulez vraiment savoir, c’est "quels sont les paquets qui nécessitent sqlite-3.3.6, mais ne seront pas satisfaits de sqlite-3.4.z" ... et le seul bon moyen de le savoir est de: l'essayer Comme:
la source
Comme l'a dit Wes Hardaker , une bonne méthode intégrée consiste à utiliser
rpm -q --whatrequires <package>
. Le fait est que celarpm
fonctionne sur les capacités de résolution des dépendances, pas simplement sur les paquets, comme c'est ledpkg
cas par exemple dans la famille de distributions Linux Debian / Ubuntu. Comme d'autres l'ont noté, le simple fait derpm -q --whatrequires sqlite
raconter ne raconte pas toute l'histoire, raison pour laquelle certains ont suggéré d'utiliserrepoquery
.repoquery
Cependant, RHEL / CentOS 7 n’est pas installé par défaut (peut-être aussi sur le bureau?), de sorte qu’il n’est peut-être pas disponible pour tout le monde.Un utilisateur peut
rpm -q --provides <pkgname>
afficher toutes les fonctionnalités fournies par un package, puis utiliserrpm -q --whatrequires <capability>
pour déterminer les packages installés qui en ont besoin. Cette information peut être interrogée de manière succincte à l'aide d'une ligne simple BASH (séparée ici en deux lignes):Cela utilise uniquement les options intégrées à
rpm
lui-même et ne nécessite donc pas l'installation de packages supplémentaires (par exempleyum-utils
dans CentOS 7, qui contient le packagerepoquery
).la source