Ich möchte, dass Server B genau das gleiche Setup wie Server A hat. Server A und B haben den gleichen Bogen und die gleiche Hardware.
Mein Plan ist es, eine Liste aller auf Server A installierten Dinge zu haben und diese mithilfe der Liste auf Server B zu installieren.
yum -y install $(cat installed.txt)
Sollte ich in Server A lieber Folgendes verwenden:
rpm -qa > installed.txt
oder:
yum list installed > installed.txt
Die Listen scheinen unterschiedlich zu sein und ich habe keine Ahnung warum.
yum list installed
hat 930 Zeilen, während rpm -qa
895 Zeilen, was könnte der Unterschied sein?
diff
die Ausgaben bearbeitet (möglich nach dem Sortieren)?rpm
list gehen, da sie die Liste enthält, die imyum
Befehl Ihres Servers b verwendet werden kann .Antworten:
Der Hauptgrund für die unterschiedliche Anzahl von Zeilen ist, dass die von erzeugte Ausgabe
yum
so formatiert ist, dass jedes Feld vertikal ausgerichtet ist (unabhängig von der Länge des Paketnamens und / oder der Versionsnummer). Dazu werden zwei Zeilen zum Auflisten solcher Pakete verwendet und die zweite Zeile mit Leerzeichen aufgefüllt, um die Felder korrekt auszurichten. Die folgende Ausgabe (aus einer CentOS 6-Box) zeigt, dass zwei Zeilen zum Auflisten desdevice-mapper-persistent-data.x86_64
Pakets verwendet werden:Dies ist jedoch nicht der einzige Grund und kann durch Massieren der Ausgabe der beiden Befehle vor dem Vergleich festgestellt werden:
Für die Ausgabe des
rpm
Befehls:Sortieren Sie es so, dass Pakete, die mit einem Großbuchstaben beginnen, vor Paketen mit Kleinbuchstaben angezeigt werden:
Verwenden Sie einen
sed
Befehl, um die Versionsnummern des Pakets zu entfernen:Für die Ausgabe des
yum
Befehls:Entfernen Sie die ersten beiden Kopfzeilen (
Loaded plugins
undInstalled Packages
):Wir können dafür verwenden
sed
:Wir können auch
sed
alle Zeilen entfernen, die Fortsetzungen einer Paketliste sind (diese Zeilen beginnen mit einer Reihe von Leerzeichen, sodass alle Paketversionen ausgerichtet sind).Jetzt können wir den
diff
Befehl verwenden, um die Ausgabe der beiden Dateien zu vergleichen. Hier sind die Ergebnisse der CentOS 6-Box:Fazit
Dies zeigt, dass
rpm -qa
auch Paketlisten für die öffentlichen Schlüssel enthalten sind, denen das Signieren von Paketen vertraut wird, während deryum
Befehl diese Pakete weglässt.quelle
Dies ist wahrscheinlich nur Formatierungsunterschiede. yum list wird eine Menge cleverer Verpackungen für Ihre Terminalgröße durchführen.
Was Sie wahrscheinlich tun möchten, ist zu verwenden:
quelle
Ich bin mir nicht ganz sicher, warum die Listen unterschiedlich sind, aber ich weiß, dass dies
rpm -qa > installed.txt
der richtige Weg ist, um alle installierten Pakete zu finden. Es wirdyum installed
genauso gut suchen wierpm installed
.Darüber hinaus
rpm -qa
funktioniert das Ausgabeformat besser mit demyum install
Befehl, den Sie ausführen möchten.quelle
yum list installed
gibt mir die Ausgabe wie folgt.Nun
rpm -qa
hat das unten zu sagen.Beide Befehle geben mir die gleiche Anzahl von Zeilen wie die Ausgabe. Ich würde mit
rpm -qa
Liste gehen .Aus dieser Antwort geht auch die folgende Information hervor.
Der Unterschied könnte also darin bestehen,
yum
die Abhängigkeiten aufzulösen, aberrpm
alle Abhängigkeiten installiert zu haben und eine vollständigere Liste bereitzustellen.Ich sehe den tatsächlichen Unterschied zwischen
yum
undrpm
wie unten.Das auffälligste Problem
rpm
ist ein Zustand, der von den meisten Menschen als Abhängigkeitshölle bezeichnet wird . Dieses Problem tritt bei Paketen auf, die von vielen anderen Paketen abhängen. Einige dieser Pakete hängen auch von vielen anderen Paketen ab. Es ist allgemein bekannt, dass Sie alle Abhängigkeiten installieren müssen, damit das Programm ordnungsgemäß funktioniert.rpm
kann dies nicht automatisch für Sie tun. Es kann nur überprüft werden, ob alle erforderlichen Pakete installiert sind, bevor das erforderliche Paket installiert wird. Das manuelle Verfolgen und Installieren jeder Abhängigkeit ist für die meisten Benutzer, die zunächst nur ein einziges Paket installieren möchten, eine große Aufgabe.yum
ist in der Lage, die Abhängigkeiten eines Pakets zu verfolgen und vor der Installation des Pakets zu installieren, das der Benutzer installieren wollte. Dies vereinfacht den gesamten Prozess, da Sie nur den Namen des Pakets kennen müssen, das Sie installieren möchten, und sich keine Sorgen machen müssen, ob die erforderlichen Pakete installiert wurden oder nicht. Pakete, die auf dem System nicht gefunden werden können, werden in den Repositorys gesucht, die dem System zur Verfügung stehen.Verweise
http://www.differencebetween.net/technology/difference-between-yum-and-rpm/
quelle
Yum
behandelt Abhängigkeiten und ruft Pakete ab, um sie zu füllen.Yum
führt effektiv denselben Befehl aus wierpm
, enthält jedoch auch alle Pakete, die zum Abgleichen von Abhängigkeiten erforderlich sind.yum
ist ein Glücksfall für die Verwaltung von Paketabhängigkeiten, aber das ist irrelevant, wenn nur die auf einem System installierten Pakete aufgelistet werden. Siehe James 'und meine Antwort für den Grund für den Unterschied.yum list installed
kann eine zweizeilige Ausgabe erstellen, wenn der Paketname und die Paketversion lang sind.quelle