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 11/04/2007, 23:47]
_Enchained ajout des tags
pbuilder [Le 12/02/2024, 15:20] (Version actuelle)
89.86.155.3
Ligne 1: Ligne 1:
-{{tag>feisty edgy dapper breezy hoary warty paquet}}+{{tag>Xenial ​paquet}}
  
-=====Versions concernées=====+----
  
-  * Ubuntu 4.10 "Warty Warthog"​ +====== P-Builder, ou comment bien construire des paquets ======
-  * 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"+
  
-=====Introduction=====+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 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 ​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 ​pbuilder, 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 126: 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 142: 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.1176328036.txt.gz
  • Dernière modification: Le 18/04/2011, 14:40
  • (modification externe)