Gibt es eine Möglichkeit, einen Abhängigkeitsbaum von yum abzurufen?
Reduzieren die chance auf die XY-problem, bin ich versucht zu installieren, PostGIS auf einem sauberen, virtuellen RHEL5-installation mit starken Einschränkungen. Ich weiß nicht, ob wir (als Gesellschaft) haben eine RH-Abonnement.
# yum install postgis
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Install Process
No package postgis available.
Nothing to do.
Wirft er den gleichen Fehler, wenn ich versuche zu installieren emacs
also ich bin mir relativ sicher, dass es egal ist, welches Paket ich bin versucht zu installieren.
Die VM hat internet-Zugang.
Alles was ich tun möchte, ist das abrufen eines vollständigen abhängigkeitsgraphen für ein Stück software, die ich angeben (offensichtlich, d.h. postgis
). yum
muss schon berechnen diese Abhängigkeit graph (oder eins zum Abruf zur Verfügung), Ihre Arbeit zu tun, so wie ich das anzapfen dieser Ressourcen?
InformationsquelleAutor der Frage Sean Allred | 2013-05-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Pro die RHEL5 pages: "repoquery ist ein Programm zum Abfragen von Informationen aus der YUM-repositories ähnlich zur rpm-Abfragen."
Für Ihren konkreten Fall von postgis:
Löschen Sie die ".i386" und ".i686" aus dem package-Namen, wenn Ihr system 64-bit.
Die Ausgabe von repoquery ist nicht perfekt, da zum Beispiel, es nicht zu Liste glibc-common in der obigen Liste. Aber würde das system nicht laufen, wenn es nicht beide glibc und glibc-common-bereits installiert.
BEARBEITEN: Obwohl es nicht zu einem Fehler, der
--recursive
Flagge angezeigt wird, nichts zu tun in RHEL5.11 und kann weggelassen werden. Nutzen Sie auch die--pkgnarrow=all
Flagge, um sicherzustellen, dass alle (installierten, verfügbaren, etc) Pakete gelten für die Abfrage. Schließlich, für einen Schritt der Rekursion, um mehr über die Abhängigkeitsstruktur, in einer bash-shell, übergeben Sie die Ausgabe des Befehl repoquery, um einen zweiten Befehl repoquery mittee
undxargs
etwa so:InformationsquelleAutor der Antwort ZaSter
Nur hinzufügen eine Verbesserung dieser Antwort möchte ich hier gewesen, als ich war, damit umzugehen.
HINZUFÜGEN --recursive macht NICHTS, wenn Sie --Baum-erfordert
Die beste option die es gibt, ist die
--tree-requires
option. Das ist die EINZIGE Möglichkeit, die ich gefunden habe, bekommen repoquery zu einer 100% kompletten Abhängigkeitsbaum, inklusive der Abhängigkeiten der Abhängigkeiten.Soweit ich das beurteilen kann, für eine
--requires
wird wieder das gleiche Ergebnis, sowohl mit als auch ohne--recursive
option.Wenn Sie wollen zu bekommen eine Liste von ALLEN Abhängigkeiten, die Sie tun MÜSSEN, ein
repoquery --tree-requires <My-Package>
. Sonst werden Sie nicht alle benötigten Abhängigkeiten.Wenn Sie wollen, um Ihnen in einem einfach zu Lesen-Liste, können Sie diesen Befehl ausführen:
Erzeugt eine lesbare, sortiert, package-Namen, nur eine Liste. Siehe das Beispiel mit der libxcb-Paket. Diese Liste wird ALLE Abhängigkeiten und beinhaltet die Abhängigkeiten der Abhängigkeiten.
Ich fand keinen Unterschied in den Ergebnissen mit
--recursive
oder--resolve
wenn Sie nicht mit der--whatrequires
Befehl.--whatrequires
dient einem anderen Zweck als ein standard-Abhängigkeitsstruktur oder Liste von Abhängigkeiten. Ich habe nicht gefunden eine Antwort auf stack overflow, die richtig erklärt, dieser (es gibt einige Kommentare).Gibt es derzeit eine feature-Anfrage zum hinzufügen eines "Baum-format" - Befehl repoquery, aber im moment scheint das nicht zu sein, eine option. Hoffentlich hilft die Lücke füllen.
InformationsquelleAutor der Antwort njfife
Für dieses, können Sie versuchen, die rpmreaper tool empfohlen aus diesem Artikel:
Wie um zu überprüfen, RPM Paket-Abhängigkeiten auf Fedora, CentOS oder RHEL
Bietet es eine curses-basierte Schnittstelle, die Ihnen erlaubt, selektiv drill-down in ein Paket von Anforderungen oder "drill-up" und sehen, was hängt von einem Paket.
Die typische Ausgabe der ASCII -
repoquery --tree-requires
ist sehr schwierig, Ihnen zu Folgen, wenn es mehrere Ebenen tief und Tausende von Zeilen lang. Die rpmreaper display ist viel einfacher zu Lesen und zu durchqueren.Hier ist ein kurzes Beispiel für die Verwendung der "drill-up" (aka "Erforderlich"), um einen Zyklus in der Samba-RPMs für Referenz:
InformationsquelleAutor der Antwort Mark Edington
Dies wird helfen, clean up der
--tree-requires
für (x86_64):InformationsquelleAutor der Antwort John Doe