Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
applications:pbuilder [Le 11/04/2007, 23:42] _Enchained |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | =====Versions concernées===== | ||
- | * Ubuntu 4.10 "warty warthog" | ||
- | * Ubuntu 5.04 "hoary hedgehog" | ||
- | * Ubuntu 5.10 "breezy badger" | ||
- | * Ubuntu 6.06.1 LTS "dapper drake" | ||
- | * Ubuntu 6.10 "edgy eft" | ||
- | |||
- | =====Introduction===== | ||
- | |||
- | Ce document décrit les étapes nécessaires pour mettre en place un environnement de construction sain pour contruire des paquets Ubuntu. Cet outil est recommendé pour les mainteneurs Ubuntu comme pour toute personne utilisant Ubuntu et intéressée par la construction des paquets. | ||
- | |||
- | Il est possible de construire les paquets sans utiliser pbuilder, mais cela nécessite d'avoir installé au préalable sur votre système toutes les dépendances pour le compiler. | ||
- | |||
- | =====Installation===== | ||
- | |||
- | |||
- | ====Ubuntu Dapper 6.06.1 LTS et supérieures==== | ||
- | |||
- | La dernière version du paquet pbuilder devrait fonctionner sans problème. Il vous suffit de l'installer, puis d'exécuter : | ||
- | <code> | ||
- | sudo pbuilder create | ||
- | </code> | ||
- | |||
- | ====Ubuntu 4.10, 5.04 et 5.10==== | ||
- | |||
- | La procédure est un petit peu plus compliquée. | ||
- | De même, installez les paquets **pbuilder** et **debootstrap**. Ensuite, il faut éditer les lignes suivantes dans ///etc/pbuilder/pbuilderrc// : | ||
- | <code> | ||
- | MIRRORSITE=http://archive.ubuntu.com/ubuntu | ||
- | DISTRIBUTION=breezy | ||
- | </code> | ||
- | Pbuilder risque de se plaindre que les paquets ne sont pas authentifiés. Pour autoriser cela, éditez une nouvelle fois le fichier ///etc/pbuilder/pbuilderrc// : | ||
- | <code> | ||
- | APTCONFDIR="/etc/pbuilder/apt.config/" | ||
- | </code> | ||
- | Maintenant, copiez les fichiers nécessaires de ///etc/apt// : | ||
- | <code> | ||
- | sudo -s | ||
- | mkdir /etc/pbuilder/apt.config/ | ||
- | cp -ar /etc/apt/* /etc/pbuilder/apt.config/ | ||
- | echo "APT::Get::AllowUnauthenticated 1;" >> /etc/pbuilder/apt.config/apt.conf.d/allow-unauthenticated | ||
- | exit | ||
- | </code> | ||
- | **Note** : Assurez-vous de supprimer le fichier **99update-notifier** de ///etc/pbuilder/apt.config/apt.conf.d/// si vous l'avez copié à l'étape précédente. Cela peut potentiellement casser les futures mises à jour de votre chroot pbuilder, puisque le paquet update-notifier ne sera pas normalement installé. | ||
- | |||
- | Exécutez la commande suivante pour créer votre chroot pour breezy : | ||
- | <code> | ||
- | sudo pbuilder create --distribution breezy | ||
- | </code> | ||
- | |||
- | =====(Re)construction d'un paquet===== | ||
- | |||
- | Construire le paquet mon-paquet se fait avec la commande suivante : | ||
- | <code> | ||
- | sudo pbuilder build mon-paquet_1.0.dsc | ||
- | </code> | ||
- | Le ou les paquets seront disponibles dans le dossier ///var/cache/pbuilder/result// | ||
- | |||
- | **Note** : Si vous obtenez l'erreur //"debootstrap does not exist"//, installez **debootstrap** ou exécutez pbuilder avec l'option //--debootstrap cdebootstrap// (vous avez probablement cdebootstrap installé). | ||
- | |||
- | =====Mise à jour du chroot===== | ||
- | |||
- | Il est recommendé de mettre à jour votre chroot avant chaque construction ; pour ce faire, utilisez la commande ci-dessous : | ||
- | <code> | ||
- | sudo pbuilder update | ||
- | </code> | ||
- | |||
- | =====Support des dépôts Universe===== | ||
- | |||
- | ====Ubuntu Dapper 6.06.1 LTS et Ubuntu 6.10==== | ||
- | |||
- | Décommentez la ligne suivante dans le fichier ///etc/pbuilderrc// : | ||
- | <code> | ||
- | COMPONENTS="main restricted universe multiverse" | ||
- | </code> | ||
- | Maintenant il est nécessaire de remettre à jour le chroot avec la nouvelle configuration : | ||
- | <code> | ||
- | sudo pbuilder update --override-config | ||
- | </code> | ||
- | |||
- | |||
- | ====Ubuntu warty 4.10, hoary 5.04 et breezy 5.10==== | ||
- | |||
- | Éditez une nouvelle fois ///etc/pbuilderrc// : | ||
- | <code> | ||
- | OTHERMIRROR="deb http://archive.ubuntu.com/ubuntu breezy universe multiverse" | ||
- | </code> | ||
- | Maintenant il est nécessaire de remettre à jour le chroot avec la nouvelle configuration : | ||
- | <code> | ||
- | sudo pbuilder update --distribution breezy --override-config | ||
- | </code> | ||
- | |||
- | =====Mise à niveau vers la dernière version en développement===== | ||
- | |||
- | Si vous êtes désireux de participer au cycle actuel de développement, vous allez vouloir un chroot **feisty**. Quelques fois, il se peut que la version en développement ne soit pas installable directement. Dans ce cas, il vous faut d'abord installer la dernière version stable, puis mettre à niveau vers la version en développement : | ||
- | * changez toutes les occurrences de **edgy** en **feisty** dans ///etc/pbuilderrc// and ///etc/pbuilder/apt.config/// | ||
- | * //sudo pbuilder update --override-config// | ||
- | * utilisez l'option //--override-config// à chaque mise à jour | ||
- | |||
- | |||
- | =====Pbuilders multiples===== | ||
- | |||
- | Quand on travaille sur des paquets, il est souvent nécessaire de disposer de plusieurs pbuilders sur sa machine, par exemple pour rétro-porter vers Breezy alors que l'on développe Dapper, ou encore pour tester les paquets sur Sid à la recherche de bogues. | ||
- | |||
- | Pour ce faire, vous pouvez adapter le fichier **/usr/share/doc/pbuilder/examples/pbuilder-distribution.sh**, qui contient par défaut : | ||
- | <codee> | ||
- | #!/bin/sh | ||
- | # script from Jamin W. Collins BTS: #255165 | ||
- | # name this script 'pbuilder-woody', 'pbuilder-sid', 'pbuilder-sarge', 'pbuilder-experimental' etc. | ||
- | # | ||
- | # The script currently contains a minor, but harmless error | ||
- | # See https://launchpad.net/distros/ubuntu/+source/pbuilder/+bug/57284 | ||
- | |||
- | OPERATION=$1 | ||
- | DISTRIBUTION=`basename $0 | cut -f2 -d '-'` | ||
- | PROCEED=false | ||
- | BASE_DIR="$HOME/pbuilder" | ||
- | case $OPERATION in | ||
- | create|update|build|clean|login|execute ) | ||
- | PROCEED=true | ||
- | ;; | ||
- | esac | ||
- | if ( $PROCEED == true ) then | ||
- | shift | ||
- | sudo pbuilder $OPERATION \ | ||
- | --basetgz $BASE_DIR/$DISTRIBUTION-base.tgz \ | ||
- | --distribution $DISTRIBUTION \ | ||
- | --buildresult $BASE_DIR/result $@ | ||
- | else | ||
- | echo "Invalid command..." | ||
- | echo "Valid commands are:" | ||
- | echo " create" | ||
- | echo " update" | ||
- | echo " build" | ||
- | echo " clean" | ||
- | echo " login" | ||
- | echo " execute" | ||
- | exit 1 | ||
- | fi | ||
- | </code> | ||
- | Renommez-le pour la distribution que vous voulez (pbuilder-edgy par exemple), copiez le dans ///usr/local/bin///. Étant donné que le dossier ///var/cache/pbuilder// est défini par défaut pour les pbuilders, il est recommendé d'effectuer les changements suivants : | ||
- | <code> | ||
- | #!/bin/sh | ||
- | # script from Jamin W. Collins BTS: #255165 | ||
- | # name this script 'pbuilder-woody', 'pbuilder-sid', 'pbuilder-sarge' etc. | ||
- | # | ||
- | # The script currently contains a minor, but harmless error | ||
- | # See https://launchpad.net/distros/ubuntu/+source/pbuilder/+bug/57284 | ||
- | |||
- | OPERATION=$1 | ||
- | DISTRIBUTION=`basename $0 | cut -f2 -d '-'` | ||
- | PROCEED=false | ||
- | BASE_DIR="/var/cache/pbuilder" | ||
- | case $OPERATION in | ||
- | create|update|build|clean|login|execute ) | ||
- | PROCEED=true | ||
- | ;; | ||
- | esac | ||
- | if ( $PROCEED == true ) then | ||
- | shift | ||
- | sudo /usr/sbin/pbuilder $OPERATION \ | ||
- | --basetgz $BASE_DIR/$DISTRIBUTION/base.tgz \ | ||
- | --distribution $DISTRIBUTION \ | ||
- | --configfile $BASE_DIR/$DISTRIBUTION/pbuilderrc \ | ||
- | --aptconfdir $BASE_DIR/$DISTRIBUTION/apt.config \ | ||
- | --buildresult $BASE_DIR/$DISTRIBUTION/result $@ | ||
- | |||
- | else | ||
- | echo "Invalid command..." | ||
- | echo "Valid commands are:" | ||
- | echo " create" | ||
- | echo " update" | ||
- | echo " build" | ||
- | echo " clean" | ||
- | echo " login" | ||
- | echo " execute" | ||
- | exit 1 | ||
- | fi | ||
- | </code> | ||
- | N'oubliez pas de le rendre exécutable, en tapant : | ||
- | <code> | ||
- | sudo chmod +x /usr/local/bin/pbuilder-edgy | ||
- | </code> | ||
- | Maintenant, vous devriez créer le dossier ///var/cache/pbuilder/<DISTRIBUTION>// (par exemple /var/cache/pbuilder/edgy/), copiez-y les fichiers corrects de configuration (voir sections précédentes), puis exécutez **pbuilder-edgy create** pour créer le chroot à cet emplacement. Il vous est possible de renouveler l'opération pour chaque distribution (par exemple pbuilder-breezy, pbuilder-sarge, pbuilder-sid, etc.). | ||
- | |||
- | =====Ressources annexes===== | ||
- | |||
- | Le manuel de l'utilisateur de pbuilder: http://www.netfort.gr.jp/~dancer/software/pbuilder-doc/pbuilder-doc.html | ||
- | |||
- | ---- | ||
- | //Cette page est une traduction inspirée de https://wiki.ubuntu.com/PbuilderHowto par [[utilisateurs:mr_pouit]]// |