Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
pbuilder [Le 11/04/2007, 23:44]
_Enchained créée
pbuilder [Le 12/02/2024, 15:20] (Version actuelle)
89.86.155.3
Ligne 1: Ligne 1:
-=====Versions concernées=====+{{tag>​Xenial paquet}}
  
-  * 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=====+====== 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 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.+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 ​pbuilder, 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 installationEn utilisant pbuilder pour construire vos paquets, vous serez alors sûr que le paquet s'​installe bien sur tous les systèmes, même une Ubuntu venant d'​être installée ​et sur laquelle l'​utilisateur n'a installé aucun paquet supplémentaire. 
 +</​note>​
  
-La dernière version du paquet pbuilder devrait fonctionner sans problème. Il vous suffit de l'​installer,​ puis d'exécuter : +=====(Re)Construction ​d'un paquet=====
-<​code>​ +
-sudo pbuilder create  +
-</​code>​+
  
-====Ubuntu 4.10, 5.04 et 5.10====+Construire le paquet « mon-paquet » se fait avec la commande suivante : 
 +  sudo pbuilder --build mon-paquet_1.0.dsc
  
-La procédure ​est un petit peu plus compliquée. +<note help> 
-De même, installez les paquets **pbuilder** ​et **debootstrap**. Ensuite, il faut éditer les lignes suivantes ​dans ///​etc/​pbuilder/​pbuilderrc// ​: +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]] 
-<​code>​ +</note>
-    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 : +Le ou les paquets seront disponibles dans le dossier **/​var/​cache/​pbuilder/result/**
-<​code>​ +
-    sudo pbuilder ​create --distribution breezy +
-</code>+
  
-=====(Re)construction d'un paquet===== +<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é). 
-Construire le paquet mon-paquet se fait avec la commande suivante : +</​note>​
-<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===== =====Mise à jour du chroot=====
  
-Il est recommendé ​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 : 
-<​code>​ +  sudo pbuilder update
-    ​sudo pbuilder update +
-</​code>​+
  
-=====Support des dépôts Universe=====+=====Support des dépôts Universe ​et Multiverse=====
  
-====Ubuntu Dapper 6.06.1 LTS et Ubuntu 6.10==== +[[:​tutoriel:​comment_editer_un_fichier|éditez ​le fichier]] **/​etc/​pbuilderrc** et décommentez la ligne 
- +<file>
-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 : 
-<codee>+<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 123: Ligne 79:
 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 139: Ligne 95:
    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>​ +version améliorer avec config priver 
-#!/bin/sh + 
-# script from Jamin WCollins ​ BTS: #255165 +en personnalisant ​la config fonctionne sur Ubuntu Debian et Fedora 
-# name this script '​pbuilder-woody',​ 'pbuilder-sid', 'pbuilder-sarge' etc. + 
-+voir le projet sur bitbucket 
-# The script currently contains a minor, but harmless error + 
-# See https://launchpad.net/distros/ubuntu/+source/pbuilder/+bug/57284+https://bitbucket.org/amidevous/fedora-rpm/src/master/pbuilder/ 
 + 
 +inclut fonction utile pour créer des multiples rapidement 
 + 
 +vous pouvez l'installer en 1 click mais je vous met le centos si dessus 
 + 
 +<​code>​sudo wget https://bitbucket.org/​amidevous/​fedora-rpm/​raw/​d79b8453794e4105433df8a0041ceb40683642f0/​pbuilder/debian/pbuilder-config -O /usr/bin/pbuilder-config && sudo chmod +x /usr/bin/pbuilder-config</code> 
  
-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>​ <​code>​
-sudo chmod +x /usr/local/​bin/​pbuilder-edgy +#​!/​bin/​bash 
 +ubuntuori () { 
 +   sudo wget "​https://​bitbucket.org/​amidevous/​fedora-rpm/​raw/​master/​pbuilder/​debian/​pbuilderrc"​ -O /​etc/​pbuilderrc 
 +   sudo wget "​https://​bitbucket.org/​amidevous/​fedora-rpm/​raw/​master/​pbuilder/​debian/​pbuilder-ubuntu-stable"​ -O /​usr/​bin/​pbuilder-$1 
 +   chmod +x /usr/bin/​pbuilder-$1 
 +   sudo pbuilder-$1 create 
 +
 +ubuntuarc () { 
 +   sudo wget "​https://​bitbucket.org/​amidevous/​fedora-rpm/​raw/​master/​pbuilder/​debian/​pbuilderrc"​ -O /​etc/​pbuilderrc 
 +   sudo wget "​https://​bitbucket.org/​amidevous/​fedora-rpm/​raw/​master/​pbuilder/​debian/​pbuilder-ubuntu-old"​ -O /usr/​bin/​pbuilder-$1 
 +   chmod +x /​usr/​bin/​pbuilder-$1 
 +   sudo pbuilder-$1 create 
 +
 +ubuntuarc2 () { 
 +   sudo wget "​https://​bitbucket.org/​amidevous/​fedora-rpm/​raw/​master/​pbuilder/​debian/​pbuilderrc"​ -O /​etc/​pbuilderrc 
 +   sudo wget "​https://​bitbucket.org/​amidevous/​fedora-rpm/​raw/​master/​pbuilder/​debian/​pbuilder-ubuntu-old2"​ -O /​usr/​bin/​pbuilder-$1 
 +   chmod +x /​usr/​bin/​pbuilder-$1 
 +   sudo pbuilder-$1 create 
 +
 +debianori () { 
 +   sudo wget "​https://​bitbucket.org/​amidevous/​fedora-rpm/​raw/​master/​pbuilder/​debian/​pbuilderrc"​ -O /​etc/​pbuilderrc 
 +   sudo wget "​https://​bitbucket.org/​amidevous/​fedora-rpm/​raw/​master/​pbuilder/​debian/​pbuilder-debian-stable"​ -O /​usr/​bin/​pbuilder-$1 
 +   chmod +x /​usr/​bin/​pbuilder-$1 
 +   sudo pbuilder-$1 create 
 +
 +# Ubuntu 24.04 The Noble Numbat (le Noble numbat) support Avril 2029 
 +sudo rm -f /​usr/​share/​debootstrap/​scripts/​noble 
 +sudo cp /​usr/​share/​debootstrap/​scripts/​jammy /​usr/​share/​debootstrap/​scripts/​noble 
 +ubuntuori noble 
 +#Ubuntu 23.10 The Mantic Minotaur (le Minotaure mantique) support Juillet 2024 
 +sudo rm -f /​usr/​share/​debootstrap/​scripts/​mantic 
 +sudo cp /​usr/​share/​debootstrap/​scripts/​jammy /​usr/​share/​debootstrap/​scripts/​mantic 
 +#ubuntuori mantic 
 +#Ubuntu 23.04 The Lunar Lobster (le Homard lunaire) support Janvier 2024 
 +sudo rm -f /​usr/​share/​debootstrap/​scripts/​lunar 
 +sudo cp /​usr/​share/​debootstrap/​scripts/​jammy /​usr/​share/​debootstrap/​scripts/​lunar 
 +#ubuntuori lunar 
 +#Ubuntu 22.10 The Kinetic Kudu (le Koudou cinétique) support 20 Juillet 2023  
 +sudo rm -f /​usr/​share/​debootstrap/​scripts/​kinetic 
 +sudo cp /​usr/​share/​debootstrap/​scripts/​jammy /​usr/​share/​debootstrap/​scripts/​kinetic 
 +#ubuntuarc kinetic 
 +#Ubuntu 22.04 LTS The Jammy Jellyfish (la méduse chanceuse) support Avril 2027 
 +ubuntuori jammy 
 +#Ubuntu 21.10 The Impish Indri (indri espiègle) 
 +#ubuntuarc impish 
 +#Ubuntu 21.04 The Hirsute Hippo (l'​hippopotame hirsute) 
 +#ubuntuarc hirsute 
 +#Ubuntu 20.10 The Groovy Gorilla (le gorille sensationnel)  
 +#ubuntuarc groovy 
 +#Ubuntu 20.04 LTS The Focal Fossa (le fossa focal) 
 +ubuntuori focal 
 +#Ubuntu 19.10 The Eoan Ermine (l'​ermine de l'​aube) 
 +#ubuntuarc eoan 
 +#Ubuntu 19.04 The Disco Dingo (le dingo disco) 
 +#ubuntuarc disco 
 +#Ubuntu 18.10 The Cosmic Cuttlefish (la seiche cosmique) 
 +#ubuntuarc cosmic 
 +#Ubuntu 18.04 LTS The Bionic Beaver (le castor bionique)  
 +#ubuntuori bionic 
 +#Ubuntu 17.10 The Artful Aardvark (l'​oryctérope du Cap astucieux ) 
 +#ubuntuarc artful 
 +#Ubuntu 17.04 The Zesty Zapus (le zapus plaisant) 
 +#ubuntuarc zesty 
 +#Ubuntu 16.10 The Yakkety Yak (le yak bavard)  
 +#ubuntuarc yakkety 
 +# Ubuntu 16.04 LTS The Xenial Xerus (le xerus hospitalier)  
 +#ubuntuori xenial 
 +#Ubuntu 15.10 The Wily Werewolf (le loup-garou rusé)  
 +#ubuntuarc wily 
 +#Ubuntu 15.04 The Vivid Vervet (le vervet vif) 
 +#ubuntuarc vivid 
 +#Ubuntu 14.10 The Utopic Unicorn (la licorne utopique) 
 +#ubuntuarc utopic 
 +#Ubuntu 14.04 LTS The Trusty Tahr (le bélier confiant) 
 +#ubuntuori trusty 
 +#Ubuntu 13.10 The Saucy Salamander (la salamandre délurée) 
 +#ubuntuarc saucy 
 +#Ubuntu 13.04 The Raring Ringtail (le bassaris enthousiaste) 
 +#ubuntuarc raring 
 +#Ubuntu 12.10 The Quantal Quetzal (le quetzal quantique)  
 +#ubuntuarc quantal 
 +#Ubuntu 12.04 LTS The Precise Pangolin (le pangolin précis) 
 +#ubuntuarc2 precise 
 +#Ubuntu 11.10 The Oneiric Ocelot (l'​ocelot onirique)  
 +#ubuntuarc2 oneiric 
 +# Debian 12 Bookworm (Rat de bibliothèque) 
 +#debianori bookworm 
 +# Debian 11 Bullseye (Bulle) 
 +#debianori bullseye
 </​code>​ </​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=====+ensuite créer facilement les configuration 
 + 
 +<​code>​sudo pbuilder-config</​code>​
  
-Le manuel ​de l'utilisateur ​de pbuilder: ​http://​www.netfort.gr.jp/​~dancer/​software/​pbuilder-doc/​pbuilder-doc.html+ 
 +Copiez ce fichier dans **/​usr/​local/​bin** en remplaçant //​distribution//​ par le nom de la version d'Ubuntu voulue.\\ 
 +Par exemple pour créer un pbuilder Dapper, vous le nommerez **pbuilder-dapper** : 
 +  sudo cp /​usr/​share/​doc/​pbuilder/​examples/​pbuilder-distribution.sh /​usr/​local/​bin/​pbuilder-dapper 
 + 
 +<note tip> 
 +Ce même script renommé en pbuilder-edgy par exemple, créerai un pbuilder edgy. En effet, le script récupère le nom de distribution que vous avez mis après le tiret dans le nom de fichier. 
 +</​note>​ 
 + 
 +**Répertoire de base des pbuilders** 
 + 
 +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>​ 
 + 
 +Enfin, n'​oubliez pas de rendre votre script exécutable ​: 
 +  sudo chmod +x /​usr/​local/​bin/​pbuilder-dapper 
 + 
 +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]]
  
 ---- ----
-//Cette page est une traduction ​inspirée de https://​wiki.ubuntu.com/​PbuilderHowto ​par [[utilisateurs:​mr_pouit]]//​+inspirée de [[https://​wiki.ubuntu.com/​PbuilderHowto]] 
 + 
 +//​Contributeurs :  ​[[utilisateurs:​mr_pouit]], [[:​utilisateurs:​_Enchained]]//
  • pbuilder.1176327879.txt.gz
  • Dernière modification: Le 18/04/2011, 14:44
  • (modification externe)