Wie können Sie nachverfolgen, welche Pakete unter Fedora (Linux) installiert wurden?

7619
quark

(Diese Frage ist 6338 sehr ähnlich . Es wurde vorgeschlagen, sie zu trennen, da Fedora und Ubuntu / Debian unterschiedlich genug sind, um unterschiedliche Antworten zu rechtfertigen.)

Da ich ein Fedora-Setup verwende, installiere ich nach und nach eine Reihe von Paketen über der Baseline-Installation. Wenn ich neu installiere oder einen neuen Computer installieren muss, möchte ich normalerweise diese spezifischen Pakete erneut installieren. Ich möchte es schnell tun, um mit einem Minimum an Aufwand wieder an die Arbeit zu gelangen. Soweit ich gesehen habe, können alle Paketmanager ( yumund pirut) mir sagen, welche Pakete installiert sind, und sie haben alle Protokolle (wenn auch für jedes Tool unterschiedliche Protokolle, was mühsam ist). Aber keiner von ihnen kann mir sagen, welche Pakete ich habeinstalliert werden, im Gegensatz zu ihren Abhängigkeiten oder Systemaktualisierungen. Sogar die Protokolle sind insofern schwierig, als ich nicht ganz sicher bin, was ich aus ihnen herausholen sollte oder wie ich sie integrieren sollte (im Fall der verschiedenen apt-Familienwerkzeuge). Dies bedeutet, dass ich bei jeder Neuinstallation oder auch nur bei der Sicherung nicht sicher bin, wie ich diese Liste neu erstellen kann.

Ich erwarte nicht unbedingt eines der Tools, um dies für mich zu tun, aber wenn dies nicht der Fall ist, suche ich nach Problemumgehungen. Sogar Muster, für die man grep, gute Daumenregeln oder eine klare Vorstellung davon, was genau protokolliert wird, wären nützlich. Es kann keine "beste Antwort" geben, aber gute Antworten wären sehr hilfreich.

11

7 Antworten auf die Frage

3
theotherreceive

yum list installedund yum.logzeigt an, was installiert wurde, aber ich glaube nicht, dass auf dem System zwischen Paketen, die Sie zur Installation ausgewählt haben, und den als Abhängigkeiten installierten Paketen unterschieden wird

2

Vorausgesetzt, Sie haben die /root/install.logDatei noch von der ursprünglichen Installation, könnten Sie die Dateien rpm.orig und rpm.curr folgendermaßen erstellen :

cd /root rpm -qa --qf '%\n' | sort -u > rpm.curr awk '($1=="Installing")' install.log | sort -u > rpm.orig 

Dann sehen Sie sich die hinzugefügten Pakete an:

comm -13 rpm.orig rpm.curr 

Und diejenigen, die entfernt wurden:

comm -23 rpm.orig rpm.curr 

Beachten Sie, dass bei einer x86_64- Installation der Unterschied zwischen den 32- und 64-Bit-Paketen nicht erkennbar ist.

2
Francisco

Try using sudo yum history packages-list \*

It will show what was installed explicitly and what was installed as a dependency:

ID | Action(s) | Package ------------------------------------------------------------------------------- 47 | Dep-Install | cairomm-1.8.0-2.1.el6.x86_64 47 | Dep-Install | glibmm24-2.22.1-1.el6.x86_64 47 | Install | gnome-system-monitor-2.28.0-11.el6.x86_64 
0
Axxmasterr

Das ist leicht.

Führen Sie einfach den folgenden Befehl in Ihrer bevorzugten Shell aus. Die Manpage für RPM wird sehr anschaulich sein, wenn Sie sich eingehender damit befassen wollen.

rpm -qa

Das listet alle Pakete mit ja auf, unterscheidet aber nicht zwischen den von mir hinzugefügten und den bereits im System vorhandenen. Ich möchte speziell Pakete verfolgen, die ich explizit installiert habe. quark vor 14 Jahren 3
Alle Pakete wurden von Ihnen explizit installiert. Sie müssen viel genauer festlegen, was Sie tun möchten, um sinnvolle Hilfe zu erhalten. vonbrand vor 11 Jahren 0
0
dkaylor

In der Datei /root/install.log erfahren Sie, welche Pakete bei der Erstinstallation enthalten waren. Hier ist ein kurzes Skript, das den Inhalt dieser Datei mit der Ausgabe von vergleicht rpm -qa:

rpm -qa | sort > /root/postinstall.list for P in `sed -n 's/Installing \(.*\)/\1/p' </root/install.log` do sed -ie "/$P/d" /root/postinstall.list done 

Die Datei /root/postinstall.list enthält, was Sie möchten. Beachten Sie, dass Pakete, die eine aktualisierte Version eines ursprünglich installierten Pakets sind, in der Datei angezeigt werden. Wenn Sie dies nicht wünschen, benötigen Sie ein ausgefeilteres Muster in der sed-Anweisung.

0
Dejan

rpm -qa --last

von den Manpages:

--last Orders the package listing by install time such that the latest packages are at the top. 

Beispielausgabe:

mdadm-3.2.2-9.el6 Mon 12 Dec 2011 10:06:17 AM EST libdrm-2.4.25-2.el6 Mon 12 Dec 2011 09:54:51 AM EST tcp_wrappers-libs-7.6-57.el6 Mon 12 Dec 2011 09:54:50 AM EST 
0
Quintesse

Angenommen, Sie haben immer "yum" verwendet, um alles zu installieren, was Sie tun können:

sudo yum history info \* | grep "^Command Line : install" 

Es sollte Ihnen alle "yum install" -Befehle zeigen, die nach der Installation auf dem System ausgeführt werden.