web-dev-qa-db-fra.com

Construire un package pour une autre architecture

J'essaie de patcher et de reconstruire un paquet (libvorbis, pour ce que ça vaut) sur Xubuntu 14.04 64 bits. Dans le passé, quand j'ai voulu faire quelque chose comme ça, j'ai suivi cette formule:

Sudo apt-get build-dep <package>
apt-get source <package>
cd <package-dir>
patch -Np1 < ../<patch>
dch -i
dpkg-source --commit
debuild -us -uc
cd ..
Sudo dpkg -i <new.deb>

Et pour patcher du vin dans le passé, cela fonctionnait comme un charme. Pour mon projet actuel, j'ai réussi à passer au travers et à reconstruire les packages, mais quand je suis allé installer les nouveaux, j'ai eu:

dpkg: error processing package libvorbis0a:AMD64 (--install):
 package libvorbis0a:AMD64 1.3.2-1.3ubuntu2 cannot be configured because libvorbis0a:i386 is at a different version (1.3.2-1.3ubuntu1)

J'allais essayer de désinstaller le paquet 32 ​​bits, car je ne suis pas sûr d'en avoir vraiment besoin, mais cela allait briser les dépendances pour beaucoup de choses. Comment puis-je modifier ma procédure (ou la réexécuter) pour créer également les versions 32 bits du package pour une installation parallèle? C'est possible?

Edit: J'ai essayé apt-get source libvorbis:i386, mais a obtenu:

E: Can not find a package for architecture 'i386'
E: Unable to find a source package for libvorbis:i386

Éditer 2:apt-get source libvorbis0a:i386 semble fonctionner, mais je me retrouve avec des packages 64 bits.

2
glibdud

Après fouillant j'ai découvert que vous ne pouvez pas faire ce que vous devez faire malgré la bonté multiarchitecture, du moins pas sans installer des tonnes de paquets et/ou créer un environnement chrooté.

Heureusement, les buildbots et les mainteneurs doivent le faire, il existe donc quelques outils qui pourraient servir cette proposition. Je vais utiliser pbuilder, pour deux raisons, il est disponible dans les référentiels principaux de Debian, ergo Ubuntu ', et est la création automatisée d'un écosystème propre qui peut être mis à jour/supprimé/maintenu à volonté sans toucher à votre principal système en dehors de sa flexibilité. Peut-être qu'après un certain temps j'écrirais sur la chaîne d'outils croisée.

Donc, commencez par installer les pbuilder et ubuntu-dev-tools packages et ensuite exécutez pbuilder-dist trusty i386 create (vous pouvez également spécifier la version cible à l'aide de --distribution trusty, par exemple). Maintenant, en fonction de votre téléchargement et de la vitesse du système, cela peut prendre un certain temps. Après la fin, vous devriez pouvoir créer n'importe quel package en utilisant simplement les éléments suivants:

pbuilder-dist trusty i386 libvorbis_1.3.2-1.4.dsc

Vous pouvez modifier trusty pour toute autre version disponible. Il générerait une version i386 de votre package.

1
Braiam