Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
pbuilder [Le 15/04/2007, 00:28]
_Enchained
pbuilder [Le 31/12/2021, 14:02] (Version actuelle)
wiki-corrector-bot passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>feisty edgy dapper breezy hoary warty paquet ​orthographe}}+ 
 +{{tag>Xenial ​paquet}}
  
 ---- ----
  
 ====== P-Builder, ou comment bien construire des paquets ====== ====== P-Builder, ou comment bien construire des paquets ======
- 
  
 Ce document décrit les étapes nécessaires pour mettre en place un environnement de construction sain pour construire des paquets Ubuntu. Cet outil est recommandé pour les mainteneurs Ubuntu comme pour toute personne utilisant Ubuntu et intéressée par la construction des paquets. Ce document décrit les étapes nécessaires pour mettre en place un environnement de construction sain pour construire des paquets Ubuntu. Cet outil est recommandé 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 ​**P-Builder**, mais cela nécessite d'​avoir installé au préalable sur votre système toutes les dépendances pour le compiler.+Il est possible de construire les paquets sans utiliser P-Builder, mais cela nécessite d'​avoir installé au préalable sur votre système toutes les dépendances pour le compiler.
  
 =====Installation===== =====Installation=====
  
 +[[:​tutoriel:​comment_installer_un_paquet|Installez]] le paquet **pbuilder** puis générez l'​environnement pbuilder avec la commande :
 +  sudo pbuilder --create
  
-====Ubuntu Dapper 6.06.1 LTS et supérieures==== +<note help> 
- +Cette commande aura pour effet de créer un environnement isolé de votre système, appelé ​« chroot ​». Cet environnement est en fait l'image du système tout frais après installation. En utilisant ​pbuilder ​pour construire vos paquets, ​vous serez alors sûr que le paquet s'​installe bien sur tous les systèmesmême une Ubuntu venant ​d'être installée et sur laquelle ​l'utilisateur n'a installé aucun paquet ​supplémentaire
-La dernière version du paquet ​« pbuilder ​» devrait fonctionner sans problèmeIl vous suffit de l'[[:​tutoriel:​comment_installer_un_paquet|installer]],​ puis d'​exécuter : +</note>
- +
-  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**. Ensuiteil faut [[:​tutoriel:​comment_editer_un_fichier|éditer les lignes suivantes]] dans « /​etc/​pbuilder/​pbuilderrc » : +
-<​file>​ +
-    MIRRORSITE=http://​archive.ubuntu.com/​ubuntu +
-    DISTRIBUTION=breezy +
-</​file>​ +
-**Pbuilder** risque de se plaindre ​que les paquets ne sont pas authentifiés. Pour autoriser cela[[:​tutoriel:​comment_editer_un_fichier|éditez ​une nouvelle fois le fichier]] « /​etc/​pbuilder/​pbuilderrc » : +
-<​file>​ +
-    APTCONFDIR="/​etc/​pbuilder/​apt.config/"​ +
-</​file>​ +
-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 : +
- +
-  sudo pbuilder create --distribution breezy+
  
 =====(Re)Construction d'un paquet===== =====(Re)Construction d'un paquet=====
  
 Construire le paquet « mon-paquet » se fait avec la commande suivante : Construire le paquet « mon-paquet » se fait avec la commande suivante :
 +  sudo pbuilder --build mon-paquet_1.0.dsc
  
-  sudo pbuilder ​build mon-paquet_1.0.dsc+<note help> 
 +Le fichier .dsc est une partie du paquet source - que pbuilder ​va utiliser pour construire le paquet binaire ​est généré avec la commande **debuild**Ceci est expliqué en détails dans la page de tutoriel traitant de la [[tutoriel:​creer_un_paquet|création de paquets]] 
 +</​note>​
  
-Le ou les paquets seront disponibles dans le dossier ​« /​var/​cache/​pbuilder/​result ​»+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é).+<note tip> 
 +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é). 
 +</​note>​
  
 =====Mise à jour du chroot===== =====Mise à jour du chroot=====
  
-Il est recommandé de mettre à jour votre chroot avant chaque construction ​; pour ce faire, utilisez la commande ​ci-dessous ​: +Il est recommandé de mettre à jour votre chroot avant chaque construction. Pour ce faire, utilisez la commande :
   sudo pbuilder update   sudo pbuilder update
  
 +=====Support des dépôts Universe et Multiverse=====
  
-=====Support des dépôts Universe===== +[[:​tutoriel:​comment_editer_un_fichier|éditez ​le fichier]] **/​etc/​pbuilderrc** et décommentez la ligne 
- +<file>
-====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"​ COMPONENTS="​main restricted universe multiverse"​
-</code> +</file>
-Maintenant il est nécessaire de remettre à jour le chroot avec la nouvelle configuration : +
-<​code>​ +
-    sudo pbuilder update --override-config +
-</code>+
  
 +À chaque modification de votre pbuilder, il faut le mettre à jour en prenant en compte 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//​ : 
-<​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===== =====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 ​+Si vous êtes désireux de participer au cycle actuel de développement,​ vous allez vouloir un chroot **gutsy**. Quelquefois, 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+
  
 +C'est le cas (actuellement pour Gutsy Gibbon). Voici donc la procédure :
 +  * Créez un pbuilder Feisty : //sudo pbuilder create//
 +  * Changez toutes les occurrences de **feisty** en **gutsy** dans **/​etc/​pbuilderrc**
 +  * Mettez à jour le chroot : //sudo pbuilder update --override-config//​
 +  * Utilisez l'​option //​--override-config//​ à chaque mise à jour (tant que la version n'est pas prise en compte par pbuilder)
  
 =====Pbuilders multiples===== =====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.+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 Dapper et Edgy alors que l'on développe ​sous Feisty, ou encore pour tester les paquets sur Debian ​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 : +Pour ce faire, le fichier **/​usr/​share/​doc/​pbuilder/​examples/​pbuilder-distribution.sh** ​va vous aider. Il contient par défaut : 
-<code bash>+<file>
 #!/bin/sh #!/bin/sh
 # script from Jamin W. Collins ​ BTS: #255165 # script from Jamin W. Collins ​ BTS: #255165
 # name this script '​pbuilder-woody',​ '​pbuilder-sid',​ '​pbuilder-sarge',​ '​pbuilder-experimental'​ etc. # 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 OPERATION=$1
Ligne 121: Ligne 80:
 esac esac
 if ( $PROCEED == true ) then if ( $PROCEED == true ) then
-   shift+   ​shift ​
    sudo pbuilder $OPERATION \    sudo pbuilder $OPERATION \
       --basetgz $BASE_DIR/​$DISTRIBUTION-base.tgz \       --basetgz $BASE_DIR/​$DISTRIBUTION-base.tgz \
Ligne 137: Ligne 96:
    exit 1    exit 1
 fi fi
-</code> +</file>
-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 bash> +
-#!/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 +Copiez ce fichier dans **/​usr/​local/​bin** en remplaçant //​distribution//​ par le nom de la version ​d'Ubuntu voulue.\\ 
-DISTRIBUTION=`basename $0 | cut -f2 -d '-'` +Par exemple pour créer un pbuilder ​Dapper, vous le nommerez **pbuilder-dapper** : 
-PROCEED=false +  sudo cp /usr/share/doc/pbuilder/examples/pbuilder-distribution.sh /usr/local/bin/pbuilder-dapper
-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 +<note tip> 
-   echo "​Invalid command..." +Ce même script renommé en pbuilder-edgy par exemple, créerai un pbuilder edgyEn effet, le script récupère le nom de distribution que vous avez mis après le tiret dans le nom de fichier
-   echo "Valid commands are:"​ +</note>
-   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 :+
  
-  sudo chmod +x /​usr/​local/​bin/​pbuilder-edgy ​+**Répertoire de base des pbuilders**
  
-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 dossier ​utilisé par défaut pour les pbuilders est **/​var/​cache/​pbuilder/​**. Nous allons donc modifier le script et remplacer la ligne 
 +<file>BASE_DIR="​$HOME/pbuilder"<​/file> 
 +par 
 +<​file>​BASE_DIR="​/​var/​cache/​pbuilder"</file>
  
-=====Ressources annexes=====+Enfin, n'​oubliez pas de rendre votre script exécutable : 
 +  sudo chmod +x /​usr/​local/​bin/​pbuilder-dapper
  
-Le manuel de l'​utilisateur de pbuilder: ​http://​www.netfort.gr.jp/​~dancer/​software/​pbuilder-doc/​pbuilder-doc.html+Enfin créez le chroot du pbuilder : 
 +  sudo pbuilder-dapper create 
 + 
 +===== Ressources ===== 
 + 
 +  * [[https://​www.netfort.gr.jp/​~dancer/​software/​pbuilder-doc/​pbuilder-doc.html|Le manuel de l'​utilisateur de pbuilder]] 
 +  * [[https://​wiki.ubuntu.com/​PbuilderHowto|Wiki officiel ubuntu sur pbuilder]]
  
 ---- ----
 +inspirée de [[https://​wiki.ubuntu.com/​PbuilderHowto]]
  
-//​Contributeurs : Cette page est une traduction inspirée de https://​wiki.ubuntu.com/​PbuilderHowto par [[utilisateurs:​mr_pouit]]//​ +//​Contributeurs :  [[utilisateurs:​mr_pouit]], [[:​utilisateurs:​_Enchained]]//
  • pbuilder.1176589702.txt.gz
  • Dernière modification: Le 18/04/2011, 14:51
  • (modification externe)