Gentoo Logo
Gentoo Logo Side

[ << ] [ < ] [ Home ] [ > ] [ >> ]


3. Administration et installation de logiciels

Voici les points abordés dans ce chapitre :

3.a. Utilisation de emerge

On installe les programmes avec l'utilitaire emerge.

Les différentes options :

-p : Prétendre (permet de savoir ce qui va être installé, sans le faire)

-v : Donner plus d'informations.

Combiné avec -p, cela affiche les USE flags

-C : Désinstaller un logiciel

-u : Mettre à jour

-s : Cherche un package selon la valeur spécifiée (expression régulière)

-D : Deep (Utilisé avec le package virtuel world pour tout mettre à jour)

-N : newuse (Utilisé si on a changé un Use et qu'on veut recompiler).

Pour savoir ce qui va être installé (quelle version du logiciel et quelles dépendances) et quels USE flags vont être utilisés :

Code listing 1: Exemple d'utilisation de emerge

# emerge -pv nom_du_logiciel

Installer/recompiler ou mettre à jour un logiciel

Code listing 2: Exemple d'utilisation de emerge

# emerge nom_du_logiciel

Désinstaller un logiciel

Code listing 3: Exemple d'utilisation de emerge

# emerge -C nom_du_logiciel

Afficher la journalisation des derniers changements de ce package

Code listing 4: Exemple d'utilisation de emerge

# emerge -pl nom_du_logiciel

Chercher un package selon son nom et affiche des informations utiles

Code listing 5: Exemple d'utilisation de emerge

# emerge -s nom_du_logiciel

Chercher un package à partir de la description (très long)

Code listing 6: Exemple d'utilisation de emerge

# emerge --searchdesc nom_du_logiciel

Pour télécharger les sources d'un logiciel dans /usr/portage/distfiles

Code listing 7: Exemple d'utilisation de emerge

# emerge --fetchonly nom_du_logiciel

Pour passer un paramètre USE lors d'une installation.

Code listing 8: Exemple d'utilisation de emerge

# USE="-java" emerge mozilla

Cela va installer mozilla sans le support java.

Attention: Il est très dangereux d'utiliser cette technique, car il faut alors spécifier les options voulues à chaque fois. Ce n'est pas conseillé pour ajouter ou enlever des fonctionnalitées à des applications spécifiques. Voir la section sur l'installation avancée pour plus de détails.

Installation d'une version particulière d'un logiciel:

Code listing 9: Exemple d'utilisation de emerge

 # emerge = gentoo-sources-2.6.10 
 # emerge <= gentoo-sources-2.6.10 
 # emerge >= gentoo-sources-2.6.10 

3.b. Utilisation de gentoolkit

gentoolkit contient des utilitaires qui permet d'avoir des informations sur les packages qui ne sont pas fournies par emerge.

Code listing 10: Installation de Gentoolkit

# emerge gentoolkit

Code listing 11: Permet de retrouver le ebuild qui a installé le fichier sélectionné

# equery belongs  path_avec_exécutable

Code listing 12: Sert à vérifer le md5 du package

# equery check nom_du_ebuild

Code listing 13: Sert à savoir les packages qui dépendent du ebuild recherché

# equery depends nom_du_ebuild

Note: Cette fonction est très pratique lorsqu'on veut se débarrasser d'une ancienne librairie et que portage veut toujours la réinstaller lors de la mise à jour du système.

Code listing 14: Affiche un arbre de dépendance

# equery depgraph nom_du_ebuild

Code listing 15: Liste les fichiers qui appartiennent au ebuild

# equery files nom_du_ebuild

Code listing 16: Affiche tous les packages qui utilisent ce Use Flag

# equery hasuse nom_du_Use_Flag

Code listing 17: Affiche la taille occupée sur le HDD

# equery size nom_du_ebuild

Code listing 18: Affiche les Use Flag que le ebuild peut utiliser

# equery uses nom_du_ebuild

Code listing 19: Donne le path du ebuild en question

# equery which nom_du_ebuild

3.c. Mise à jour du système

On mets à jour la liste des logiciels avec la commande emerge --sync

Code listing 20: Exemple d'utilisation de la commande emerge

# emerge --sync

Mettre à jour l'ordinateur au complet (mode simulation)

Code listing 21: Exemple d'utilisation de la commande emerge

# emerge -puD world -v

Et par la suite

Code listing 22: Exemple d'utilisation de la commande emerge

# emerge -uD world -v

Désinstaller les librairies non utilisées

Code listing 23: Exemple d'utilisation de la commande emerge

# emerge clean -p

Vérifier les librairies qui seront supprimées et ensuite :

Code listing 24: Exemple d'utilisation de la commande emerge

# emerge clean 

Désinstaller les librairies et packages non utilisés :

Code listing 25: Exemple d'utilisation de la commande emerge

# emerge depclean -p

Vérifier (et revérifier) les packages qui seront supprimés et ensuite

Code listing 26: Exemple d'utilisation de la commande emerge

# emerge depclean

Attention: Depclean va effacer beaucoup de programmes...et souvent plusieurs programmes qui sont utilisés couramment, alors on doit savoir ce qu'on fait.

Mettre à jour l'ordinateur au complet en mettant aussi à jour les programmes qui doivent être recompilés parce que des USE flags ont été modifiés.

Code listing 27: Exemple d'utilisation de la commande emerge

# emerge -puD world --newuse -v

Recette de tous les jours

Code listing 28: Procédure pour mettre le système à jour au complet

# emerge --sync
# emerge -puDNv  world
# emerge -uDNv world 
# emerge depclean -p
# emerge depclean
# revdep-rebuild -p
# revdep-rebuild
# dispatch-conf

Note: revdep-rebuild recompile les programmes dont les dépendances sont brisées

Note: dispatch-conf pour mettre à jour les config files si Portage l'a mentionné. On peut aussi utiliser etc-update.

Attention: Si dispatch-conf se plain, créer le répertoire suivant la première fois

Code listing 29: Commande à exécuter pour corriger le problème

# mkdir /etc/config-archive
# nano -w /etc/dispatch-conf.conf

Enlever le commentaire à la ligne suivante :
log-file=/var/log/dispatch-conf.log

Code listing 30: La recette au long

# emerge --sync
# emerge --pretend --verbose --update --deep --newuse world
# emerge --update --deep --newuse world
# emerge --pretend depclean
# emerge depclean
# revdep-rebuild
# dispatch-conf
(pour mettre à jour les config files si Portage l'a mentionné.)

3.d. Installation de packages non stables

Lorsqu'on veut installer un package et que la seule version disponible n'est pas stable, portage va refuser d'installer le logiciel. À partir de ce moment, il y a plusieurs solutions disponibles.

Quand un package est non stable, il va avoir la mention "Masked by : ~type_machine keyword" où type_machine peut être x86, x86_64, sparc, ppc,etc...

Il y a deux niveaux de stabilité avec gentoo. Le premier veut dire que le package est considéré comme stable par la plupart du monde (le créateur du logiciel, plusieurs personnes / autres distributions), mais qu'il n'a pas été suffisamment testé avec gentoo pour être considéré stable. Un tel package est masqué avec ~x86 directement dans le fichier ebuild du programme.

Pour l'installer quand même, il faut faire

Code listing 31: Exemple d'installation d'un package unstable

# ACCEPT_KEYWORDS="~type_machine" emerge nom_programme

Attention: Le désavantage avec cette technique, c'est qu'à chaque fois qu'on veut installer le programme, il faut spécifier le keyword. Pour que ca soit fait automatiquement, il faut ajouter le package dans le fichier /etc/portage/package.keywords

Code listing 32: Ajouter un package instable dans le fichier keywords

# echo "sys-dev/gcc ~type_machine >> /etc/portage/package.keywords"

Par la suite, la dernière version va être installée.Le deuxième type de masquage est utilisé pour un programme qui est considéré beta par le créateur ou qui vient seulement de sortir et qui n'a pas été testé par beaucoup de monde et/ou distributions.Un tel package est ajouté dans ce fichier /usr/portage/profiles/packages.mask

Note: Il est impossible d'installer un tel package avec ACCEPT_KEYWORDS. Pour installer ce package, il faut l'ajouter dans /etc/portage/package.unmask.

Code listing 33: Exemple d'utilisation de package.unmask

# cat packages.mask | grep kde-base/kdelibs >> /etc/portage/package.unmask

Ensuite, on peut l'installer avec

Code listing 34: Exemple d'utilisation de emerge

# ACCEPT_KEYWORDS="~type_machine" emerge kdelibs

Il est aussi possible de créer la variable ACCEPT_KEYWORDS dans /etc/make.conf, mais c'est assez dangereux, car toutes les versions non-stables des logiciels vont être installés lors de la prochaine mise à jour complète du système.

Sur le site de gentoo, il y a un lien vers le Online package database qui permet de savoir quels packages sont stables et sur quelles architectures. Les packages masqués de type 1 ont une indication ~ et les packages de type 2 ont une indication M~ ou M+.

Installation avancée de packages

Le fichier /etc/make.defaults contient les Use Flags que les concepteurs de Gentoo pensent que tout le monde va avoir de besoin dans la vie courante. Il y a en beaucoup et certains ne servent pas à tout le monde non plus. Si un USE flag n'a pas été configuré explicitement dans le fichier /etc/make.conf, la valeur par défaut est utilisée.

Certains USE flags sont partagés entre plusieurs programmes alors que d'autres sont utilisés seulement pas un programme en particulier. Pour voir la liste des USE flags spécifiques, il faut afficher le contenu du fichier /usr/portage/profile/use.local.desc.

Certains USE flags comme java sont utilisés par beaucoup de packages. Une personne peut vouloir le support de java dans son navigateur (mozilla firefox, par exemple), mais je veut pas qu'il soit utilisé par les autres logiciels pour des raisons de rapidité et d'espace disque. La marche à suivre est d'enlever java dans /etc/make.conf (USE="-java ...") et d'activer le support java pour les applications spécifiques. Pour ce faire, il faut ajouter les programmes dans le fichier /etc/portage/package.use.

Code listing 35: Exemple d'utilisation de package.use

# echo "www-client/mozilla-firefox java" >> /etc/portage/package.use

Installation de packages binaires

Certains packages permettent d'installer une version précompilée d'un logiciel. C'est le cas d'openoffice qui peut être compilé ou installé comme un fichier rpm ou deb avec la commande :

Code listing 36: Exemple d'installation d'un package binaire

# emerge openoffice-bin

Packages virtuels : Certains packages sont dits virtuels. Cela veut dire qu'ils offrent une fonctionnalité quelconque qui peut être fournie par plusieurs packages différents. Par exemple, un package peut fournir "opengl". Deux packages ne peuvent pas supporter la même fonctionnalité et être installés sur le système en même temps. Par exemple, libflash et gplflash ne peuvent pas être installés en même temps. Si on tente d'installer gplflash alors que libflash est déjà installé, alors portage va afficher un message ressemblant à

Code listing 37: Exemple d'erreur

!!! Error: the gnome-base/bonobo-activation package conflicts with another
package.
!!!        both can't be installed on the same system together.
!!!        Please use 'emerge --pretend' to determine blockers.

Les slots : Certaines librairies / programmes sont incompatibles entre deux versions. Ce n'est pas grave comme des programmes comme mozilla-firefox, mais ca l'est pour des librairies comme glib. La version 1.0 de glib est incompatible avec la version 2.0. Normalement, il n'y a pas de problèmes, mais certains programmes prennent un temps assez énorme avant d'être mis à jour, ce qui fait qu'il faut souvent avoir deux versions d'une même librairie pour supporter certaines applications. On peut voir qu'un package est installé ou va être installé en tant que slot si emerge -p affiche quelque chose qui ressemble à : [ NS ]

3.e. Utilisation des services (daemons)

Les scripts permettant de lancer les services se trouvent dans le répertoire /etc/init.d. Les fichiers de configuration utilisés par les services se trouvent dans le répertoire /etc/conf.d.

Code listing 38: Pour démarrer, arrêter ou relancer un service

# /etc/init.d/nom du service start
# /etc/init.d/nom du service pause
# /etc/init.d/nom du service stop

Code listing 39: Pour savoir le status d'un service

# /etc/init.d/<nom du service> status

Si on sait qu'un service est arrêté, mais la commande status indique qu'il roule encore, alors on doit le réinitialiser son statut

Code listing 40: Réinitialisation du service d'un statut

# /etc/init.d/<nom du service> zap

3.f. Configuration du démarrage du système

Procédure de démarrage du noyau

Le bootloader charge l'image du kernel et il démarre le noyau. Optionnellement, il charge le fichier initrd qui contient des modules qui doivent être chargés immédiatement (sans être obligé d'avoir le support du disque). Ensuite, il lance le process Init. Ensuite le fichier /etc/fstab est exécuté et les scripts placés dans /etc/init.d sont lancés.Quand tous les scripts sont exécutés, les terminaux sont lancés et on arrive à la fenêtre login.

Les scripts lancés dans /etc/init.d sont lancés en premier s'ils ont un lien symbolique dans /etc/runlevels/boot. Ensuite c'est ceux qui ont un lien symbolique dans /etc/runlevels/default

Il y a 3 niveaux d'exécution interne :sysint,shutdown et reboot.

Il y a 4 niveaux d'exécution définie par l'utilisateur :boot, default, nonetwork et single.nonetwork sert quand on ne veut pas de connexion réseau. Single est utilisé pour résourdre un problème.

Le programme rc-update permet d'ajouter ou d'enlever un service avec un niveau d'exécution dans la séquence de démarrage :

Code listing 41: Exemple d'utilisation de rc-update

# rc-update del  nom du service default
# rc-update add nom du service default
# rc-update show

3.g. Configuration des variables d'environnement

Les variables d'environnements sont définies dans /etc/env.d

Le script env-update permet de créer et/ou de mettre à jour les variables d'environnement.

Code listing 42: Mettre à jour son environnement

# env-update && source /etc/profile

PATH : Cette variable contient la liste des répertoires séparés par des : dans lesquels le systême cherche des fichiers exécutables.


[ << ] [ < ] [ Home ] [ > ] [ >> ]


The contents of this document are licensed under the Creative Commons - Attribution / Share Alike license.
line
Imprimer
line
Dernière mise-à-jour le 2007-12-03
Version : 0.96
line
Sylvain Alain
Auteur Principal

Mathieu Bouchard
Co-Auteur

Éric Langlois
Co-Auteur

Aldric Giacomoni
Conseiller Technique

Laurent Duchenes
Conseiller Technique

Heinrich Nirschl
Conseiller Technique

André Boily
Testeur de la Documentation

Steeve Maltais
Testeur de la Documentation

Sven Vermeulen
Documentation Officielle

Xavier Neys
Traduction Officielle

Camille Huot
Traduction Officielle

line
Résumé  Ce chapitre décrit l'administration et l'installation de logiciels.
line
Copyright 2005-2006 Gentoo Quebec. Questions, commentaires, corrections? Courriel support@gentoo-quebec.org.