web-dev-qa-db-fra.com

Construire plusieurs packages pour un déploiement sur différentes versions d'Ubuntu

J'ai besoin de construire debs pour Ubuntus Lucid. Je sais que je peux configurer des machines virtuelles/chroots, etc. pour créer une distribution par construction, mais existe-t-il un mécanisme de ma machine Oneiric permettant de faire quelque chose comme:

ubuntu-dpkg-buildpackage --distro=Lucid et avez-vous un deb Lucid?

En bref, ceci concerne les packages internes, et ne peut donc pas être confié à Launchpad ni à aucun autre endroit.

6
Paul Nathan

Il n’existe pas de solution à commande unique pour le faire, mais les outils existent pour le rendre relativement indolore:

  • debootstrap peut créer une installation Ubuntu minimale et vierge dans un répertoire autonome
  • schroot vous permet de gérer plusieurs chroots, en les maintenant propres pour une utilisation ultérieure
  • mk-schroot peut être utilisé pour automatiser la configuration et la gestion du schroot
  • Avec un fichier .dsc (généré avec debuild -S), sbuild chrootera dans votre chroot vierge, installera tous les paquets dépendants et construira vos sources.

c’est essentiellement ce que les serveurs de compilation du tableau de bord utilisent pour créer des packages sources et les placer dans l’archive Ubuntu.

En règle générale, l’utilisation d’un chroot vierge est une bonne pratique, car elle garantit que le package ne dépend d’une configuration personnalisée sur votre machine de compilation.

Le processus d'installation impliquerait la création d'une nouvelle racine pour chaque version d'Ubuntu que vous souhaitez cibler. Ceci est assez simple: utilisez mk-sbuild pour vous construire un nouveau chroot. Quelque chose comme ceci est ce que vous voulez:

 mk-sbuild --Arch = AMD64 --name = lucide lucide 

Cela vous guidera pour créer un chroot appelé 'lucid-AMD64' et affichera les informations utiles suivantes lorsque vous aurez terminé:

 Vous avez créé lucid-AMD64. 
 
 Pour CHANGER l'image dorée: schroot -c lucid-AMD64 
 À CONSTRUIRE dans un instantané: sbuild -A -d lucid-AMD64 PACKAGE * .dsc 

Ainsi, une fois vos chroots installés, le processus de construction serait le suivant:

  1. À partir du répertoire de niveau supérieur de votre pacakge source, debuild -S pour créer un paquet source, y compris <package>_<version>.dsc
  2. Exécutez la construction: sbuild -A -d lucid-AMD64 ../<package>_<version>.dsc

Pour plus d'informations, les pages de manuel relatives à mk-sbuild, schroot, sbuild, debootstrap et debuild sont assez complètes. https://wiki.ubuntu.com/DebootstrapChroot a de bonnes informations sur la construction et la configuration des chroots. En outre, il y a # ubuntu-devel sur irc.freenode.net si vous avez besoin d’un coup de main.

6
Jeremy Kerr