larska schrieb:
wie lautet der Befehl genau und wo ist die Datei abgespeichert mit der Liste?
Sein Befehl hilft dir nicht, da er offenkundig etwas auf Arch Basis verwendet. Du bist mit einem Debian Derivat unterwegs, da wird, wie du schon festgestellt hast, dpkg bzw. apt verwendet. Das gibt es in Arch nicht.
Dein Problem ist, dass das, was du da vorgeschlagen bekommen hast, etwas Frickelei braucht um mit apt zu funktionieren, und es gibt ggf. noch ein weiteres Problem. Aber eins nach dem anderen:
Du kannst "dkpg --list" verwenden, um eine Liste von installierten Paketen zu erhalten. Allerdings wird die hier nur auf dem Bildschirm ausgegeben. Die brauchst du aber als Datei. So eine Datei daraus zu erzeugen ist an sich nicht das Problem. Das Problem ist, dass weder dpkg noch apt einen Modus vorsehen, um eine solche Liste aus einer Datei als Input akzeptieren, sondern einfach eine Reihe von Paketnamen erwarten. Erschwerend kommt hinzu, dass die Liste eben nicht einfach eine Auflistung von Paketnamen ist, sondern eine tabellarische Auflistung mit Index, Versionen, Architektur etc. Das kannst du dabei alles nicht brauchen. Ähnlich ist es, wenn man "apt list --installed" verwendet. Allgemeien sollte man vielleicht bei apt bleiben. Zudem werden hierbei auch alle durch Abhängigkeiten installierten Pakete mitgelistet.
Unterm Strich: Du müsstest also eine solche Liste speichern und überflüssigen Ballast entfernen. Praktischerweise gibt es da bei Apt etwas, was eine solche Liste gleich ausspuckt, und dabei nur wirklich manuell (oder durch ein Installer Script) installierte Pakete auflistet, weil es nicht sinnvoll ist, hier Paketabhängigkeiten explizit aufzulisten, die sowieso bei der Installation entsprechend aufgelöst würden:
Bash:
sudo apt-mark showmanual > paketliste.txt
Das erzeugt dir eine solche Datei. Diese kannst du im neuen System folgenderweise erneut einspielen:
Bash:
sudo xargs -a paketliste.txt apt install -y
Damit werden alle Paketnamen aus der Liste im neuen System erneut apt zur Installation eingegeben und eventuelle Rückfragen sofort mit "Ja" beantwortet.
Kommen wir zu weiteren Problemen hierbei:
Nimmst du dein Home Verzeichnis mit und deine Paketliste, bleiben ein paar Informationen auf der Strecke. Das sind zum einen Änderungen an System-Konfigurationen außerhalb /home, z.B. in /etc, aber insbesondere ggf.
manuell hinzugefügte Repositories, wie es in Debian/Ubuntu/Mint ja durchaus üblich ist, PPAs oder ähnliches. Sind diese im neuen System nicht vorab hinzugefügt worden, findet apt natürlich Pakete nicht, die aus diesen Repositories stammen. Man kann hierbei die Installation etwas anpassen, so dass nur noch zum Zeitpunkt verfügbare Pakete installiert werden, ohne den Vorgang abzubrechen:
Bash:
while read pkg; do sudo apt install -y "$pkg"; done < paketliste.txt
Löst aber das grundlegende Problem nicht, dass so auch durch die fehlenden Repositories einige Anfragen ggf. ins Leere laufen. Informationen dieser Art musst du also zwingend selbst mitnotieren und entsprechend separat behandeln.
Dazu müsstest du
VORHER dafür sorgen, dass auf beiden Systemen
/etc/apt/sources.list gleich ist, und dass alle zusätzlichen Listen (das sind einzelne Dateien) im Ordner
/etc/apt/sources.list.d/ ins neue System mitgenommen werden. Und natürlich nach getaner Arbeit einmal "apt update" ausführen.
Aus diesem Grund arbeite ich lieber mit Images bei sowas, z.B. mit Clonezilla. Die haben dann aber natürlich umgekehrt das Problem, dass Images natürlich für das ursprüngliche System konfiguriert sind. Wenn man da zuviel nachträglich wegen völlig unterschiedlichen Systemen umbiegen muss, gewinnt man hier letztendlich auch nichts im Vergleich zu der vorgeschlagenen Methode. Ist also Abwägungssache.