Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Passer de Debian Stretch 32 bits =?utf-8?q?=C3=A0_64?= bits

10 réponses
Avatar
ajh-valmer
Bonjour,

Pour cette migration,
=2D peut-on la faire directement,
=2D ou faut-il tout r=C3=A9installer ?

Merci,

A. Valmer

10 réponses

Avatar
S
Bonjour,
Le jeudi 27 juin 2019 à 11:18, ajh-valmer a écrit :
Pour cette migration,
- peut-on la faire directement,
- ou faut-il tout réinstaller ?

Ça peut se faire. Je l’ai fait sur plusieurs systèmes, notamment mon serveur qui
héberge plusieurs conteneurs LXC (donc une architecture un peu complexe).
Ce qu’il faut en retenir :
- l’issue est incertaine => prévois des sauvegardes (dd de ta partition
système)
- il y a plein de moments où dpkg, apt, aptitude vont renoncer et où tu
devras trouver comment les débloquer (modifier un script postinstall, etc.)
En gros, si tu n’as pas une solide expérience de Debian, évite ! Sinon, amuse
toi bien :)
Voilà la lecture qui m’a le plus aidé dans cette opération :
https://wiki.debian.org/CrossGrading
http://blog.calhariz.com/post/2017/07/30/Crossgrading-a-complex-Desktop-and-Debian-Developer-machine-running-Debian-9%2C-another-try#c43259761
Sébastien
Avatar
nicolas.patrois
Le 27/06/2019 09:58:37, Sébastien NOBILI a écrit :
Ça peut se faire. Je l’ai fait sur plusieurs systèmes, notamment mon
serveur qui héberge plusieurs conteneurs LXC (donc une architecture un peu
complexe).

Et ça marche s’il reste des paquets obsolètes en x86 ?
nicolas patrois : pts noir asocial
--
RÉALISME
M : Qu'est-ce qu'il nous faudrait pour qu'on nous considère comme des humains ? Un cerveau plus gros ?
P : Non... Une carte bleue suffirait...
=
Avatar
S
Le samedi 29 juin 2019 à 19:25, a écrit :
Ça peut se faire. Je l’ai fait sur plusieurs systèmes, notamment mon
serveur qui héberge plusieurs conteneurs LXC (donc une architecture un peu
complexe).

Et ça marche s’il reste des paquets obsolètes en x86 ?

Une fois que les briques les plus basses système (noyau, libc) sont passées en
amd64, les binaires x86 ne s’exécutent plus (et réciproquement), ce qui a été la
partie la plus complexe de la migration du serveur et de ses conteneurs (j’ai dû
faire la migration des conteneurs sur un machine externe qui était en amd64
pour limiter l’interruption de service).
Les paquets x86 sur le système amd64 pourront rester installés, mais on ne
pourra pas les faire fonctionner directement.
À une époque, je faisais de la compilation croisée pour ARM, et j’utilisais
binfmt_mist [1]. Ça pourrait répondre à ton besoin, mais n’en attends pas trop
niveau perfs…
1: https://en.wikipedia.org/wiki/Binfmt_misc
Sébastien
Avatar
Pascal Hambourg
Le 02/07/2019 à 14:54, Sébastien NOBILI a écrit :
Les paquets x86 sur le système amd64 pourront rester installés, mais on ne
pourra pas les faire fonctionner directement.

Pardon ? Il me semble que si un paquet reste installé, c'est que ses
éventuelles dépendances sont satisfaites. Qu'est-ce qui pourrait alors
l'empêcher de fonctionner ?
Avatar
S
Le mardi 02 juillet 2019 à 20:05, Pascal Hambourg a écrit :
Le 02/07/2019 à 14:54, Sébastien NOBILI a écrit :
Les paquets x86 sur le système amd64 pourront rester installés, mais on ne
pourra pas les faire fonctionner directement.

Pardon ? Il me semble que si un paquet reste installé, c'est que ses
éventuelles dépendances sont satisfaites. Qu'est-ce qui pourrait alors
l'empêcher de fonctionner ?

Le fait qu’un système intégralement amd64 ne sera pas capable d’exécuter un ELF
32 bits (ABI incompatible).
Mon système est intégralement amd64 :
$ uname -r
4.9.0-9-amd64
$ dpkg --print-architecture
amd64
Je vais extraire un paquet i386 et tenter d’exécuter un de ses binaires :
$ mkdir /tmp/test-i386
$ cd /tmp/test-i386
$ wget http://ftp.fr.debian.org/debian/pool/main/z/zsh/zsh_5.3.1-4+b2_i386.deb
$ dpkg -x zsh_5.3.1-4+b2_i386.deb .
$ file ./bin/zsh
./bin/zsh: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]H9a61bf130e5193615088afeb4a942742e1f386, stripped
$ ./bin/zsh
bash: ./bin/zsh: Aucun fichier ou dossier de ce type
Ça ne s’exécute pas.
Sébastien
Avatar
Pascal Hambourg
Le 02/07/2019 à 23:14, Sébastien NOBILI a écrit :
Le mardi 02 juillet 2019 à 20:05, Pascal Hambourg a écrit :
Le 02/07/2019 à 14:54, Sébastien NOBILI a écrit :
Les paquets x86 sur le système amd64 pourront rester installés, mais on ne
pourra pas les faire fonctionner directement.

Pardon ? Il me semble que si un paquet reste installé, c'est que ses
éventuelles dépendances sont satisfaites. Qu'est-ce qui pourrait alors
l'empêcher de fonctionner ?

Le fait qu’un système intégralement amd64 ne sera pas capable d’exécuter un ELF
32 bits (ABI incompatible).
Mon système est intégralement amd64 :
$ uname -r
4.9.0-9-amd64
$ dpkg --print-architecture
amd64
Je vais extraire un paquet i386 et tenter d’exécuter un de ses binaires :

Tatata. Merci de relire la question. Il ne s'agit pas d'exécuter un
binaire i386 extrait à la sauvage mais faisant partie d'un paquet
*installé* proprement donc a priori avec toutes ses dépendances, et
notamment une libc i386.
Avatar
Pascal Hambourg
Le 02/07/2019 à 23:42, Pascal Hambourg a écrit :
Le 02/07/2019 à 23:14, Sébastien NOBILI a écrit :
Le mardi 02 juillet 2019 à 20:05, Pascal Hambourg a écrit :
Le 02/07/2019 à 14:54, Sébastien NOBILI a écrit :
Les paquets x86 sur le système amd64 pourront rester installés, mais
on ne pourra pas les faire fonctionner directement.

Pardon ? Il me semble que si un paquet reste installé, c'est que ses
éventuelles dépendances sont satisfaites. Qu'est-ce qui pourrait alors
l'empêcher de fonctionner ?

Le fait qu’un système intégralement amd64 ne sera pas capable
d’exécuter un ELF
32 bits (ABI incompatible).
Mon système est intégralement amd64 :


(...)
Je vais extraire un paquet i386 et tenter d’exécuter un de ses binaires :

Tatata. Merci de relire la question. Il ne s'agit pas d'exécuter un
binaire i386 extrait à la sauvage mais faisant partie d'un paquet
*installé* proprement donc a priori avec toutes ses dépendances, et
notamment une libc i386.

PS : Si tu veux faire ça, essaie plutôt avec un exécutable statique
comme bash-static ou busybox-static.
Avatar
S
Bonjour,
Le mardi 02 juillet 2019 à 23:42, Pascal Hambourg a écrit :
Tatata. Merci de relire la question. Il ne s'agit pas d'exécuter un binaire
i386 extrait à la sauvage mais faisant partie d'un paquet *installé*
proprement donc a priori avec toutes ses dépendances, et notamment une libc
i386.

Oui, en effet. J’ai mal lu, répondu trop vite et donc à côté.
Avec le multiarch activé, la libc i386 installée, les dépendances i386
satisfaites, ça fonctionnera (sur un système amd64).
Merci d’avoir corrigé ;) et désolé pour ceux que j’ai pu embrouiller…
Sébastien
Avatar
nicolas.patrois
Le 03/07/2019 12:00:49, Sébastien NOBILI a écrit :
Oui, en effet. J’ai mal lu, répondu trop vite et donc à côté.
Avec le multiarch activé, la libc i386 installée, les dépe ndances i386
satisfaites, ça fonctionnera (sur un système amd64).

Super.
Encore une question : j’ai trois paquets cassés (mariadb).
Le passage à amd64 mettra à jour les trois paquets en version amd 64 cassés ?
nicolas patrois : pts noir asocial
--
RÉALISME
M : Qu'est-ce qu'il nous faudrait pour qu'on nous considère comme des humains ? Un cerveau plus gros ?
P : Non... Une carte bleue suffirait...
=
Avatar
S
Le mercredi 03 juillet 2019 à 19:12, Eric Degenetais a écrit :
Le mer. 3 juil. 2019 18:54, a écrit :
Encore une question : j’ai trois paquets cassés (mariadb).
Le passage à amd64 mettra à jour les trois paquets en version amd64 cassés
?
Je ne peux pas prouver que la réparation ne se fera pas, mais si j'étais
dans ce cas j'essaierais de réparer avant la migration pour ne pas démarrer
un processus déjà touchy sur des bases malsaines.

Tout à fait d’accord. Pendant le processus, tu vas souvent amener ton frontal
APT (apt-get, aptitude) à renoncer car trop de paquets sont cassés. Mets-toi
dans la meilleure situation possible : système sain.
Sébastien