web-dev-qa-db-fra.com

Comment créer des packages i386 et AMD64 sur mon ordinateur portable AMD64 à l'aide de debuild

J'aimerais pouvoir créer plusieurs versions (i386 et AMD64) de mon paquetage comportant des dépendances non triviales (gtk, etc.).

Mon script de construction utilise cmake.

Pour le moment, la commande debuild -i -us -uc -b ne construit que AMD64 sur ma distribution Ubuntu 64bits et je n’ai installé aucune chaîne d’outils de compilation croisée.

Comment créer des fichiers binaires pour les deux plates-formes?

5
Name is carl

Le packaging (c'est-à-dire debuild) n'est pas la partie difficile ici: la construction de l'application l'est.

Il existe de nombreuses façons de construire des binaires i386 sur un système 64 bits.

Utiliser une machine virtuelle 32bits

L'installation d'un via virtualbox est simple.

C’est de loin le plus simple, mais cela demande beaucoup d’espace disque et vous devrez configurer l’ensemble du système.

Mise en place d'un chroot

L'idée est de créer un sandbox i386 minimal dans votre configuration 64 bits.

Vous allez installer toutes les dépendances de compilation de votre outil et de votre application dans le chroot et effectuer la construction à partir de là.

Cette approche est plus légère que celle vm et offre beaucoup d’isolement.

tutoriel Kaizo explique clairement comment le faire

Un chroot prêt à construire une application gtk vala consommera environ 700 millions de dollars sur votre disque dur.

Utilisation de la compilation croisée

cmake est capable de construire votre application facilement à condition que la chaîne d’outils multilib soit installée.

La chaîne d’outils multilib peut être installée via

Sudo apt-get install g++-multilib 

Ensuite, vous devez spécifier les paramètres m32 à cmake afin de pouvoir construire des binaires i386 ce qui est facile .

Bien sûr, vous devrez installer sur votre ordinateur toutes les variantes i386 des dépendances de vos applications.

Si les dieux apt sont avec vous, vous pouvez le faire avec:

dpkg --add-architecture i386 
apt-get update
apt-get install libgtk-3-dev:i386 libgee-0.8-dev:i386 ...

Ceci fait, vous pouvez conditionner vos binaires brillants i386 avec

debuild -ai386 -i -us -uc -b
debuild clean   
3
Name is carl