J'essaye 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?
L'option rpm que vous voulez est:
rpm -q --whatrequires sqlite
repoquery -q --installed --whatrequires sqlite
rpm -q --whatrequires sqlite
ne rapporte que des dependencies sur les noms des packages.
Au contraire, le repoquery
agit comme suit (à partir de pages de manuel):
--alldeps When used with --whatrequires, look for non-explicit dependencies in addition to explicit ones (eg files and Provides in addition to package names). This is the default.
Prenons le package libdb
.
# rpm -q --whatrequires libdb no package requires libdb
Aucun package ne dépend de libdb
, nous devrions donc pouvoir le supprimer en douceur. Toutefois…
# yum remove -y libdb Loaded plugins: fastestmirror Resolving Dependencies --> Running transaction check ---> Package libdb.x86_64 0:5.3.21-19.el7 will be erased --> Processing Dependency: libdb(x86-64) = 5.3.21-19.el7 for package: libdb-utils-5.3.21-19.el7.x86_64 --> Processing Dependency: libdb-5.3.so()(64bit) for package: pam-1.1.8-12.el7_1.1.x86_64 --> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-4.11.3-17.el7.x86_64 --> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-libs-4.11.3-17.el7.x86_64 --> Processing Dependency: libdb-5.3.so()(64bit) for package: libdb-utils-5.3.21-19.el7.x86_64 --> Processing Dependency: libdb-5.3.so()(64bit) for package: cyrus-sasl-lib-2.1.26-20.el7_2.x86_64 --> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-python-4.11.3-17.el7.x86_64 --> Processing Dependency: libdb-5.3.so()(64bit) for package: python-libs-2.7.5-39.el7_2.x86_64 --> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-devel-4.11.3-17.el7.x86_64 --> Processing Dependency: libdb-5.3.so()(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64 --> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-build-libs-4.11.3-17.el7.x86_64 --> Processing Dependency: libdb-5.3.so()(64bit) for package: iproute-3.10.0-54.el7_2.1.x86_64 --> Running transaction check . . . . . . . . . Error: Trying to remove "systemd", which is protected Error: Trying to remove "yum", which is protected
Comme vous pouvez le voir, d'autres packages ne dépendaient pas directement du packageage, mais sur le file libdb-5.3.so()(64bit)
fourni par celui-ci.
Enfin, voici la list réelle des packages en fonction de libdb
:
# repoquery -q --installed --whatrequires libdb cyrus-sasl-lib-0:2.1.26-20.el7_2.x86_64 iproute-0:3.10.0-54.el7_2.1.x86_64 libdb-utils-0:5.3.21-19.el7.x86_64 pam-0:1.1.8-12.el7_1.1.x86_64 postfix-2:2.10.1-6.el7.x86_64 python-libs-0:2.7.5-39.el7_2.x86_64 rpm-0:4.11.3-17.el7.x86_64 rpm-build-libs-0:4.11.3-17.el7.x86_64 rpm-devel-0:4.11.3-17.el7.x86_64 rpm-libs-0:4.11.3-17.el7.x86_64 rpm-python-0:4.11.3-17.el7.x86_64
Vous pouvez également essayer cette command.
repoquery --whatrequires sqlite
J'ai reçu cette command de ServerFault et aussi de The Fedora Forums.
Pour dnf (nouvelle version de yum), vous pouvez essayer avec la command wrapper repoquery:
dnf repoquery --whatrequires sqlite
S'il n'est pas disponible, vous pouvez l'installer avec la command:
dnf -y install dnf-plugins-core
Je pense que ce que vous voulez vraiment savoir est "quels sont les packages qui requièrent sqlite-3.3.6, mais ne seront pas contents avec sqlite-3.4.z" … et la seule bonne façon de le find, c'est de essayez-le. Comme:
echo | yum upgrade sqlite