Wie installiere ich genau die gleichen Pakete auf einem anderen Computer in openSUSE?

8

Ein anderer Computer kann auch eine virtuelle Maschine sein. Ich kann aufgrund von Hardwareunterschieden und -einstellungen keinen Festplattenklon durchführen.

Ich habe Computer A installiert und läuft, ich habe auch Computer B. Ich werde das gleiche Betriebssystem auf B installieren, damit ich das gleiche Basissystem bekomme.

Dann werde ich von Hand die gleichen Repositories wie auf A hinzufügen.

Aber die letzte Phase ist mir ein Rätsel - wie installiere ich die gleichen Pakete wie auf A? Beachten Sie, dass die Version übereinstimmen muss, nicht nur der Paketname.

Natürlich suche ich nach einem automatischen Weg, nicht nach einer manuellen Installation.

Tatsächlich sollte ich eine völlig andere Hardwarekonfiguration, saubere Einstellungen (keine alten Passwörter usw.), aber identische Softwareauswahl erhalten.

Frage

Wie es geht?

Hintergrund

Die Pakete (pro Version) sind verfügbar, aber nicht die neuesten. Der Punkt dabei ist, eine "Kopie" des laufenden Systems zu erstellen, Pakete auf Computer B zu aktualisieren (Kopie), zu testen, ob es funktioniert, wenn ja, dann Upgrade A. Bei jeder neuen Betriebssystemversion bin ich von vielen Regressionsfehlern betroffen, und Ich muss es methodischer testen als Live-Test & Panik.

openSUSE 11.4

Greenoldman
quelle
Werden die Pakete von Computer A von den Repos auf den neuesten Stand gebracht? (Ich frage das, weil es die Antwort kürzer und Ihr Leben einfacher machen kann).
Hanan N.
@ Hanan N., nein, das wäre einfacher, ich weiß, deshalb habe ich auf genaue Versionen hingewiesen.
Greenoldman

Antworten:

3

Klingt so, als müssten Sie Ihr eigenes Repository erstellen.

Legen Sie Ihre RPMs in der gewünschten Version in diesem Repository ab. Aktivieren Sie dann diese Repositorys auf beiden Computern (als Installationsquelle) und installieren Sie die Pakete.

Nils
quelle
Vielen Dank, ich markiere dies (noch) nicht als Lösung, da vielleicht jemand einen anderen Ansatz findet - wie zum Beispiel die Liste (rpm -qa) erstellen und genau diese Pakete in der angegebenen Version auf einem anderen Computer installieren. Ihr Ansatz lässt sich jedoch besser skalieren (einmaliger Download pro Paket).
Greenoldman
2

Da OpenSuse RPMs verwendet, können Sie das rpmDienstprogramm verwenden.

rpm -qalistet alle aktuell auf Ihrem System installierten Pakete auf (eine sehr lange Liste). Die Liste enthält den Paketnamen, die Versionsnummer und die Architektur. Sie können die Liste in eine Datei schreiben und zypper die Datei auf dem neuen System geben.

Möglicherweise sind bereits mehrere Pakete standardmäßig installiert, aber zypper überspringt sie und installiert die benötigten Pakete.

n0pe
quelle
Nun, Sie haben gerade meinen Kommentar kopiert, damit wir uns im Großen und Ganzen einig sind, aber der Teufel steckt im Detail - wie zwingen Sie zypper, nicht Paket P, sondern P-1.23 zu installieren, dh mit der angegebenen Version? Da dies hier von entscheidender Bedeutung ist (standardmäßig ist die Ausgabe von U / min NICHT mit dem Eingabeformat von Zypper kompatibel).
Greenoldman
Für die Aufzeichnung habe ich dies gepostet, bevor Sie Ihren Kommentar gepostet haben oder Sie ihn gepostet haben, während ich meine Antwort geschrieben habe. Was zypper betrifft, können Sie die Ausgabe von rpm -qaals Eingabe für verwenden zypper. Es versteht das Format des Pakets sehr gut. Ich habe nicht getestet, ob es der Versionsnummer entspricht, aber es hängt stark davon ab, ob die Repositorys frühere Versionen enthalten oder nicht. Wenn die Repos dies nicht tun, können Sie nicht viel dagegen tun.
n0pe
Sie widersprechen sich selbst: "Ich habe nicht getestet, ob es der Versionsnummer entspricht", aber "Es versteht das Format des Pakets einwandfrei". Also ich erkläre - es unterstützt nicht die Drehzahlausgabe. Um die Version anzugeben, müssen Sie einen Quantifizierer hinzufügen. Dies ist ein schwieriger Teil, da die Paketbenennung nur eine Konvention ist und von keinem Validator erzwungen wird. Siehe: en.opensuse.org/SDB:Zypper_usage_11.3#Selecting_packages
greenoldman
1

Listen Sie zuerst alle installierten Pakete und ihre Versionen auf dem Computer auf, auf dem Sie einen "Klon" erstellen möchten : rpm -qa > /tmp/rpm.list.txt.

Kopieren Sie dann das /tmp/rpm.list.txtauf das System, das Sie in einen "Klon" des anderen Systems verwandeln möchten, und führen Sie zypper aus und geben Sie ihm die soeben erstellte Paketliste: zypper install $(cat /tmp/rpm.list.txt)(oder wo immer Sie die Datei mit der Liste der Pakete aus dem Quellsystem ablegen ).

Sami Laine
quelle