Wie übertrage ich installierte Pakete und Einstellungen von einer Distribution zur anderen?


15

Ich habe mich ein paar Monate lang mit dem Erlernen des Linux-Systems über VirtualBox befasst und beschlossen, es zu meinem Hauptbetriebssystem zu machen und es auf meiner Festplatte zu installieren. Ich habe eine Reihe von Dateien, Paketen und Einstellungen (z. B. Änderungen an .bashrc), die ich bei der direkten Installation auf meiner Festplatte übernehmen möchte. Wie kann ich das tun? Außerdem starte ich gerade Ubuntu, wenn ich mich entscheide, auf eine ähnliche Debian- oder RPM-basierte RHEL-Distribution umzusteigen. Wäre das der gleiche Prozess? Welche Überlegungen müsste ich gegebenenfalls berücksichtigen?


Ubuntu ist ein Debian-Derivat. Alle Debian-Derivate sind sehr ähnlich, da in den Paketen alle den gleichen Namen haben, die Paketverwaltung, die Konfiguration usw. und alle sehr ähnlich sind. Die Red Hat-Distributionen wie Fedora, CentOS usw. sind jedoch in Sachen Paketverwaltung nicht so ähnlich, obwohl sie im Grunde die gleiche Software sind. Sie sollten jedoch größtenteils in der Lage sein, Settings / Config usw. von Betriebssystemen der Debian-Familie auf Betriebssysteme der RH-Familie zu kopieren.
Faheem Mitha

Antworten:


31

Die Paketverwaltung ist eines der Hauptunterscheidungsmerkmale zwischen Distributionen. Zwischen unabhängigen Distributionen können Sie keine automatischen Aktionen ausführen. Unterschiedliche Distributionen unterteilen Software in unterschiedliche Paketsätze und verwenden unterschiedliche Namen.

Zwischen Computern, auf denen dieselbe Version derselben Distribution ausgeführt wird, können Sie eine ähnliche Installation erzielen, indem Sie die Liste der installierten Pakete reproduzieren. Verwenden Sie auf Systemen apt, die Debian und Derivate (Ubuntu, Mint,…) verwenden apt-clone. Siehe Wie repliziere ich die installierte Paketauswahl von einem Debian-System auf ein anderes? (Debian Wheezy) für die genauen Befehle. Kurz gesagt, auf der alten Maschine:

sudo apt-get install apt-clone
apt-clone clone foo

Auf foo.apt-clone.tar.gzdie neue Maschine kopieren und ausführen

sudo apt-get install apt-clone
sudo apt-clone restore foo.apt-clone.tar.gz

apt-clonefunktioniert möglicherweise zwischen verwandten Distributionen, zB Debian und Ubuntu. Verwenden Sie restore-new-distrostatt restorein diesem Fall. Wenn dies fehlschlägt, verwenden Sie die manuelle Methode mit dpkg --get-selectionsund apt-markund tüfteln Sie an der Paketliste, bis apt zufrieden ist.

Für Ihre eigenen Einstellungen ist es einfacher: Kopieren Sie einfach die Punktedateien aus Ihrem Home-Verzeichnis. Konfigurieren Sie in der Regel Dinge, die nicht mit der Hardware in Ihrem Konto zusammenhängen, nicht systemweit. das macht es einfach, sie auf einen anderen Computer zu kopieren.


Vorteil gegenüber der zweiten Antwort unten ist, dass diese Methode schneller ist, da langsames Internet übersprungen wird und schneller USB 3 verwendet werden kann. Es könnte auch andere Vorteile geben ???
WinEunuuchs2Unix

@ WinEunuuchs2Unix Die Liste der Pakete beträgt nur wenige Kilobyte. Die Übertragung über das Internet dauert kürzer als das Auffinden eines USB-Dongles, geschweige denn das Mounten und Auswählen der zu kopierenden Dateien und so weiter.
Gilles 'SO - hör auf böse zu sein'

@ Gilles dumm mich. Ich dachte, foo.apt-clone.tar.gzes wäre ein komprimierter Teerball aller Binärdateien installiert. Wusste nicht, dass es einfach eine Liste der installierten Pakete war. Enthält es auch die zurückgehaltenen Versionsnummern?
WinEunuuchs2Unix

Viele Fehler.... version mismatch: libgl1-mesa-dri, libmirprotobuf3, xserver-xorg-legacy, libgbm1, libmirclient9, xserver-common, libxatracker2, gnome-software, libmircommon7, libwayland-client0, mesa-vdpau-drivers, adobe-flash-properties-gtk, libwayland-server0, xserver-xorg-core, conky-all, libgles2-mesa, libmircore1, libosmesa6, x11proto-core-dev, dkms, libgl1-mesa-glx, adobe-flashplugin, libegl1-mesa, gnome-software-common, libglapi-mesa, libwayland-cursor0, ubuntu-software, libwayland-egl1-mesa Note that you can use --with-dpkg-repack to include those packges in the clone file.
WinEunuuchs2Unix

@ WinEunuuchs2Unix Ich denke, apt-clone enthält den gesamten dpkg-Status einschließlich angehaltener Pakete. Beachten Sie, dass es eine ganz andere Sache ist, wenn Sie eine vollständige Installation klonen möchten: apt-clone hat mehr Bandbreite zwischen Maschine 2 und einem Paketspiegel als zwischen Maschine 1 und Maschine 2 (oder weniger kostspielige Bandbreite, in dass Sie Maschine 1 nicht zu beschäftigt halten möchten, während Sie Maschine 2 einrichten). Apt-clone funktioniert am besten, wenn alle Paketversionen auf dem Quellcomputer installiert werden können.
Gilles 'SO- hör auf böse zu sein'

10

Wenn Sie innerhalb der Debian-Familie bleiben, können Sie diese sehr einfach übertragen. Listen Sie einfach die aktuell installierten Pakete auf, speichern Sie sie in einer Datei und lesen Sie diese Datei, um sie erneut zu installieren:

  1. Speichern Sie die installierten Pakete in der Datei installed:

    dpkg -l | grep ^ii | awk '{print $2}' > installed
    
  2. Installieren Sie in Ihrer neu installierten Debian-basierten Distribution die gespeicherten Pakete:

    sudo apt-get install $(cat installed)
    

Alternativ können Sie hierfür ein GUI-Tool verwenden. Mint hat eine sehr schöne mit dem Namen mintbackup:

mintbackup screenshot

Dann aus der neuen Installation:

ein weiterer Screenshot von Mintbackup


Wäre dpkg --get-selections | awk '$2 == "install" {print $1}' > instlpkggleichwertig? Wie wäre es auch mit yum install alien auf RHEL / Fedora / CentOS?
Sergiy Kolodyazhnyy

1
Reproduzieren Sie nicht nur die Auswahl, sondern auch die Liste der automatisch installierten Pakete, sonst wird es unübersichtlich. Es gibt apt-clonejetzt, die dies automatisiert. Siehe unix.stackexchange.com/questions/191662/…
Gilles '

Es wäre hilfreich, auch zurückgehaltene Pakete zu kopieren. Das heißt, Conky 1.9 wird gehalten, damit Conky 1.10 die Dinge nicht durcheinander bringt. Ein Teil der Antwort wäre in AskUbuntu Thread .
WinEunuuchs2Unix

1
Diese Antwort ist schneller als die am häufigsten gewählte und enthält nicht die Vielzahl der oben genannten Fehlermeldungen apt-clone. 1/3 dieser Fehler wurden im obigen Kommentar gepostet.
WinEunuuchs2Unix

Sieht gut aus, aber ist es möglich, Mintbackup in Ubuntu 18.04 zu verwenden?
WebComer

1

Einstellungen werden normalerweise in gespeichert /etc/. Etckeeper kann praktisch sein. Sein Hauptzweck ist es, sich zu drehen/etc/ ein Git-Repository zu werden, aber es filtert auch einige Teile heraus, die Sie nicht kopieren möchten, wenn ich das richtig verstehe. Wenn Sie mit der neuen Installation vertraut sind git, ist es möglicherweise besser, sie zu verwenden etckeeper, um Ihre Änderungen in die neue Installation einzufügen.

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.