Ceci est une ancienne révision du document !


  • 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"
  • Ubuntu 7.04 "Feisty Fawn"

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.

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 :

sudo pbuilder create 

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 :

    MIRRORSITE=http://archive.ubuntu.com/ubuntu
    DISTRIBUTION=breezy

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 :

    APTCONFDIR="/etc/pbuilder/apt.config/"

Maintenant, copiez les fichiers nécessaires de /etc/apt :

    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

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 :

    sudo pbuilder create --distribution breezy

Construire le paquet mon-paquet se fait avec la commande suivante :

sudo pbuilder build mon-paquet_1.0.dsc

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é).

Il est recommendé de mettre à jour votre chroot avant chaque construction ; pour ce faire, utilisez la commande ci-dessous :

    sudo pbuilder update

Ubuntu Dapper 6.06.1 LTS et Ubuntu 6.10

Décommentez la ligne suivante dans le fichier /etc/pbuilderrc :

COMPONENTS="main restricted universe multiverse"

Maintenant il est nécessaire de remettre à jour le chroot avec la nouvelle configuration :

    sudo pbuilder update --override-config

Ubuntu warty 4.10, hoary 5.04 et breezy 5.10

Éditez une nouvelle fois /etc/pbuilderrc :

    OTHERMIRROR="deb http://archive.ubuntu.com/ubuntu breezy universe multiverse"

Maintenant il est nécessaire de remettre à jour le chroot avec la nouvelle configuration :

    sudo pbuilder update --distribution breezy --override-config

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

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 :

#!/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

N'oubliez pas de le rendre exécutable, en tapant :

sudo chmod +x /usr/local/bin/pbuilder-edgy 

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.).

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 mr_pouit

  • pbuilder.1176327932.txt.gz
  • Dernière modification: Le 11/04/2007, 23:47
  • (modification externe)