[ << ]
[ < ]
[ 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.
|