GNU/Linux >> Tutoriels Linux >  >> Debian

Debian - Comment convertir un système basé sur Debian 32 bits (x86) en 64 bits ?

J'ai un système 32 bits qui fonctionne sur un processeur 64 bits. Comment puis-je le convertir pour qu'il soit entièrement 64 bits, sans réinstaller? J'ai vu quelque part que c'était faisable grâce au nouveau framework Multiarch.

Réponse acceptée :

TL;DR : C'est faisable, mais compliqué. J'ai décrit une alternative en bas.

Maintenant la longue description , et prenez-le avec un grain de sel, car je n'ai peut-être pas pris le meilleur chemin :

C'est possible, et voici ce que j'ai fait ces deux dernières nuits :
Il existe une entrée wiki décrivant la méthode à l'ancienne sans support multiarch. C'est utile pour réparer les paquets cassés.

Pour migrer votre système de base, procédez comme suit :

$ 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

Certains de vos packages sont alors amd64, mais la plupart resteront i386. apt-get upgrade s'occupera de certains paquets, apt-get -f install réparera certaines erreurs, mais la plupart des paquets resteront i386. Si vous voulez faire face à cela, sautez la partie délicate 😉

Utilisation de dpkg --get-selections | grep :i386 renverra tous vos packages, qu'il vous faudra encore migrer.

Ma prochaine idée était de faire :

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

Mais cela s'est avéré être une mauvaise idée :certains packages ne sont pas disponibles dans amd64 (par exemple libc6-i686), apt-get sera confus et de nombreux packages seront installés dans les deux versions. Beaucoup de travail manuel d'aptitude est à faire.

Plus de difficultés : Certains packages essentiels peuvent être remplacés, de sorte que vous aurez toujours les binaires installés pour l'installation, mais certains packages devront être supprimés et réinstallés, par ex. J'ai eu ce problème avec le goudron. J'ai récupéré les packages sur un autre système, j'ai extrait les packages via ar p package.deb data.tar.gz | tar zx puis scp ed les fichiers extraits via scp -r ./* [email protected]_computer:/ , afin que les fichiers binaires soient à nouveau disponibles. Rincer et répéter, et le scp les fichiers créés seront écrasés.

Ce que je ferais à la place

J'ai fait ce qui suit, chaque fois que j'ai changé de système :

Sauvegarder /home , /etc (et peut-être /var , /usr/local , d'autres fichiers que vous avez modifiés, /root , …, YMMV).

Obtenez une liste des packages installés avec dpkg --get-selections > packagelist et copiez le fichier résultant packagelist aussi.

Connexe :Comment vérifier les blocs défectueux sur un volume physique LVM ?

Ensuite, faites une réinstallation propre de Debian, créez à nouveau tous les utilisateurs, peut-être des rôles, etc.

Réinstallez tous les packages avec dpkg --set-selections < packagelist; apt-get -f install .

Copiez les répertoires et fichiers sauvegardés et vous avez presque terminé.

Un inconvénient de cette approche :tous vos packages, y compris les bibliothèques, seront marqués comme installés manuellement, de sorte qu'ils ne seront pas désinstallés, lorsqu'aucun package n'en dépendra plus.


Debian
  1. Comment lister les paquets installés sur Debian

  2. Comment changer le nom d'hôte sur Debian 10 Linux

  3. Comment installer Gradle sur Debian 10

  4. Comment installer AnyDesk sur Debian 10

  5. Debian – Comment exécuter des programmes 32 bits sur une Debian/ubuntu 64 bits ?

Comment installer PostgreSQL 14 sur Debian 11

Comment automatiser les tâches sur Debian 11

Comment installer les mises à jour de sécurité dans Ubuntu et Debian

Comment supprimer des packages d'Ubuntu et de Debian

Comment installer Webmin sur Debian 11

Comment vérifier que le système Linux est 32 bits ou 64 bits ?