Wie bekomme ich eine Liste der Abhängigkeiten eines nicht installierten RPM-Pakets?

73

apt-cache show <package> zeigt auch die Abhängigkeiten.

yum info <package> zeigt keine Abhängigkeiten, kennt sie aber offensichtlich.

Wie frage ich yum nach Abhängigkeiten des angegebenen Pakets?

Vi.
quelle

Antworten:

85

Yum hat diese Fähigkeit nicht. Verwenden Sie stattdessen das repoqueryTool aus dem yum-utilsPaket.

repoquery --requires <package>

ODER verwenden Sie --resolve, um zu sehen, welche zusätzlichen RPM-Pakete erforderlich sind, um die Abhängigkeiten zu erfüllen

repoquery --requires --resolve <package>
Ignacio Vazquez-Abrams
quelle
Wie würde ich dasselbe tun, wenn ich eine lokale RPM-Datei hätte?
Usman Ismail
Vielleicht die Steuerdatei aus dem RPM-Paket extrahieren und untersuchen?
Vi.
13
Wenn Sie es heruntergeladen haben, verwenden Sie rpm -qp --requires <package file>.
Ignacio Vazquez-Abrams
Wenn Sie RHN verwenden, müssen Sie --plugins zum Repoquery-Aufruf hinzufügen. Siehe stackoverflow.com/questions/15433843/…
nlu
Was macht --resolveeigentlich? Das Ausführen repoquery --requires --resolveeines Pakets, das bereits installiert ist, sollte eine leere Liste zurückgeben, da alle Abhängigkeiten bereits erfüllt sind. Als ich es mit einem bereits installierten Paket ausprobierte, wurden einige aufgelistet, einschließlich des Pakets selbst (alle sind bereits installiert).
Haridsv
46

Verwenden Sie deplistBefehl,

yum deplist <package>

Aus Yum's Handbuch:

Erzeugt eine Liste aller Abhängigkeiten und welche Pakete diese Abhängigkeiten für die angegebenen Pakete bereitstellen.

Update für dnf

Um dasselbe mit dnf zu tun, können wir es tun

dnf repoquery --requires <package>

Wie man yum2dnfgesagt:

Eine Alternative zum Befehl Yum deplist zum Ermitteln von Abhängigkeiten des Pakets ist dnf repoquery - Erfordert die Verwendung des Repoquery-Plugins.

Navid Ht
quelle
5
Leider gibt dies eine Liste aller möglichen Anbieter jeder Abhängigkeit zurück, die am Ende viele Hunderte oder Tausende von Zeilen anstelle einer einfachen Liste der Namen abhängiger Pakete zurückgeben kann.
Deesto
13

Wenn Sie ein lokales RPM haben, können Sie eine Liste der Abhängigkeiten erhalten über:

rpm -qpR mediawiki-1.4rc1-4.i586.rpm
Pete
quelle
2
Funktioniert auch für URLs.
Acumenus
Wenn Sie -q weglassen, können Sie Ihre konfigurierten Repos abfragen: rpm -qR graphviz listet alle Abhängigkeiten für mich auf
natxo asenjo
2

Wenn Sie die Liste der benötigten Pakete benötigen, verwenden Sie:

dnf repoquery - erfordert --resolve`

Im Falle von Firefox:

sudo dnf repoquery --requires --resolve firefox

Ich habe die Ausgabe: Last metadata expiration check: 0:00:00 ago on Wed 13 Dec 2017 21:41:47 GMT. atk-0:2.26.1-1.fc27.x86_64 bash-0:4.4.12-12.fc27.x86_64 cairo-0:1.15.8-1.fc27.x86_64 cairo-gobject-0:1.15.8-1.fc27.x86_64 dbus-glib-0:0.108-4.fc27.x86_64 dbus-libs-1:1.12.0-1.fc27.x86_64 fontconfig-0:2.12.6-4.fc27.x86_64 freetype-0:2.8-6.fc27.x86_64 freetype-freeworld-0:2.8-4.fc27.x86_64 gdk-pixbuf2-0:2.36.11-1.fc27.x86_64 glib2-0:2.54.2-1.fc27.x86_64 glibc-0:2.26-16.fc27.i686 glibc-0:2.26-16.fc27.x86_64 gtk2-0:2.24.31-6.fc27.x86_64 gtk3-0:3.22.26-1.fc27.x86_64 hunspell-0:1.5.4-4.fc27.x86_64 libX11-0:1.6.5-4.fc27.x86_64 libX11-xcb-0:1.6.5-4.fc27.x86_64 libXcomposite-0:0.4.4-11.fc27.x86_64 libXdamage-0:1.1.4-11.fc27.x86_64 libXext-0:1.3.3-7.fc27.x86_64 libXfixes-0:5.0.3-4.fc27.x86_64 libXrender-0:0.9.10-4.fc27.x86_64 libXt-0:1.1.5-6.fc27.x86_64 libffi-0:3.1-14.fc27.x86_64 libgcc-0:7.2.1-2.fc27.x86_64 libjpeg-turbo-0:1.5.1-4.fc27.x86_64 libstdc++-0:7.2.1-2.fc27.x86_64 libvpx-0:1.6.1-4.fc27.x86_64 libxcb-0:1.12-5.fc27.x86_64 mozilla-filesystem-0:1.9-17.fc27.x86_64 nspr-0:4.17.0-1.fc27.i686 nspr-0:4.17.0-1.fc27.x86_64 nss-0:3.34.0-1.0.fc27.i686 nss-0:3.34.0-1.0.fc27.x86_64 nss-util-0:3.34.0-1.0.fc27.x86_64 p11-kit-trust-0:0.23.8-1.fc27.i686 p11-kit-trust-0:0.23.9-2.fc27.x86_64 pango-0:1.40.14-1.fc27.x86_64 startup-notification-0:0.12-14.fc27.x86_64 u2f-hidraw-policy-0:1.0.2-5.fc27.x86_64 zlib-0:1.2.11-4.fc27.x86_64

Paulo Fidalgo
quelle
0

Wenn Sie ein Paket und seine Abhängigkeiten über yum installieren möchten , versuchen Sie stattdessen die Option localinstall, wenn Sie es installieren. Das localinstallinstalliere ein Paket und finde alle Abhängigkeiten und lade sie herunter:

$ yum -y localinstall <package>

Ich bin kein yum guru, aber das funktioniert gut für mich, macht es einfach zu installieren, einschließlich Abhängigkeiten :-)

Yooakim
quelle