Convertir un deb i386 en amd64

Salut,
J’ai égaré mon pense-bête avec les commandes pour convertir un i386.deb en amd64.deb… (ou comment fabriquer un deb 64b à partir d’un deb 32b)

Sur le net ça regorge de “convert i386.rpm to amd64.deb” rien de deb à deb…

Quelqu’un se souvient de la façon de procéder ?
J’en profiterais pour mettre ça sur le wiki.

Merci d’avance

Je savais même pas que cela pouvait être possible :confused:

Pour un paquet disponible uniquement en 32 bit et sans sources disponible je suis déja passé par:

# dpkg -i --force-architecture paquet32.deb

Mais transformer un paquet 32 en 64 j’ aimerais bien savoir comment c’ est possible :mrgreen:

[quote=“nanard”]Je savais même pas que cela pouvait être possible :confused:

Pour un paquet disponible uniquement en 32 bit et sans sources disponible je suis déja passé par:

# dpkg -i --force-architecture paquet32.deb

Mais transformer un paquet 32 en 64 j’ aimerais bien savoir comment c’ est possible :mrgreen:[/quote]

Salut,
Si c’est possible.
j’ai fait ça il y a un an pour le développeur de notalweg qui n’avait fait que les paquets pour i386.
Mais j’ai oublié et j’ai paumé mes notes… :blush:

Moi non plus je ne savias pas que cela était possible, comme quoi on en apprend tous les jours. :119

[quote=“lol”]Salut,
J’ai égaré mon pense-bête avec les commandes pour convertir un i386.deb en amd64.deb… (ou comment fabriquer un deb 64b à partir d’un deb 32b)

Sur le net ça regorge de “convert i386.rpm to amd64.deb” rien de deb à deb…

Quelqu’un se souvient de la façon de procéder ?
J’en profiterais pour mettre ça sur le wiki.

Merci d’avance[/quote]

Histoire de fou : Avec alien convertir ton .deb en .rpm puis appliquer leur méthode :laughing:

Sans recompilation en amd64 on ne peut espérer profiter des possibilités du CPU ?

J’ai fait un tuto là dessus dans le T&astuces: faire-tourner-du-32-bits-sur-64-bits-ou-du-vieux-sur-du-neuf-t25727.html

Pour convertir un paquet, c’est simple mais dangeureux (les dépendances sont mauvaises):

[code]# mv paquet_i386.deb /tmp

mkdir /tmp/tempo

cd /tmp/tempo

dpkg-deb -x …/paquet_i386.deb .

dpkg -e …/paquet_i386.deb

sed -i -e ‘1,$s/i386/amd64/g’ DEBIAN/control

dpkg-deb -b . …/paquet_amd64.deb

[/code]
mais c’est identique à un dpkg --force-architecture.

Une méthode plus fine consiste à remplacer les paquets de librairies exigées dans debian/CONTROL par leur équivalents 32 bits ou bien à les rajouter (les librairies) dans un répertoire et dans le paquet. cf le tuto pour ça.

Je n’avais même pas pensé au forum… :blush:
C’est exactement ce à quoi je pensais.
Evidemment ça fonctionne bien pour des paquets qui n’ont pas de grosses dépendances en 32bits. Ou alors comme tu le précise il faut ajouter les bibliothèques dans le paquet.
Merci.

[quote=“fran.b”]Pour convertir un paquet, c’est simple mais dangeureux (les dépendances sont mauvaises):

[code]# mv paquet_i386.deb /tmp

mkdir /tmp/tempo

cd /tmp/tempo

dpkg-deb -x …/paquet_i386.deb .

dpkg -e …/paquet_i386.deb

sed -i -e ‘1,$s/i386/amd64/g’ DEBIAN/control

dpkg-deb -b . …/paquet_amd64.deb

[/code]
mais c’est identique à un dpkg --force-architecture.[/quote]

Donc si on a les libs 32 on a aussi vite fait de faire le --force-architecture non ?

Oui oui.
L’intérêt n’est pas l’installation du paquet, mais la compilation pour amd64 (pour mettre dans un dépôt par exemple…).