Vergleich installierter Pakete auf zwei CentOS-Servern

von Christian,
assono GmbH, Standort Kiel,

Wenn man mit verschiedenen CentOS-Servern arbeitet, ist die Wahrscheinlichkeit sehr groß, dass man wissen möchte, welche Pakete auf dem einen Server installiert sind und auf dem anderen nicht. Um dies zu erreichen, gibt es mehrere Möglichkeiten. Hier zeigen wir Ihnen, welches die schnellste und effizienteste Variante ist.

Generieren von Listen

Der erste Schritt sollte sein, eine Liste mit allen installierten Paketen für alle Server zu generieren.

Dies kann man sehr einfach über folgenden Befehl erreichen:

$ sudo rpm –qa > packages_list.txt

Wobei rpm (RPM Package Manager) mit der Option –q alle installierten Pakete auflistet und diese in ein Textdokument (packages_list.txt) speichert.

diff-Kommando und comm-Kommando

Wenn man jetzt alle Listen generiert hat, wäre für viele die erste Idee, das diff-Kommando zu verwenden. Dieses zeigt die Unterschiede zwischen zwei Listen auf und liefert Informationen darüber, welche Zeile geändert werden muss, damit die Listen identisch sind. Hierfür gibt es verschiedene Optionen.

Mit dem diff-Kommando wird man ans Ziel kommen. Wenn man jedoch nur die Unterschiede zwischen den beiden Listen haben will, ist dies einfacher mit dem comm-Kommando.

Das comm-Kommando durchsucht zwei Listen reihenweise und prüft, ob Unterschiede bestehen. Wichtig für die Effizienz ist, dass das comm-Kommando zwei sortierte Listen bekommt. Das Sortieren funktioniert sehr einfach über folgenden Befehl:

$ sort packages_list.txt

Wenn beide Listen sowohl vorhanden als auch sortiert sind, können wir nun den comm-Befehl aufrufen:

$ comm packages_list.txt packages_list.txt

#Alternative:

$ comm <(sort packages_list.txt) <(sort packages_list.txt)

Der Standard-Output des Befehls besteht aus drei Spalten. In der ersten Spalte stehen alle Werte, die nur im ersten Dokument vorkommen und in der zweiten Spalte alle aus dem zweiten Dokument. In der dritten Spalte stehen dann die Werte, welche bei beiden Dokumenten identisch sind. Mittels dieser Ausgabe erhält man sehr einfach einen Überblick über die Dokumente.

Weitere Optionen mit dem comm-Befehl

Der comm-Befehl bietet aber noch weitere Optionen an, mit denen man den Output anpassen kann:

  • comm -23: Erste Spalte (nur Werte, die in der ersten Liste stehen)
  • comm -13: Zweite Spalte (nur Werte, die in der zweiten Liste stehen)
  • comm -12: Dritte Spalte (in beiden Listen identische Werte)

Eine weitere Option zur Verwendung mit comm ist es, Groß- und Kleinschreibung zu ignorieren. Dies ist zwar für unseren Use-Case nur von sekundärer Relevanz, sollte aber abschließend nicht fehlen. Erreicht wird es über die Option -i:

$ comm -i packages_list.txt packages_list.txt

Das könnte Sie auch interessieren:

Business Analytics
Fachbeitrag Digitalisierung Vernetztes Arbeiten Business Analytics Für Entwickler

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie wollen eine individuelle Lösung? Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen?

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Gerne erstellen wir eine individuelle Demo für Sie.

Wir verwenden Ihre Daten, um Sie einmalig per E-Mail zu kontaktieren. Wir geben Ihre Daten nicht an Dritte weiter. Siehe: Datenschutzhinweise
assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 407
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de