[ << ]
[ < ]
[ 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 |
# ebuild chemin/vers/ebuild package
# 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
$ man emerge
$ man ebuild
$ man 5 ebuild
|
Vous trouverez aussi plus d'information destinée aux développeurs dans le Manuel du développeur
Gentoo.
[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|