Mit Apt-Clone gleichen Sie die Paketlisten zwischen Debian-Rechnern ab. So halten Sie alle Maschinen auf demselben Stand.
Es braucht seine Zeit, eine Arbeitsumgebung einzurichten, die alles mitbringt, was man zur täglichen Arbeit benötigt. Wechseln Sie zwischen mehreren Arbeitsplätzen, stellen Sie möglicherweise fest, dass die benötigte Software noch nicht installiert ist. Ein Abgleich der Paketlisten mit Apt-Clone bringt alle Rechner auf denselben Stand.
Klonen oder angleichen
Eine Linux-Installationen zu klonen, gelingt auf verschiedenen Wegen. So wäre es etwa möglich, Partitionen exakt zu kopieren und auf neue Geräte zu übertragen, um dort dieselbe Arbeitsumgebung zu erhalten wie auf einem anderen Rechner. Haben Sie aber etwa ein bereits eingerichtetes Notebook und wollen dessen Software-Bestand mit dem des Hauptrechners abgleichen, macht es zu viel Aufwand, ein Image des gesamten Systems zu erstellen.
Das Paketmanagement von Debian bringt Parameter mit, um bereinigte Listen installierter Pakete zu erstellen, die Sie dann auf anderen Geräten wieder einspielen. Versierte Debian-Nutzer würden das mit einem Konstrukt wie aus Listing 1 bewerkstelligen. Das ist umständlich und funktioniert zudem nur richtig, wenn beide Systeme dieselben Repositories aufweisen.
Listing 1
# dpkg -l | awk '/^ii/{ print $2 }' | egrep -v "lib|dev|x-headers|x-image"
Einfach mit Apt-Clone
Es geht aber auch einfacher – und hier kommt Apt-Clone ins Spiel [1]: Dieses Werkzeug geht die Sache intelligenter an, sichert die Liste der Quellen gleich mit, und gleicht sie auf dem anderen System ab. Selbst falls Sie DEB-Pakete am Paketmanagement vorbei per dpkg -i aus anderen Quellen direkt installiert haben, kennt Apt-Clone dafür eine Lösung. Zudem vermag es Pakete in ein Verzeichnis zu sichern oder in einen Container zu installieren. Darüber hinaus eignet sich das Tool zum Einsatz in Skripten, etwa um Paketbestände auf Servern zu synchronisieren.
Das Python-Programm funktioniert umso besser, je näher sich beide Systeme sind. Von Debian “Stable” zu Debian “Stable” treten in der Regel keinerlei Probleme auf. Von “Stable” nach “Testing” müssen Sie unter Umständen im Nachgang einiges konfigurieren oder bereinigen. Im Prinzip funktioniert das Übertragen der Daten selbst zwischen Debian und Ubuntu, erfordert dann aber mehr Nacharbeit.
Im Test kam als Ausgangspunkt ein Notebook mit der auf Debian “Unstable” basierenden Distribution Siduction zum Einsatz, auf dem sich seit Jahren Software angehäuft hat – teils aus den Paketquellen, teils in Form von DEB-Paketen aus anderen Quellen. Als Ziel diente ein weiteres Notebook mit einer frischen Installation von Siduction, das vor dem Test alle tagesaktuellen Updates erhielt.
Um mit Apt-Clone zu arbeiten, installieren Sie die Software auf beiden Geräten. Da das Programm in den Debian-Archiven steckt, genügt dazu ein apt install apt-clone. Bevor Sie eine Liste erstellen, sollten Sie sich einen Moment Zeit nehmen und das Ausgangssystem etwas aufräumen. Einen guten Ausgangspunkt dazu bietet der Befehl apt autoremove. Eventuell vorhandene, nicht mehr benötigte ältere Kernel und deren Header sollten Sie ebenfalls entfernen.
Zwei Varianten
Apt-Clone bietet zwei Möglichkeiten, um den Paketbestand zu sichern. Mit dem Befehl aus der ersten Zeile von Listing 2 erstellen Sie die eine Variante. Der Punkt am Ende des Kommandos legt das erstellte Archiv im gerade aktiven Verzeichnis ab. Falls Sie einen anderen Ort bevorzugen, geben Sie stattdessen den entsprechenden Pfad an. Das generierte Archiv, das eine Größe im KByte-Bereich aufweist, listet alle nicht manuell installierten Pakete aus der Standard-Quellenliste und Dritt-Repositories auf.
Listing 2
$ sudo apt-clone clone . $ sudo apt-clone clone --with-dpkg-repack . $ sudo apt-clone info apt-clone-state-Rechner.tar.gz $ apt-clone show-diff apt-clone-state-Rechner.tar.gz $ sudo apt-clone restore apt-clone-state-Rechner.tar.gz
Die zweite Variante bedient sich des Befehls aus der zweiten Zeile von Listing 2. Das mit Apt-Clone als Abhängigkeit installierte Programm Dpkg-Repack [2] nimmt sich dabei der manuell installierten Pakete an und erzeugt sie neu. Das daraus resultierende Archiv wächst naturgemäß entsprechend an – im Test umfasste es rund 170 MByte (Abbildung 1).

Abbildung 1: Dpkg-Repack baut, falls nötig, aus der von Hand installierten Software auf dem Quellrechner neue Pakete, die mit in das Archiv zum Übertragen der Daten wandern.
Details zum Archiv zeigt der Befehl aus der dritten Zeile von Listing 2. Auf diese Weise sehen Sie, welche Distribution zugrundeliegt, wie viele Pakete die Liste enthält, und wann Sie das Archiv erstellt haben. In unserem Beispiel waren insgesamt 3103 Pakete installiert, davon 1045 automatisch (Abbildung 2).

Abbildung 2: Der Info-Parameter liefert Daten zu Hostname, Architektur, Größe und Erstellungsdatum des Archivs. Im vorliegenden Beispiel erkannte die Software allerdings Debian “Sid” versehentlich als Ubuntu “Xenial”.
Ausgepackt
Möchten Sie genauer wissen, was das Skript speichert, entpacken Sie das Archiv apt-clone-state-Rechner.tar.gz und studieren dessen Inhalte. Es enthält in beiden Fällen die Verzeichnisse etc/ und var/ (Abbildung 3).

Abbildung 3: Das entpackte Archiv erlaubt das manuelle Anpassen der Paket- und Quellenlisten. Auf diese Weise haben Sie noch eine Möglichkeit, auf Fehler im Ablauf des Skripts zu reagieren.
Im Unterschied zur einfachen Variante liegen bei Einsatz der Option dpkg-repack in var/, lib/, apt-clone/ sowie debs/ die neu erstellten Pakete. Sie dürfen im entpackten Archiv Änderungen vornehmen, also etwa unter /etc/apt/ die Listen der Quellen bearbeiten, falls Sie nicht alle Quellen berücksichtigen möchten.
Bei Bedarf prüfen Sie vor dem Wiederherstellen auf dem neuen Gerät, welche Unterschiede es zwischen dem Paketbestand auf dem Gerät und dem dorthin kopierten Archiv gibt. Dazu dient der Befehl aus der vierten Zeile von Listing 2 (Abbildung 4).

Abbildung 4: Der Parameter --show-diff liefert die Unterschiede zwischen den Paketen auf beiden Rechnern.
Restore
Um die Liste auf einen anderen Rechner zu übertragen, senden oder kopieren Sie das Archiv ins Home-Verzeichnis eines Benutzers auf dem anderen Rechner und spielen von dort mit dem Befehl aus der letzten Zeile von Listing 2 die Daten ein, egal, ob Sie die einfache Variante oder die mit dpkg-repack verwenden.
Daraufhin gleicht das Skript die Liste der Pakete an jene des Quellrechners an und bringt die Pakete auf den entsprechenden Stand. Ansonsten gilt beim Wiederherstellen beider Varianten derselbe Befehl – den einzigen Unterschied macht die Größe des Archivs und die Dauer der Wiederherstellung (Abbildung 5).

Abbildung 5: Das Wiederherstellen der Paketliste auf dem neuen System dauert je nach Variante unterschiedlich lange.
Bei der erweiterten Methode fällt nicht nur das Archiv durch die neu erstellten Pakete größer aus, auch das Angleichen mittels Restore dauert entsprechend länger. Das muss nicht zwingend in ein installiertes System erfolgen: Alternativ installieren Sie die Pakete mit dem Zusatz --destination Ordner in eine Art Chroot.
Fazit
Apt-Clone bewegt sich zwischen einem Image des Gesamtsystems und der manuellen Methode einer Paketliste per Dpkg. Ersteres ist sinnvoll, wenn Sie ein Gerät ohne Installation vor sich haben, Letzteres eignet sich für sehr spezielle Anpassungen der Paketliste.
Dazwischen positioniert sich Apt-Clone als ein einfach zu bedienendes Werkzeug, das in der Regel schnell die gewünschten Ergebnisse liefert. Diese fallen umso besser aus, je näher sich die Versionen der Distribution sind. Zwischen Debian und Ubuntu funktioniert Apt-Clone nur bedingt – hier fällt zwingend Nacharbeit von Hand an. Zwischen 32- und 64-Bit-Plattformen dagegen funktioniert das Skript problemlos, sofern Sie auf dem 64-Bit-System die Multiarch-Unterstützung für die 32-Bit-Architektur aktivieren.





