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


11

(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 jedes Fedora-Setup verwende, installiere ich nach und nach eine Reihe von Paketen über die Basisinstallation hinaus. Wenn ich neu installiere oder wenn ich einen neuen Computer installieren muss, möchte ich normalerweise diese spezifischen Pakete neu installieren , und ich möchte es schnell tun, um mit einem Minimum an Aufwand wieder an die Arbeit zu gehen. Soweit ich gesehen habe, können mir alle Paketmanager ( yumund pirut) sagen, welche Pakete installiert sind, und sie haben alle Protokolle (wenn auch unterschiedliche für jedes Tool, was ein Ärger ist). Aber keiner von ihnen kann mir sagen, welche Pakete ich habeinstalliert, im Gegensatz zu ihren Abhängigkeiten oder Systemaktualisierungen. Sogar die Protokolle sind insofern schwierig, als ich nicht ganz sicher bin, was ich daraus extrahieren soll oder wie ich sie integrieren soll (im Fall der verschiedenen Tools der apt-Familie). Dies bedeutet, dass ich bei jeder Neuinstallation oder auch nur bei einer Sicherung nicht sicher bin, wie ich diese Liste neu erstellen soll.

Ich erwarte nicht unbedingt, dass eines der Tools dies für mich erledigt, aber wenn dies nicht der Fall ist, suche ich nach Problemumgehungen. Sogar zu suchende Muster, gute Faustregeln oder eine klare Vorstellung davon, was genau protokolliert wird, wären nützlich. Möglicherweise gibt es hier keine "beste Antwort", aber gute wären sehr hilfreich.

Antworten:


3

yum list installedund yum.logwird zeigen, was installiert wurde, aber ich glaube, nichts auf dem System unterscheidet zwischen Paketen, die Sie installiert haben, und solchen, die als Abhängigkeiten installiert wurden


2

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

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

Um dann die hinzugefügten Pakete zu sehen:

comm -13 rpm.orig rpm.curr

Und diejenigen entfernt:

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

Versuchen Sie es mit sudo yum history packages-list \*

Es wird angezeigt, was explizit installiert wurde und was als Abhängigkeit installiert wurde:

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

Dies ist einfach.

Führen Sie einfach den folgenden Befehl in Ihrer Lieblings-Shell aus. Die Manpage für RPM wird schmerzlich illustrativ sein, wenn Sie sich eingehender damit befassen müssen.

U / min -qa


3
Das listet zwar alle Pakete auf, unterscheidet aber nicht zwischen denen, die ich hinzugefügt habe, und solchen, die bereits auf dem System waren. Ich möchte speziell Pakete verfolgen, die ich explizit installiert habe.
Quark

Alle Pakete wurden explizit von Ihnen installiert. Sie müssen viel genauer festlegen, was Sie tun möchten, um sinnvolle Hilfe zu erhalten.
vonbrand

0

In der Datei /root/install.log erfahren Sie, welche Pakete in der Erstinstallation enthalten waren. Hier ist ein schnelles 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 wollen. Beachten Sie, dass Pakete, die eine aktualisierte Version eines ursprünglich installierten Pakets sind, in der Datei angezeigt werden. Wenn dies nicht das ist, was Sie wollen, benötigen Sie ein komplexeres Muster in der sed-Anweisung.


0

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

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 anzeigen, die nach der Installation auf dem System ausgeführt werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.