Gentoo Logo

[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


6. Le programme ebuild

Table des matières :

6.a. Les commandes emerge et ebuild

Le programme ebuild est une interface de plus bas niveau avec le système Portage. Vous pouvez l'utiliser pour exécuter des actions spécifiques pour un ebuild donné. Par exemple, vous pouvez installer un paquet en réalisant les étapes une à la fois.

Le programme ebuild est surtout destiné aux développeurs. Par conséquent, vous trouverez tous les détails à son sujet dans le Manuel du développeur Gentoo. Cependant, il est utile d'expliquer les étapes par lesquelles passe Portage quand il installe un paquet et comment lancer les étapes d'après-installation que certains ebuilds proposent.

6.b. Installer des paquets manuellement

Télécharger et & valider les sources

À chaque fois que vous lancez le programme ebuild pour un ebuild, il vérifie que les sommes de validation de tous le fichiers correspondent à celles qui se trouvent dans le fichier Manifest ou files/digest-<nom>-<version>. Cela se passe après avoir téléchargé les sources.

Pour télécharger les sources avec ebuild, utilisez la commande suivante :

Exemple de code 1 : Télécharger les sources

# ebuild chemin/vers/ebuild fetch

Si la somme de validation md5 ne correspond pas à celle qui figure dans le fichier Manifest ou que celle d'un des fichiers téléchargés ne correspond pas à celle qui figure dans le fichier files/digest-<paquet>, un message d'erreur semblable au suivant sera affiché :

Exemple de code 2 : Mauvaise somme de validation d'un ebuild

!!! File is corrupt or incomplete. (Digests do not match)
>>> our recorded digest: db20421ce35e8e54346e3ef19e60e4ee
>>>  your file's digest: f10392b7c0b2bbc463ad09642606a7d6

La ligne qui suit ce message donne le nom du fichier qui pose problème.

Si vous êtes certain que les fichiers téléchargés sont corrects et que l'ebuild l'est aussi, vous pouvez générer les fichiers Manifest et digest-<paquet> avec le programme ebuild :

Exemple de code 3 : Générer les fichiers Manifest et digest

# ebuild chemin/vers/ebuild digest

Décompresser les sources

Pour décompresser les sources dans /var/tmp/portage (ou dans le répertoire de votre choix si vous en avez spécifié un autre dans /etc/make.conf), utilisez la commande suivante :

Exemple de code 4 : Décompresser les sources

# ebuild chemin/vers/ebuild unpack

Cela exécutera la fonction src_unpack() de l'ebuild ou, simplement, décompressera les sources si la fonction n'est pas définie. C'est aussi lors de cette étape que les correctifs sont appliqués aux sources.

Compiler les sources

L'étape suivante dans le processus d'installation est la compilation des sources. Lors de cette étape, la fonction src_compile() de l'ebuild est exécutée. Cela inclut l'étape de configuration du paquet (le célèbre ./configure).

Exemple de code 5 : Compiler les sources

# ebuild chemin/vers/ebuild compile

Si vous voulez modifier la manière de compiler, vous devez modifier le fonction src_compile() dans l'ebuild, mais vous pouvez aussi faire croire à Portage que la compilation a été réalisée en créant le fichier .compiled dans le répertoire de travail. Si vous utilisez ce truc, vous pouvez compiler l'application manuellement.

Exemple de code 6 : Indique à Portage que la compilation a eu lieu

# touch .compiled

Installer le paquet dans un répertoire temporaire

Après avoir compilé le paquet, Portage installe tous les fichiers dans un répertoire temporaire avant de les intégrer à votre système. À la fin de cette étape, ce répertoire contient tous les fichiers qui vont être copiés dans votre système. Lors de cette étape, la fonction src_install() de l'ebuild est exécutée. Vous pouvez l'exécuter vous-même avec la commande suivante :

Exemple de code 7 : Installer les fichiers

# ebuild chemin/vers/ebuild install

Intégrer les fichiers d'un paquet au système

L'étape finale consiste à intégrer tous les fichiers copiés dans le répertoire temporaire vers les répertoires du système et à les enregistrer dans la base de données de Portage. Le programme ebuild appelle cette étape « qmerge ». Elle peut être décomposée en plusieurs parties :

  • Exécuter la fonction pkg_preinst() si elle a été définie.
  • Copier les fichiers dans le système.
  • Enregistrer la liste des fichiers copiés dans la base de données de Portage.
  • Exécuter la fonction pkg_postinst() si elle a été définie.

Pour réaliser cette étape, lancez la commande suivante :

Exemple de code 8 : Intégrer les fichiers au système

# ebuild chemin/vers/ebuild qmerge

Faire le ménage dans le répertoire temporaire

Finalement, vous pouvez supprimer les fichiers du répertoire temporaire avec la commande suivante :

Exemple de code 9 : Faire le ménage dans le répertoire temporaire

# ebuild chemin/vers/ebuild clean

6.c. Fonctionnalités supplémentaires

Exécuter toutes les étapes d'installation en une fois

Vous pouvez réaliser toutes les étapes (téléchargement, décompression, compilation, installation, intégration) en une seule commande :

Exemple de code 10 : Installer un paquet

# ebuild chemin/vers/ebuild merge

Configurer un paquet

Certaines applications contiennent des instructions qui permettent de configurer un paquet plus en détail. Ces instructions peuvent être interactives et ne sont donc pas exécutées automatiquement. Pour les exécuter, utilisez la commande suivante qui utilise la fonction config() de l'ebuild :

Exemple de code 11 : Configurer un paquet

# ebuild chemin/vers/ebuild config

Construire un paquet (RPM)

Portage peut aussi créer des paquets binaires, même au format RPM si vous le souhaitez. Les options package et rpm permettent de créer des paquets binaires. Les différences entre les deux sont :

  • package est très similaire à la fonction merge. Elle télécharge, décompresse, compile et installe avant de créer le paquet ;
  • rpm contruit le paquet RPM après avoir avoir installé le paquet.

Exemple de code 12 : Créer des paquets binaires

(Pour créer un paquet utilisable par Portage)
# ebuild chemin/vers/ebuild package

(Pour créer un paquet RPM)
# ebuild chemin/vers/ebuild rpm

Les paquets RPM ne contiennent pas les informations relatives aux dépendances.

6.d. Plus d'information

Veuillez consulter les pages man suivantes pour en savoir plus à propos de Portage, du programme ebuild et des ebuilds :

Exemple de code 13 : Les pages man

$ man portage    (Portage lui-même)
$ man emerge     (La commande emerge)
$ man ebuild     (Le programme ebuild)
$ man 5 ebuild   (La syntaxe d'un ebuild)

Vous trouverez aussi plus d'information destinée aux développeurs dans le Manuel du développeur Gentoo.


[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


Imprimer

Dernière mise à jour le 2 juin 2007

Sven Vermeulen
Auteur

Grant Goodyear
Auteur

Roy Marples
Auteur

Daniel Robbins
Auteur

Chris Houser
Auteur

Jerry Alexandratos
Auteur

Seemant Kulleen
Développeur Gentoo x86

Tavis Ormandy
Développeur Gentoo Alpha

Jason Huebel
Développeur Gentoo AMD64

Guy Martin
Développeur Gentoo HPPA

Pieter Van den Abeele
Développeur Gentoo PPC

Joe Kallar
Développeur Gentoo SPARC

John P. Davis
Correcteur

Pierre-Henri Jondot
Correcteur

Eric Stockbridge
Correcteur

Rajiv Manglani
Correcteur

Jungmin Seo
Correcteur

Stoyan Zhekov
Correcteur

Jared Hudson
Correcteur

Colin Morey
Correcteur

Jorge Paulo
Correcteur

Carl Anderson
Correcteur

Jon Portnoy
Correcteur

Zack Gilburd
Correcteur

Jack Morgan
Correcteur

Benny Chuang
Correcteur

Erwin
Correcteur

Joshua Kinard
Correcteur

Tobias Scherbaum
Correcteur

Joshua Saddler
Correcteur

Gerald J. Normandin Jr.
Relecteur

Donnie Berkholz
Relecteur

Ken Nowack
Relecteur

Lars Weiler
Contributeur

Xavier Neys
Correcteur, traducteur

Camille Huot
Traducteur

Benjamin Girault
Traducteur

Olivier Fisette
Traducteur

Olivier Roomans
Traducteur

Vincent Strubel
Traducteur

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

php|architect

php|architect

Copyright 2001-2007 Gentoo Foundation, Inc. Questions, Comments? Contact us.