Frage Wie listet RPM-Abhängigkeiten auf?


Auf unserem Produktionsserver läuft CentOS Release 5.2 (Final).

Wie kann ich alle Abhängigkeiten von einem sehen / bekommen / auflisten? bereits installiert RPM-Paket?

Zum Beispiel: SQLite v3.3.6 ist bereits auf dem Server installiert. Ich möchte alle Abhängigkeiten dieses bestimmten Pakets sehen.

Hier ist die Ausgabe des Befehls: rpm -qa |grep sqlite

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

Auch, warum es 2 Einträge von sqlite-3.3.6-2 Hier?


30
2017-11-09 07:49


Ursprung




Antworten:


  1. rpm -q --requires somepackagehere

  2. Einer ist der i?86 Paket, das andere ist das x86_64 Paket.


24
2017-11-09 07:53



Mein Betriebssystem ist 64-Bit. Können 2 Architekturpakete auf demselben Server existieren? Was ist der Zweck / die Notwendigkeit, 2 Architekturpakete gleichzeitig zu haben? - Gnanam
RH- / Fedora-abgeleitete Distributionsunterstützung Multiarch, wobei mehrere Pakete, die zu "anders-doch-ähnlich-genug" Archs gehören, koexistieren können, um das Ausführen von ausführbaren Dateien zu erlauben, die für beide arch erstellt wurden. - Ignacio Vazquez-Abrams
Leider muss das Paket bereits lokal installiert sein: \ - rogerdpack
@rogerdpack: Nun, ja. Genau darum geht es in der Frage. - Ignacio Vazquez-Abrams
Ja, leider googelt Google "alle gleich hier", wenn Sie google "RPM-Abhängigkeiten auflisten" - google hat Umfang die Frage schleicht! Unabhängig davon, siehe davey's Antwort für alle Anhänger, die diese Funktionalität wünschen. - rogerdpack


Das yum deplist Befehl zeigt dir was U / min's sind Abhängigkeiten, hier ist ein Beispiel für die expect Paket (das funktioniert auch, wenn Sie das Paket noch nicht lokal installiert haben):

# 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

32
2017-11-09 08:57



Dieser Befehl funktioniert nicht. Fehle ich etwas oder fehlt etwas in deinem Kommando? - Gnanam
Entschuldigung, es fehlte ein Leerzeichen, der Befehl ist yum deplist package. - davey
+1 die Verwendung von YUM ist hier nett, es ist rekursiv und löst Dinge wie 'Perl (COnfig :: Tiny)' oder 'libc.so (64bit)'. - djhaskin987


Im Anschluss an Ignacios Antwort können Sie die spezifische Architektur der Pakete folgendermaßen sehen:

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

In meinem Fall habe ich nur das eine, i686-Paket ... aber Sie können die Architektur mit den Paketen auf diese Weise assoziiert bekommen. Wenn Sie daran interessiert sind, was Sie sonst noch vom --queryformat erhalten können, geben Sie a rpm --querytags um die Liste der verfügbaren Variablen anzuzeigen.


6
2017-11-09 08:51



+1 Ihr Befehl zur Auflistung nach Architektur ist auch hilfreich. - Gnanam


Ich habe ein schnelles Shell-Snippet, das alle installierten Pakete mit ihren Abhängigkeiten ausgibt:

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

3
2018-05-29 19:10





Die Leute haben bereits geantwortet mit:

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

Ja, entweder rpm oder yum funktioniert und richtig beantwortet die Frage. Der Hauptunterschied zwischen rpm und yum ist, dass yum auch zeigt, welche Pakete Sie installieren können, um die Bibliotheks- und / oder Dateianforderungen zu erfüllen. Wenn das Paket nicht installiert ist, ist leider keine dieser Methoden sinnvoll. Da das ursprüngliche Poster bereits angegeben hat, dass das zu überprüfende Paket installiert ist, ist dies ein Mute-Punkt.

Was, wenn Sie das Paket nicht installiert haben? yum kann immer noch verwendet werden, aber indirekt. Sie können eine Scheininstallation durchführen, indem Sie den Installationsvorgang abbrechen.

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

Hier ist ein Beispiel:

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

1
2017-09-21 23:38