GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Debian – Wie konvertiere ich ein 32-Bit (x86) Debian-basiertes System in 64-Bit?

Ich habe ein 32-Bit-System, das auf einem 64-Bit-Prozessor läuft. Wie konvertiere ich es auf 64-Bit, ohne es neu zu installieren? Ich habe irgendwo gesehen, dass es als Ergebnis des neuen Multiarch-Frameworks machbar ist.

Akzeptierte Antwort:

TL;DR: Es ist machbar, aber kompliziert. Eine Alternative habe ich unten skizziert.

Nun die lange Beschreibung , und nehmen Sie es mit einem Körnchen Salz, da ich vielleicht nicht den besten Weg genommen habe:

Es ist möglich, und hier ist, was ich in den letzten zwei Nächten getan habe:
Es gibt einen Wiki-Eintrag, der den Weg der alten Schule ohne Multiarch-Unterstützung beschreibt. Es ist hilfreich, um beschädigte Pakete zu reparieren.

So migrieren Sie Ihr Basissystem:

$ dpkg --print-architecture
i386
# dpkg --add-architecture amd64
$ dpkg --print-foreign-architectures
amd64
# apt-get update
# apt-get download gcc-4.6-base:amd64 libgcc1:amd64 libc6:amd64 \
          libselinux1:amd64 zlib1g:amd64 libbz2-1.0:amd64 dpkg:amd64
# dpkg -i gcc-4.6-base*.deb libgcc*.deb libc*.deb libselinux*.deb \
          libbz2*.deb zlib*.deb dpkg*.deb
$ dpkg --print-architecture
amd64
$ dpkg --print-foreign-architectures
i386

Einige Ihrer Pakete sind dann amd64, aber die meisten bleiben i386. apt-get upgrade kümmert sich um einige Pakete, apt-get -f install wird einige Fehler beheben, aber die meisten Pakete werden immer noch i386 bleiben. Wenn du damit fertig werden willst, dann überspringe den kniffligen Teil 😉

Verwenden von dpkg --get-selections | grep :i386 wird alle Ihre Pakete zurückgeben, die Sie noch migrieren müssen.

Meine nächste Idee war:

# apt-get install `dpkg --get-selections \
  | grep i386 \
  | awk {'gsub(/:i386/, ":amd64"); print $1'}`

Aber es stellte sich als schlechte Idee heraus:Einige Pakete sind in AMD64 nicht verfügbar (z. B. libc6-i686), apt-get wird verwirrt und viele Pakete werden in beiden Versionen installiert. Es ist viel Handarbeit in der Eignung zu leisten.

Mehr Härte: Einige wichtige Pakete können ersetzt werden, sodass Sie immer die Binärdateien für die Installation installiert haben, aber einige Pakete müssen entfernt und erneut installiert werden, z. Ich hatte dieses Problem mit tar. Ich habe die Pakete auf einem anderen System geholt, die Pakete über ar p package.deb data.tar.gz | tar zx und dann scp edieren Sie die extrahierten Dateien über scp -r ./* [email protected]_computer:/ , sodass die Binärdateien wieder verfügbar sind. Spülen und wiederholen, und das scp ed-Dateien werden überschrieben.

Was ich stattdessen tun würde

Ich habe Folgendes getan, wann immer ich das System gewechselt habe:

Sichern Sie /home , /etc (und vielleicht /var , /usr/local , einige andere Dateien, die Sie geändert haben, /root , …, YMMV).

Holen Sie sich eine Liste der installierten Pakete mit dpkg --get-selections > packagelist und kopieren Sie die resultierende Datei packagelist auch.

Verwandt:Wie kann man auf einem physischen LVM-Volume nach fehlerhaften Blöcken suchen?

Führen Sie dann eine saubere Neuinstallation von Debian durch, erstellen Sie alle Benutzer neu, möglicherweise Rollen usw.

Installieren Sie alle Pakete neu mit dpkg --set-selections < packagelist; apt-get -f install .

Kopieren Sie die gesicherten Verzeichnisse und Dateien zurück, und Sie sind größtenteils fertig.

Ein Nachteil dieses Ansatzes:Alle Ihre Pakete, einschließlich Bibliotheken, werden als manuell installiert markiert, sodass sie nicht deinstalliert werden, wenn kein Paket mehr von ihnen abhängt.


Debian
  1. Wie man installierte Pakete auf Debian auflistet

  2. So ändern Sie den Hostnamen unter Debian 10 Linux

  3. So installieren Sie Gradle unter Debian 10

  4. So installieren Sie AnyDesk unter Debian 10

  5. Debian – Wie führt man 32-Bit-Programme auf einem 64-Bit-Debian/Ubuntu aus?

So installieren Sie PostgreSQL 14 auf Debian 11

So automatisieren Sie Aufgaben unter Debian 11

So installieren Sie Sicherheitsupdates in Ubuntu und Debian

So entfernen Sie Pakete von Ubuntu &Debian

So installieren Sie Webmin unter Debian 11

Wie kann ich überprüfen, ob das Linux-System 32-Bit oder 64-Bit ist?