Rolinh

Rolinh' release

Archlinux: Comment Créer Un Paquet 32-bit Depuis Une Installation 64-bit

En plus de mon beau Lenovo, je possède un netbook (Asus EeePC 1005HA) sur lequel est bien évidemment également installé Archlinux.

Seulement voilà: il m’arrive d’installer des paquets depuis AUR et cela passe souvent par une compilation. Évidemment, l’ensemble d’excellents outils fournis avec Archlinux (pacman, makepkg, PKGBUILD) facilitent énormément la tâche de création de paquets mais seulement voilà, compiler sur un netbook disposant d’un faible Intel Atom N280 en guise de processeur est loin d’être une joie. Surtout lorsque l’on possède une belle machine comme la mienne pour compiler!

L’idée est donc de compiler le paquet sur mon Lenovo et de le rendre disponible pour le netbook par la suite. Seulement voilà: mon Lenovo possède une Archlinux 64-bit alors que le netbook, processeur 32-bit oblige, une Archlinux 32-bit et par conséquent les paquets ne sont pas compatibles.

La solution? Créer un paquet 32-bit depuis l’installation 64-bit. Pour cela, il faut évidemment passer par un chroot 32-bit.

Cela pourrait être un vrai chemin de croix pour certains mais en fait le travail est facilité par des outils très pratiques. Voici comment procéder dans le détail.

Il faut commencer par créer le répertoire devant contenir notre chroot. Le faire dans /opt avec un nom parlant est une bonne idée:

sudo mkdir /opt/arch32

Les outils dont nous avons besoin sont fournis dans le paquet devtools. Alors installons le:

sudo pacman -S devtools

Ceci fait, on va copier notre existant pacman.conf dans notre dossier de chroot:

sudo cp /etc/pacman.conf /opt/arch32

On va également avoir besoin du makepkg.conf. Celui-ci possèdant une configuration spécifique à l’architecture, on va prendre celui par défaut pour 32-bit fournis avec le paquet devtools:

sudo cp /usr/share/devtools/makepkg-i686.conf /opt/arch32

Ceci fait, il nous faut éditer /opt/arch32/pacman.conf afin d’être certain qu’il ne contienne pas de référence à du 64-bit. Il faut changer cette ligne:

Architecture = auto

Pour celle-là:

Architecture = i686

Il faut également être sûr que le dépôt multilib n’est pas activé ainsi que tout autre dépôt uniquement 64-bit sous peine de faire foirer le chroot.

Et c’est maintenant que s’applique la magie des beaux outils. La commande suivante va configurer le chroot et installer tout ce qu’il nous faut comme paquets afin de pouvoir en créer un:

sudo mkarchroot -C /opt/arch32/pacman.conf -M /opt/arch32/makepkg.conf /opt/arch32/root base base-devel sudo

Cela peut évidemment prendre un peu de temps en fonction de votre connection internet.

Une fois ceci fait, il faut copier le PKGBUILD du paquet que l’on veut créer quelque part dans notre chroot. Mettons que l’on veuille compiler le paquet xfwm4-tiling, disponible sur AUR, on va créer le dossier /opt/arch32/aur/xfwm4-tiling et y mettre les fichiers nécessaires dedans (PKGBUILD et éventuels autres fichiers nécessaires). Il faut ensuite se rendre dans le dossier contenant le PKGBUILD (dans notre exemple /opt/arch32/aur/xfwm4-tiling) et lancer la commande suivante:

sudo makechrootpkg -c -r /opt/arch32

Et après un petit moment: tadaaa, voilà le paquet 32-bit créé! Et oui, c’est aussi simple que ça!

Si vous comptez réutiliser votre chroot plus tard, la commande suivante suffit afin de s’assurer que notre chroot est bien à jour:

sudo mkarchroot -u /opt/arch32/root

Alors, ils ne sont pas beau les outils Archlinux?