Installieren Sie die gleichen Debian-Pakete auf einem anderen System


13

Wie exportiere ich eine Liste der installierten Debian-Pakete auf ein System und installiere dann dieselben Pakete auf einem neuen System?

Antworten:


17

Sichern:

sudo dpkg --get-selections > /tmp/dpkglist.txt

Etwas wiederherstellen:

sudo dpkg --set-selections < /tmp/dpkglist.txt
sudo apt-get -y update
sudo apt-get dselect-upgrade

Siehe auch diese Frage für zusätzliche Optionen und Informationen: Ubuntu, wie man eine neue Maschine wie eine existierende einrichtet

Ich habe die oben genannten in einem täglichen Cronjob ausgeführt, der die Dpgklist in SVN als Teil unseres Server-Inventars überprüft. Auf diese Weise können Sie ein angemessen genaues Inventar der auf Ihren Servern installierten Pakete führen und auf einfache Weise einen schnellen Vergleich durchführen, um festzustellen, ob auf einem Server ein bestimmtes Paket fehlt.


1
Ich erhalte diese Fehlermeldung für jede Eingabezeile: dpkg: warning: package not in status nor available database at line ...
Danorton

Dieser Weg funktioniert nicht seit ein paar Ubuntu-Versionen
QkiZ

10

aptitudeErfüllt auch diesen Verwendungszweck und speichert Informationen zu "automatisch installierten" Paketen, die andere Methoden nicht verwenden. Führen Sie auf dem Referenzcomputer Folgendes aus:

aptitude search -F '%p' '~i!~M' > package_list 

Auf package_listden anderen Computer kopieren und ausführen

xargs aptitude --schedule-only install < package_list; aptitude install; 

Nur eine kleine Anmerkung. Laut dem Aptitude-Referenzhandbuch ist das Feld "package" standardmäßig "erweiterbar", aptitude search -F '%p' '~i!~M' > package_listsollte also auch gut funktionieren.
Chronos


[insert your own linebreaks, since http://serverfault.com/editing-help#linebreaks lies] In Bezug auf die Paketwiederherstellung: Dies muss als root erfolgen, nicht wahr? Wenn ja, <br/> das xargsin Ihrer Wiederherstellungsbefehlszeile = xargs aptitude --schedule-only install <package_list; Eignung installieren; macht mich wissen wollen, <br/> 1. Warum aptitudebraucht das xargs? dpkg --set-selectionsnicht. <br/> 2. Vermutlich aptitude braucht man das xargs, wo man ein oder mehrere sudos in die Wiederherstellungsbefehlszeile schreibt? Oder auf andere Weise root werden, um diese Zeile auszuführen, vorausgesetzt, dies ist erforderlich.
TomRoche

0

Das ist eine gute Idee, und Sie können auch einen Server mit apt-proxy einrichten, wenn Sie es sich zur Gewohnheit machen.


Nachdem ich mit mehreren Proxies herumgespielt hatte, entschied ich mich für apt-cacher-ng. apt-cacher-ng ist sehr einfach einzurichten und scheint aus mehreren Gründen robuster zu sein als der ursprüngliche apt-proxy. Jede Person hat jedoch ihren eigenen Favoriten. unix-ag.uni-kl.de/~bloch/acng
faultyserver

Meine Stimme ist ungefähr, es ist die einzige, die nicht verrückt ist.
womble

Interessant ... Ich habe eigentlich keine der Alternativen ausprobiert.

0

Die Antwort von faultyservers hat bei mir erst funktioniert, nachdem ein anderer Befehl ausgeführt wurde (siehe http://rayslinux.blogspot.de/2012/10/ubuntu-1210-dpkg-warning-package-not-in.html)

sudo apt-get install dselect sudo dselect access sudo dselect update

Davor läuft

sudo apt-get dselect-upgrade

nur zurückgekehrt

[...]
dpkg: Warnung: Paket in Zeile 302 nicht in Datenbank: xfonts-utils
dpkg: Warnung: Unbekannte Pakete gefunden; Dies kann bedeuten, dass die verfügbare Datenbank veraltet ist und über eine Frontend-Methode aktualisiert werden muss.
pi @ FHEM-new: / tmp $ sudo apt-get dselect-upgrade
Paketlisten lesen ... Fertig
Abhängigkeitsbaum erstellen Statusinformationen lesen
... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.

Ich habe versucht, die gleichen Pakete von meinem alten Raspberry Pi (mit Raspbian GNU / Linux 7 (wheezy)) auf meinem neuen Raspberry (Raspbian GNU / Linux 8 (jessie)) zu installieren.

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.