Avertissement :
Ce manuel a été remplacé par une version plus récente et n'est plus maintenu.
|
Le manuel Gentoo Linux/x86
Table des matières :
-
Installer Gentoo
Cette partie explique comment installer Gentoo sur votre machine.
-
À propos de l'installation de Gentoo
Les utilisateurs qui découvrent Gentoo doivent savoir que Gentoo est avant tout
une question de choix.
-
Choisir le bon support d'installation
Vous pouvez installer Gentoo de plusieurs façons. Ce chapitre décrit
l'installation à partir d'un LiveCD Gentoo.
-
Configurer votre connexion réseau
Si vous installez Gentoo en utilisant une connexion Internet, vous devez la
configurer.
-
Préparer les disques
Pour installer Gentoo, vous devez créer les partitions requises. Ce chapitre
décrit comment préparer vos disques durs.
-
Installer les fichiers d'installation de Gentoo
L'installation de Gentoo se base sur différentes étapes (les
« stages »). Ce chapitre décrit comment extraire l'archive d'une
étape et comment configurer Portage.
-
Installer le système de base de Gentoo
Indépendamment de l'étape à partir de laquelle vous démarrez l'installation, le
résultat final sera un système de base Gentoo. Ce chapitre explique comment
arriver à ce résultat.
-
Configurer le noyau
Le noyau Linux est au cœur de toutes les distributions. Ce chapitre explique
comment le configurer.
-
Configurer le système
Vous devrez modifier certains fichiers de configuration. Ce chapitre vous donne
un aperçu de ces fichiers et décrit comment procéder.
-
Installer les outils système
Encore une fois, Gentoo est avant tout une question de choix. Ce chapitre vous
aide à choisir et à installer quelques outils importants.
-
Configurer le chargeur de démarrage
Plusieurs chargeurs sont disponibles. Chaque chargeur est configuré
différemment. Ce chapitre explique les différents choix qui s'offrent à vous et
décrit comment configurer le chargeur que vous aurez sélectionné.
-
Finaliser votre installation
Vous avez presque fini. Il ne vous reste plus qu'à définir un ou plusieurs
utilisateurs pour votre système et éventuellement installer des paquets.
-
Et que faire ensuite ?
Votre système Gentoo est maintenant installé. Que faire ensuite ?
-
Utiliser Gentoo
Apprenez maintenant à utiliser Gentoo : comment installer un logiciel,
modifier des variables, changer le comportement de Portage, etc.
-
Introduction à Portage
Portage sert à maintenir votre système à jour. Ce chapitre décrit les fonctions
élémentaires de Portage.
-
La variable USE
Les options de la variable USE sont très importantes dans Gentoo. Ce chapitre
décrit comment les utiliser et explique en quoi elles influencent votre
système.
-
Portage et ses fonctionnalités
Ce chapitre décrit les différentes fonctionnalités qui permettent d'améliorer
l'utilisation de Portage et notamment comment réduire les temps de compilation.
-
Les scripts d'initialisation
Gentoo utilise un format particulier pour ses scripts d'initialisation qui,
entre autres, permet de gérer les dépendances et les fonctionnalités
virtuelles. Ce chapitre décrit ces possibilités et comment utiliser ces
scripts.
-
Variables d'environnement
Il est très facile de définir des variables d'environnement dans Gentoo. Ce
chapitre explique comment faire et liste quelques variables très utilisées.
-
Utiliser Portage
Cette partie décrit en profondeur Portage, l'outil de gestion des paquets
logiciels de Gentoo.
-
Fichiers et répertoires
Pour maîtriser Portage, il est important de connaître les fichiers et
répertoires utilisés par Portage.
-
Les variables de configuration
Portage est très configurable grâce à de nombreuses variables que vous pouvez
définir dans votre environnement ou dans des fichiers de configuration.
-
Faire cohabiter des branches différentes
Les logiciels fournis par Gentoo peuvent être répartis dans des branches
différentes en fonction de leur stabilité et de l'architecture utilisée. Ce
chapitre décrit comment configurer ces branches et vous explique comment
utiliser une branche alternative seulement pour certains logiciels.
-
Outils supplémentaires
Portage fournit quelques utilitaires supplémentaires qui vous aident à gérer
votre système. Ce chapitre décrit l'utilisation de dispatch-conf et d'autres
outils.
-
Diverger de l'arbre officiel
Ce chapitre vous donne quelques trucs et astuces pour utiliser votre propre
arbre Portage, pour ne synchroniser que les catégories de votre choix, pour
injecter des paquets, etc.
-
Le programme ebuild
Ce chapitre décrit les étapes par lesquelles passe Portage quand il installe un
paquet. Vous pouvez utiliser l'application ebuild vous-même si vous le
souhaitez.
A. Installer Gentoo
1. À propos de l'installation de Gentoo
1.a. Introduction
Bienvenue !
Tout d'abord, bienvenue chez Gentoo. Vous êtes sur le point de découvrir
un monde riche de choix et de performances. Gentoo est avant tout une question
de choix. Pendant l'installation, cela sera mis en évidence à plusieurs
reprises. Vous pourrez choisir la proportion du système de base que
vous voulez compiler vous-même, comment installer Gentoo, quel système
de journalisation des événements (syslog) vous désirez, etc.
Gentoo est une métadistribution moderne, rapide et conçue de façon
propre et flexible autour de logiciels libres. Rien n'est caché.
Portage, le système de gestion des paquets utilisé par Gentoo, a été
écrit en Python, ce qui signifie que vous pouvez facilement consulter
et modifier le code source. Portage utilise le code source des paquets
qu'il installe bien qu'un support pour des paquets précompilés soit
également présent. De plus, Gentoo se configure avec de simples
fichiers texte. Autrement dit, l'ouverture règne.
Il est primordial que vous compreniez que Gentoo est avant tout une question
de choix. Nous ne vous imposons jamais un choix que vous ne voudriez pas
faire. Si vous considérez que c'est le cas, faites-le nous savoir via un
rapport de bogue.
Comment l'installation est-elle structurée ?
L'installation de Gentoo se déroule en dix étapes couvertes
par les chapitre 2 à 11. Après chaque étape, votre système
sera dans un état bien défini :
-
Après l'étape 1, votre environnement est prêt pour installer Gentoo.
-
Après l'étape 2, votre connexion Internet est opérationnelle
(cette étape est facultative dans certains cas).
-
Après l'étape 3, vos disques durs sont initialisés pour recevoir Gentoo.
-
Après l'étape 4, votre environnement est prêt pour l'installation et vous
êtes prêt à vous placer à la racine de ce qui sera votre nouveau système
(le chroot pour les spécialistes).
-
Après l'étape 5, les paquets de base identiques sur toutes les
installations de Gentoo sont installés.
-
Après l'étape 6, votre noyau Linux est compilé.
-
Après l'étape 7, la plupart de vos fichiers de configuration système
sont créés.
-
Après l'étape 8, les outils système indispensables (à choisir parmi
ceux proposés dans une belle liste) sont installés.
-
Après l'étape 9, le chargeur de démarrage (le « bootloader ») est
installé et configuré et vous êtes connecté sur votre nouveau système Gentoo.
-
Après l'étape 10, votre environnement Gentoo Linux est prêt à être utilisé.
Lorsque vous devez faire un choix entre plusieurs options, nous nous efforçons
de vous expliquer les avantages et les inconvénients de chacune et nous
continuons ensuite avec une option par défaut. Les choix par défaut sont
identifiés par le texte « Défaut ». Les autres possibilités sont
identifiées par le texte « Alternative : ». Ne croyez pas que
les choix par défaut représentent des recommandations ; ils indiquent
plutôt les choix que, selon nous, la plupart des utilisateurs feront.
Parfois, vous pourrez réaliser une étape facultative. De telles étapes
sont identifiées par le texte « Facultatif » et ne sont pas
essentielles pour installer Gentoo. Cependant, certaines options dépendent de
choix que vous aurez fait plus tôt. Dans ce cas, nous vous en informerons au
moment de faire votre choix et au début de la description de l'étape.
Quelles sont les possibilités ?
Vous pouvez installer Gentoo de différentes façons. Vous pouvez télécharger un
de nos LiveCD (CD d'installation), vous pouvez partir d'une autre distribution
précédemment installée ou d'une distribution sur un CD amorçable comme Knoppix.
Vous pouvez aussi démarrer via une autre machine de votre réseau ou à partir
d'une disquette de démarrage. Ce manuel couvre l'installation à partir d'un
LiveCD Gentoo ou, dans certains cas, à partir d'une autre machine de votre
réseau. D'autres méthodes d'installation sont abordées dans notre guide des méthodes d'installation
alternatives. Vous pourriez aussi trouver notre guide des trucs et astuces pour
x86 utile. Si vous trouvez que notre manuel d'installation est trop
complexe, peut-être devriez-vous essayer un de nos guides d'installation rapide,
si un tel quide existe pour votre architecture. Veuillez consulter la liste des documents.
Vous avez aussi le choix entre plusieurs points de départs :vous pouvez
compiler 100% de votre nouveau système ou installer des logiciels précompilés
pour accélérer la procédure d'installation. Évidemment, il existe d'autres
possibilités entre ces deux extrêmes : vous pouvez, par exemple, partir
d'un système partiellement compilé.
Des problèmes ?
Si vous rencontrez un problème lors de l'installation ou dans la documentation,
veuillez d'abord consulter les notes de dernière minute publiées sur la page d'accueil des responsables (en anglais),
puis vérifier sur notre système de gestion
des bogues si le problème n'est pas déjà connu et, dans le cas contraire,
veuillez créer un rapport de bogue. Ne craignez pas les développeurs auxquels
vos bogues seront attribués, ils n'ont encore mangé personne.
Veuillez noter que ce document contient des références à d'autres architectures
bien que ce manuel soit destiné à celle sur laquelle vous allez installer
Gentoo. Cela est dû au fait que les différents manuels ont de nombreuses
sections communes à toutes les architectures pour éviter le gaspillage de
ressources. Nous essayons de limiter ces références à d'autres architectures
pour éviter toute confusion.
Si vous avez un doute quant à l'origine d'un problème qui est soit une erreur
que vous avez commise bien que vous ayez soigneusement lu la documentation,
soit une erreur dans Gentoo malgré toute l'attention portée aux tests et à la
documentation, vous êtes le bienvenu sur le canal #gentoo sur irc.freenode.net
pour en discuter. Évidemment, vous y êtes de toute façon toujours le bienvenu :)
Si vous avez une question relative à Gentoo, vous devriez consulter notre foire aux questions et notre centre de documentation.
Vous pouvez aussi consulter la FAQ en anglais dans
les forums. Si vous ne trouvez toujours pas de réponse, rejoignez-nous sur
le canal #gentoo sur irc.freenode.net, vous serez surpris de voir le nombre
de Gentooistes qui y sont actifs :-)
1.b. Un système précompilé ou à compiler ?
Qu'est-ce que la « Gentoo Reference Platform » ?
La « Gentoo Reference Platform » (plate-forme de référence) est un ensemble de
paquets compilés que vous pouvez utiliser pour installer Gentoo plus
rapidement. À partir de maintenant, nous utiliserons l'abréviation GRP. Cet
ensemble de paquets permet une installation du système de base ainsi que des
paquets longs à compiler tels que KDE, xorg-x11, GNOME, OpenOffice, Mozilla,
etc.
Cependant, ces paquets ne sont pas mis à jour au fur et à mesure. Ils
constituent un instantané de Gentoo au moment de la sortie d'une version et
permettent une installation rapide à ce moment. Ensuite, vous devrez mettre
votre système à jour de façon traditionnelle.
Comment Portage gère-t-il GRP ?
L'arbre de Portage (l'ensemble des ebuilds qui décrivent chaque paquet
et contiennent les instructions d'installation) doit être synchronisé avec le
jeu de paquets GRP. Les versions des ebuilds de l'arbre Portage et celles des
paquets précompilés doivent correspondre.
C'est pour cette raison que vous devrez copier un instantané de Portage du
LiveCD sur votre disque dur au lieu de le synchroniser avec la dernière version
disponible.
GRP est-il possible dans mon cas ?
GRP n'est pas disponible sur toutes les architectures. Cela ne signifie pas que
GRP ne pourrait pas fonctionner sur ces architectures, mais simplement que nous
n'avons pas les ressources disponibles pour compiler et tester GRP pour
celles-ci.
À l'heure actuelle, les paquets GRP sont disponibles pour les architectures
suivantes :
-
x86 (x86, i686, pentium3, pentium4, athlon-xp) ;
(Note : Les paquets GRP x86 et i686 (par exemple
packages-x86-2004.2.iso) sont disponibles sur nos miroirs, tandis que les
paquets GRP pour pentium3, pentium4 et athlon-xp ne sont disponibles que sur
Bittorrent.)
-
amd64 ;
-
sparc (sparc32 et sparc 64) ;
-
ppc (G3, G4, G5) ;
-
Alpha (alpha, alphaev5, alphaev56, alphaev6) ;
-
Mips ;
-
hppa.
Si votre architecture n'est pas dans la liste ci-dessus, l'option GRP n'est pas
possible dans votre cas.
Vous devriez maintenant passer au chapitre « Choisir le bon support d'installation ».
2. Choisir le bon support d'installation
2.a. Matériel requis
Introduction
Avant de débuter, nous allons présenter le matériel requis pour installer
Gentoo avec succès sur votre système. Ce matériel varie, bien sûr, selon
l'architecture de l'ordinateur sur lequel vous installez Gentoo Linux.
L'architecture x86
Veuillez vérifier que votre matériel correspond aux spécifications suivantes
avant de procéder à l'installation de Gentoo :
-
Vous devez disposer d'au moins 1 Go d'espace disque libre.
-
Si vous n'utilisez pas de paquets précompilés, vous devez disposer d'au moins
300 Mo de mémoire (RAM + mémoire virtuelle (swap)).
-
Vous devez avoir un processeur 486 ou supérieur, et au moins 64 Mo de
mémoire.
2.b. Faites votre choix
Introduction
Toujours envie d'essayer Gentoo ?
Vous devez maintenant choisir le support à partir duquel vous allez installer
Gentoo. Vous avez le choix entre plusieurs solutions, mais le résultat sera
toujours identique : un système de base Gentoo.
Les méthodes que nous allons décrire sont :
- Gentoo LiveCD minimal
- Gentoo LiveCD universel
Chaque méthode a ses avantages et ses inconvénients. Nous allons analyser le
pour et le contre de chacune afin que vous disposiez de l'information
nécessaire pour prendre une décision éclairée. Avant de continuer, toutefois,
expliquons le processus d'installation en trois « stages ».
Les trois « stages »
Gentoo Linux peut être installé en utilisant une des trois archives tar
(stages). Vous choisirez l'une de ces archives en fonction de la
proportion du système que vous souhaitez compiler vous-même. L'archive tar
stage1 est utilisée pour faire le « bootstrap » et pour construire le
système entier ex nihilo. L'archive tar stage2 est utilisée pour
construire le système à partir d'un état où le « bootstrap » a été réalisé et
où le système est déjà « semi-compilé ». L'archive tar stage3 contient
un système Gentoo Linux de base construit pour vous. Comme nous l'expliquerons
plus loin, vous pouvez aussi installer Gentoo sans compiler quoi que ce soit (à
l'exception du noyau et de quelques paquets facultatifs). Si c'est ce que vous
souhaitez, vous devrez utiliser l'archive tar stage3.
Alors, quelle étape devez-vous choisir ?
Débuter à partir du stage1 vous procure le contrôle total sur les
paramètres d'optimisation et les options de compilation qui sont
activées initialement. Pour cette raison, le stage1 est intéressant pour
les utilisateurs enthousiastes qui savent ce qu'ils font. Il s'agit aussi d'une
méthode d'installation idéale pour ceux qui veulent en savoir plus sur le
fonctionnement interne de Gentoo Linux.
Une installation à partir du stage1 nécessite une connexion à Internet.
| Stage1 |
Le pour et le contre |
| + |
Vous procure le contrôle total sur les paramètres d'optimisation et les
options de compilation qui sont activées initialement.
|
| + |
Indiqué pour les utilisateurs enthousiastes qui savent ce qu'ils font.
|
| + |
Vous permet d'en savoir plus sur le fonctionnement interne de Gentoo
Linux.
|
| - |
Le processus d'installation est très long. |
| - |
Si vous ne souhaitez pas régler les paramètres, c'est probablement une
perte de temps.
|
| - |
Impossible sans connexion à Internet.
|
L'installation à partir du stage2 vous permet d'éviter le processus du
« bootstrap », ce qui est correct si les paramètres d'optimisation que
nous avons choisis pour le stage2 particulier que vous utilisez vous
conviennent.
Une installation à partir du stage2 nécessite une connexion à Internet.
| Stage2 |
Le pour et le contre |
| + |
Vous n'avez pas à réaliser le « bootstrap ». |
| + |
Plus rapide que de démarrer à partir du stage1. |
| + |
Vous pouvez toujours régler vos paramètres. |
| - |
Vous ne pouvez pas faire autant de réglages qu'avec le stage1. |
| - |
Ce n'est pas la méthode la plus rapide pour installer Gentoo. |
| - |
Vous devez accepter les options que nous avons choisies pour le
« bootstrap ».
|
| - |
Impossible sans connexion à Internet.
|
Choisir le stage3 vous procurera l'installation la plus rapide de Gentoo
Linux, mais impliquera aussi que votre système de base aura les optimisations
que nous avons choisies pour vous (qui, en toute honnêteté, sont de bons
paramètres choisis afin d'améliorer les performances tout en maintenant la
stabilité). De plus, partir d'une archive stage3 est nécessaire si vous
désirez installer des paquets précompilés ou installer Gentoo sans connexion
réseau.
| Stage3 |
Le pour et le contre |
| + |
C'est la méthode la plus rapide pour obtenir un système de base Gentoo.
|
| + |
Utilisable pour une installation sans connexion à Internet.
|
| - |
Vous ne pouvez pas régler le système de base car il est déjà construit.
|
| - |
Vous ne pouvez vous vanter d'avoir utilisé le stage1 ou le
stage2 :)
|
Vous apprécierez sans doute de savoir que si vous modifiez vos paramètres
d'optimisation après avoir installé Gentoo, vous pourrez recompiler le système
en entier avec ces nouveaux paramètres.
Choisissez maintenant votre support d'installation.
Gentoo LiveCD
Les Gentoo LiveCD sont des CD-ROM amorçables qui contiennent un
environnement Gentoo autonome. Cela vous permet de démarrer Linux à partir du
CD-ROM. Pendant le chargement, votre matériel est détecté et les pilotes
appropriés sont chargés. Ces CD sont maintenus par les développeurs Gentoo.
Chaque LiveCD vous permet d'amorcer l'ordinateur, de paramétrer le réseau,
d'initialiser les partitions de vos disques et d'installer Gentoo à partir
d'Internet. De plus, certains LiveCD contiennent le code source ou même les
paquets précompilés nécessaires pour installer Gentoo sans connexion réseau.
Que contiennent les LiveCD ?
Gentoo LiveCD minimal
Il s'agit d'un petit CD dont la seule utilité est d'amorcer le système, de
préparer le réseau et d'installer Gentoo. Il ne contient aucun des stages (ou,
dans quelques cas, seulement un stage1), aucun code source et aucun paquet
précompilé. Par exemple, la version pour x86 de ce CD se trouve dans le
sous-répertoire universal et son image s'appelle
install-x86-minimal-2004.2.iso.
| LiveCD minimal |
Le pour et le contre |
| + |
Temps de téléchargement relativement court |
| + |
Convient à une architecture complète |
| + |
Vous pouvez faire une installation de stage1, stage2 ou stage3 en
téléchargeant l'archive tar d'Internet.
|
| - |
Ne contient aucun stage, pas d'instantané de Portage ni de paquets GRP et
n'est donc pas utilisable pour une installation sans réseau.
|
Gentoo LiveCD universel
Le LiveCD universel est amorçable et permet une installation sans connexion
réseau. Il contient une étape stage1, différentes archives stage3 optimisées
pour plusieurs sous-architectures. Par exemple, la version x86 de ce CD
s'appelle install-x86-universal-2004.2.iso et se trouve dans le
sous-répertoire universal.
Si vous regardez dans le sous-répertoire releases/x86/2004.2 sur
notre site, vous trouverez des « Package CD » dans le
sous-répertoire packagecd/. Ces CD qui ne sont pas amorçables
contiennent des paquets précompilés qui peuvent être utilisés pour compléter
une installation de base. Ces CD ne sont pas indispensables pour installer
Gentoo (le CD universel suffit), mais si vous voulez installer KDE, GNOME,
OpenOffice.org, Mozilla, etc. sans les compiler, vous avez besoin d'un CD
« Package CD ». Par exemple, un tel CD pour processeurs i686
(une sous-architecture x86) s'appelle packages-i686-2004.2.iso et
se trouve dans le sous-répertoire correspondant (i686).
Vous n'avez besoin d'un « package CD » que si vous avez l'intention
de faire une installation GRP à partir du stage3.
| CD universel + « package CD » |
Le pour et le contre |
| + |
Le «package CD » est optimisé pour vos architectures et sous-architectures.
|
| + |
Le «package CD » fournit des paquets précompilés pour une installation
rapide de Gentoo.
|
| + |
Contient tout ce dont vous avez besoin. Vous pouvez même procéder à
l'installation sans connexion réseau.
|
| - |
Très long téléchargement |
2.c. Télécharger, graver et amorcer un LiveCD Gentoo
Télécharger et graver les LiveCD
Vous avez choisi d'utiliser un LiveCD Gentoo. Nous débuterons par le
téléchargement puis la gravure du (des) LiveCD que vous avez choisi(s). Nous
avons déjà détaillé les différents CD disponibles, mais où pouvez-vous les
trouver ?
Vous pouvez télécharger un de nos LiveCD (et aussi un PackageCD si vous le
souhaitez) à partir d'un de nos miroirs.
Les LiveCD se trouvent dans le sous-répertoire
releases/x86/2004.2/livecd et les PackageCD sont dans
releases/x86/2004.2/packagecd.
Dans ce répertoire, vous trouverez plusieurs fichiers ISO. Ce sont des images
de CD que vous pouvez utiliser pour graver un CD-R.
Pour vérifier que le fichier téléchargé n'a pas été corrumpu pendant le
transfert, vous devriez vérifier son intégrité en calculant sa somme de
vérification MD5 et en comparant le résultat avec la somme que nous publions
sur notre site, par exemple dans le fichier
install-x86-minimal-2004.2.iso.md5. Vous pouvez utiliser l'outil
md5sum sous Linux ou md5sum sous Windows.
Un autre moyen de vérifier la validité du fichier téléchargé est d'utiliser
GnuPG pour tester la signature électronique que nous fournissons (le fichier
qui se termine en .asc). Téléchargez le fichier avec la signature
et procurez-vous la clé publique :
Exemple de code 3.1 : Obtenir la clé publique |
$ gpg --keyserver pgp.mit.edu --recv-keys 17072058
|
Ensuite, vérifiez la signature :
Exemple de code 3.2 : Vérifier la signature |
$ gpg --verify <fichier_signature> <fichier_iso_téléchargé>
|
Afin de graver le(s) ISO, vous devez utiliser la gravure brute (raw-burning).
La manière de procéder dépend de votre programme. La manière de procéder avec
cdrecord et K3B est décrite ci-dessous. Vous trouverez d'autres
méthodes dans notre FAQ.
-
Avec cdrecord, tapez simplement cdrecord dev=/dev/hdc (remplacez
/dev/hdc par le chemin d'accès du fichier matériel de votre
graveur) suivi du chemin d'accès du fichier ISO :)
-
Avec K3B, sélectionnez Tools > CD > Burn Image.
Dans la zone « Image to Burn », sélectionnez le fichier ISO et
cliquez sur Start.
Démarrer le(s) LiveCD
Important :
Lisez cette section en entier avant de continuer, car vous n'aurez pas toujours
le temps de lire avant d'agir.
|
Une fois que vous avez gravé votre (ou vos) CD d'installation, vous devez
amorcer votre système avec celui-ci (ou un de ceux-ci). Enlevez tous les CD de
vos lecteurs, redémarrez votre système et entrez dans la configuration du BIOS.
Cela se fait habituellement en tapant la touche Suppr, F1 ou Échap, selon le
BIOS. Dans la configuration du BIOS, changez l'ordre de démarrage afin que le
CD-ROM soit testé avant le disque dur. Vous pouvez habituellement accéder à ce
paramètre dans la section CMOS Setup. Si le CD-ROM n'est pas prioritaire pour
l'amorçage, le système va simplement démarrer à partir du disque dur et ignorer
le CD-ROM.
Maintenant, insérez le CD d'installation dans le lecteur de CD-ROM (vous
l'aviez deviné ?) puis redémarrez. Le logo de Gentoo Linux devrait apparaître à
l'écran. Vous pouvez alors taper Entrée pour débuter le processus
d'installation avec les options d'amorçage par défaut. Si vous le souhaitez,
vous pouvez plutôt spécifier des options et un noyau particuliers avant de
taper Entrée.
Spécifier un noyau ? Oui, plusieurs noyaux sont disponibles sur nos
LiveCD. Le noyau par défaut est gentoo. Les autres sont smp qui
active le support pour les machines à plusieurs processeurs et les variantes
-nofb qui désactivent le « framebuffer ».
Il est recommandé que vous sélectionniez les noyaux gentoo ou
gentoo-nofb si vous voulez installer Gentoo Linux avec un noyau 2.4 ou
bien les noyaux smp ou smp-nofb si vous voulez installer Gentoo
Linux avec un noyau 2.6. Sinon, vous pourriez avoir des problèmes de
compatibilité.
Voici un aperçu des différents noyaux disponibles :
| Noyau |
Description |
| gentoo |
Le noyau 2.4 par défaut avec support pour le « framebuffer »
|
| smp |
Un noyau 2.6 qui supporte les machines multiprocesseurs |
| gentoo-nofb |
Identique à gentoo sans le support pour le
« framebuffer » |
| smp-nofb |
Identique à smp sans le support pour le « framebuffer »
|
| memtest86 |
Teste la mémoire de votre ordinateur |
Vous pouvez aussi passer des options au noyau. Ces options
représentent des paramètres qui peuvent être activés/désactivés selon vos choix.
Voyez les différentes options disponibles ci-dessous :
Exemple de code 3.3 : Options disponibles |
- agpgart Charge agpgart. (Utilisez si vous avez des problèmes avec votre
carte graphique.)
- doscsi Recherche des périphériques SCSI. (Plante avec certaines cartes
réseau.)
- nodetect Ne fait aucune détection du matériel.
- dofirewire Charge le module firewire dans initrd (pour des CDROM firewire,
etc.).
- nousb Ne charge pas le module usb dans initrd, désactive hotplug.
- nodhcp N'attribue pas d'IP via dhcp quand une carte réseau est détectée.
- doataraid Charge les modules ide raid dans initrd.
- dopcmcia Active les services pcmcia.
- noapm Ne charge pas le module apm.
- noraid Ne charge pas les modules evms.
- nohotplug N'active pas le service hotplug.
- ide=nodma Désactive le dma pour des disques IDE récalcitrants.
- docache Copie le CD complet en mémoire pour pouvoir éjecter le CDROM et
en insérer un autre.
- dokeymap Active la sélection d'une disposition clavier autre que
l'américaine.
- noapic Désactive apic. (Essayez-la si vous avez des problèmes de
reconnaissance du matériel.)
- hdx=stroke (smp/smp-nofb seulement) Permet de partionner le disque entier
même si le BIOS ne le permet pas.
|
Note :
Certains LiveCD offrent des options d'amorçage supplémentaires ou n'offrent
pas toutes les options listées dans ce document. Pour obtenir une liste des
options disponibles lors de l'amorçage, tapez F2 lorsque vous êtes à l'écran de
démarrage.
|
Maintenant, amorcez votre CD, choisissez un noyau (si vous n'êtes pas
satisfait du noyau gentoo par défaut) et des options de démarrage.
Voici un exemple illustrant comment amorcer le noyau gentoo avec les
options dopcmcia :
Exemple de code 3.4 : Amorcer un LiveCD |
boot: gentoo dopcmcia
|
Vous verrez alors un autre écran de chargement avec une barre de progression.
Lorsque le processus de chargement est terminé, vous serez automatiquement
connecté à Gentoo Linux Live en tant qu'utilisateur root (qui est le
superutilisateur). Vous devriez avoir une invite de commande root (« # ») sur la
console active. Vous pouvez aussi passer aux autres consoles en tapant
Alt+F2, Alt+F3 et Alt+F4. Retournez à la première console en tapant Alt+F1.
Si vous utilisez un clavier différent du clavier qwerty américain, utilisez
l'option dokeymap quand vous démarrez un noyau du CDROM.
Continuez votre lecture avec la section
Configuration du matériel supplémentaire.
Configuration du matériel supplémentaire
Lorsque le LiveCD démarre, il tente de détecter votre matériel et charge les
modules du noyau appropriés pour supporter ce matériel. Dans la plupart des cas
cette auto-détection donne d'excellents résultats. Notez que le LiveCD pour
SPARC ne fait aucune auto-détection. Toutefois, il se peut que les modules du
noyau dont vous avez besoin ne soient pas tous chargés. Si l'auto-détection PCI
a ignoré une partie de votre matériel, vous devrez charger les modules
appropriés manuellement.
Dans l'exemple suivant, nous tentons de charger le module 8139too
(support de certaines interfaces réseau) :
Exemple de code 3.5 : Charger des modules du noyau |
# modprobe 8139too
|
Facultatif : régler les performances des disques durs
Si vous êtes un utilisateur expérimenté, vous souhaitez peut-être régler les
performances des disques durs IDE en utilisant hdparm. Avec les
arguments -tT, vous pouvez tester les performances de vos disques
(exécutez ce test plusieurs fois pour juger plus précisément des résultats).
Exemple de code 3.6 : Tester les performances des disques |
# hdparm -tT /dev/hda
|
Pour régler les performances, vous pouvez copier les exemples suivants (ou
expérimenter) qui utilisent /dev/hda comme disque dur
(substituez par le chemin d'accès à votre disque) :
Exemple de code 3.7 : Régler les performances du disque dur |
# hdparm -d 1 /dev/hda
# hdparm -d 1 -A 1 -m 16 -u 1 -a 64 /dev/hda
|
Facultatif : comptes utilisateurs
Si vous souhaitez permettre à d'autres personnes d'accéder à votre
environnement d'installation ou si vous voulez dialoguer en ligne avec
irssi sans être root pour des raisons de sécurité, vous devez créer les
comptes utilisateurs nécessaires et changer le mot de passe de root.
Pour changer le mot de passe de root, utilisez l'utilitaire passwd :
Exemple de code 3.8 : Changer le mot de passe de root |
# passwd
New password:
Re-enter password:
|
Pour créer un compte utilisateur, on saisit d'abord son nom, puis son mot de
passe. Les programmes useradd et passwd sont utilisés pour ces
tâches. Dans l'exemple suivant, nous créons un utilisateur nommé « john ».
Exemple de code 3.9 : Création d'un compte utilisateur |
# useradd -m -G users john
# passwd john
New password:
Re-enter password:
|
Vous pouvez passer de l'utilisateur root à l'utilisateur que vous venez de
créer avec la commande su :
Exemple de code 3.10 : Devenir john |
# su - john
|
Facultatif : consulter la documentation pendant l'installation
Si vous désirez consulter le Manuel Gentoo, sur le CD ou en ligne, vous devez
avoir configuré un compte utilisateur. Ensuite,
tapez Alt-F2 pour basculer sur un autre terminal et connectez-vous avec
le compte utilisateur que vous avez créé.
Pour lire la documentation qui accompagne le CD, il vous suffit de lancer
links2 :
Exemple de code 3.11 : Consulter la documentation sur le CD |
# links2 /mnt/cdrom/docs/html/index.html
|
Cependant, quand cela est possible, il est préférable de lire le Manuel en
ligne, car il est plus à jour. Vous pouvez utiliser links2, mais
uniquement si vous avez configuré votre accès au réseau.
Exemple de code 3.12 : Consulter la documentation en ligne |
# links2 http://www.gentoo.org/doc/fr/handbook/handbook-x86.xml
|
Vous pouvez revenir à votre terminal initial en tapant Alt-F1.
Facultatif : démarrage du démon SSH
Si vous voulez permettre à d'autres utilisateurs d'accéder à votre ordinateur
pendant le processus d'installation (peut-être que ces utilisateurs vous
aideront à installer Gentoo ou même le feront pour vous), vous devez leur
fournir un compte utilisateur ou le mot de passe de root. (Cette dernière option
n'est envisageable que si vous faites entièrement confiance à cet
utilisateur.)
Pour démarrer le démon SSH, exécutez la commande suivante :
Exemple de code 3.13 : Démarrer le démon SSH |
# /etc/init.d/sshd start
|
Avant de pouvoir utiliser sshd, vous devez Configurer votre connexion réseau.
3. Configurer votre connexion réseau
3.a. Vous pouvez vous en passer, mais...
Qui peut faire sans ?
Selon le média à partir duquel vous avez choisi d'installer Gentoo, vous
pourrez peut-être vous passer du réseau (et plus particulièrement d'Internet).
Dans la majorité des cas, l'installation de Gentoo a besoin du réseau (surtout
d'Internet). Pourtant, dans certains cas, il est possible de faire une
installation sans utiliser de connexion réseau. Cela ne peut se faire qu'en
utilisant les LiveCD universels.
Pourquoi ai-je besoin d'une connexion réseau ?
Une installation de Gentoo par Internet vous offrira un système complètement à
jour. Vous aurez une installation basée sur l'arbre actuel de Portage
qui est l'ensemble des paquets que nous fournissons et les outils qui s'en
occupent. C'est aussi pourquoi une installation par le réseau est préférable.
Cependant, certaines personnes ne peuvent ou ne veulent pas installer Gentoo sur
un système qui a une connexion Internet.
Si c'est votre cas, vous devrez utiliser un LiveCD universel. Un tel CD
contient le code source, l'arbre de Portage et les outils nécessaires pour
installer un système de base Gentoo. Cette méthode a un prix : vous
n'aurez pas les toutes dernières versions, mais les différences seront minimes.
Si vous comptez procéder à une installation sans réseau, vous devez utiliser un
LiveCD universel. Dans ce cas, vous pouvez sauter le reste de ce chapitre et
continuer avec la section Préparer les
disques. Sinon, continuez avec les sections de configuration du réseau
ci-dessous.
Facultatif : configurer un mandataire
Si vous passez par un serveur mandataire (« proxy ») pour atteindre
Internet, vous devrez spécifier les coordonnées de ce mandataire pendant
l'installation. C'est très facile à faire : vous devez juste définir une
variable d'environnement qui contiendra ces coordonnées.
Dans la plupart des cas, vous pouvez juste définir cette variable avec le nom du
serveur. Pour illustrer, disons que le mandataire s'appelle
proxy.gentoo.org et que le port soit 8080 :
Exemple de code 1.1 : Définition d'un serveur mandataire |
# export http_proxy="http://proxy.gentoo.org:8080"
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
# export RSYNC_PROXY="rsync://proxy.gentoo.org:8080"
|
Si le mandataire a besoin d'un nom d'utilisateur et d'un mot de passe, utilisez
la syntaxe suivante pour définir la variable :
Exemple de code 1.2 : Ajout d'un nom d'utilisateur et d'un mot de passe au mandataire |
http://username:password@server:port
|
Par exemple, pour faire du HTTP avec notre serveur mandataire, le nom
d'utilisateur « nico » et le mot de passe « f00b_r », vous
ferez :
Exemple de code 1.3 : Utilisation d'un mandataire avec authentification |
# export http_proxy="http://nico:f00b_r@proxy.gentoo.org:8080"
|
3.b. Détection automatique du réseau
Cela marche peut-être déjà ?
Si votre système est connecté à un réseau Ethernet avec un serveur DHCP, il est
très probable que la configuration de votre carte réseau ait été faite
automatiquement. Si c'est le cas, vous devriez pouvoir utiliser les nombreux
outils réseau mis à votre disposition sur le LiveCD tels que ssh,
scp, ping, irssi, wget et links, entre
autres.
Si le réseau a été configuré, la commande /sbin/ifconfig devrait lister
au moins une interface réseau à part lo, eth0 par exemple :
Exemple de code 2.1 : /sbin/ifconfig pour une carte réseau fonctionnelle |
# /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:BA:8F:61:7A
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
collisions:1984 txqueuelen:100
RX bytes:485691215 (463.1 Mb) TX bytes:123951388 (118.2 Mb)
Interrupt:11 Base address:0xe800
|
Test du réseau
Vous pouvez essayer une connexion vers le serveur DNS de votre fournisseur
d'accès (son adresse figure dans /etc/resolv.conf) et un site Web
au choix, pour vérifier que vos paquets atteignent bien Internet et que la
résolution de noms se fait bien.
Exemple de code 2.2 : Le test ultime |
# ping -c 3 www.yahoo.com
|
Alors, êtes-vous connecté ? Si oui, vous pouvez pousuivre avec le
chapitre Préparer les disques. Sinon, pas
de chance, vous devrez rester assidu encore un petit moment :)
3.c. Configuration automatique du réseau
Si le réseau n'a pas marché tout de suite, certains supports d'installation
vous permettent d'utiliser net-setup (pour les réseaux classiques) ou
adsl-setup (pour les utilisateurs de l'ADSL) ou pptp (pour les
utilisateurs de PPTP).
Si votre support d'installation ne contient pas ces outils ou si votre réseau
ne fonctionne pas, veuillez continuer avec la Configuration manuelle du réseau.
Par défaut : utilisation de net-setup
Le plus simple pour activer une interface réseau, si cela n'a pas été fait
automatiquement, est de lancer le script net-setup :
Exemple de code 3.1 : Lancement du script net-setup |
# net-setup eth0
|
net-setup vous demandera des renseignements à propos de votre
environnement réseau. Une fois terminé, vous devriez avoir une connexion réseau
fonctionnelle. Testez votre connexion comme indiqué précédemment. Si le test est
positif, alors bravo. Vous êtes maintenant fin prêt pour l'installation de
Gentoo. Passez le reste de cette section et continuez avec la section
Préparer les disques.
Si votre réseau ne marche toujours pas, continuez avec la section Configuration manuelle du réseau.
Alternative : utilisation RP-PPPoE
Si vous avez besoin de PPPoE pour vous connecter à Internet, le LiveCD
(n'importe quelle version) contient de quoi vous faciliter la tâche grâce à
rp-pppoe. Utilisez le script adsl-setup fourni pour configurer
votre connexion. Il vous demandera le nom du périphérique qui est connecté à
votre modem ADSL, votre nom d'utilisateur et votre mot de passe, les adresses IP
de vos serveurs DNS et si vous voulez activer un pare-feu de base ou non.
Exemple de code 3.2 : Utilisation de rp-pppoe |
# adsl-setup
# adsl-start
|
Si cela ne marche pas, vérifiez scrupuleusement que les noms d'utilisateur et
mots de passe fournis ont été correctement tapés en regardant dans le fichier
/etc/ppp/pap-secrets ou /etc/ppp/chap-secrets et
assurez-vous d'utiliser le bon périphérique réseau. Si votre périphérique réseau
n'existe pas, vous devez charger les modules réseau appropriés. Dans ce cas,
continuez avec la Configuration manuelle du
réseau puisque nous y expliquons comment charger les modules réseau
nécessaires.
Si tout marche, continuez avec la section
Préparer les disques.
Alternative : utilisation de PPTP
Si vous avez besoin du support PPTP, vous pouvez utiliser pptpclient
fourni sur le LiveCD. Mais avant, vous devez vous assurer que votre
configuration est correcte. Éditez /etc/ppp/pap-secrets ou
/etc/ppp/chap-secrets afin qu'ils contiennent la bonne combinaison
nom d'utilisateur/mot de passe :
Exemple de code 3.3 : Édition de /etc/ppp/chap-secrets |
# nano -w /etc/ppp/chap-secrets
|
Ensuite, modifiez /etc/ppp/options.pptp si nécessaire :
Exemple de code 3.4 : Édition de /etc/ppp/options.pptp |
# nano -w /etc/ppp/options.pptp
|
Une fois cela fait, lancez simplement pptp (avec les options que vous ne
pouvez mettre dans options.pptp) pour vous connecter au
serveur :
Exemple de code 3.5 : Connexion à un serveur PPTP |
# pptp <ip du serveur>
|
Maintenant, continuez avec la section Préparer les
disques.
3.d. Configuration manuelle du réseau
Chargement des modules réseau nécessaires
Quand le LiveCD démarre, il essaie de détecter tous vos périphériques et de
charger les modules du noyau (les pilotes) appropriés pour faire marcher votre
matériel. Dans la plupart des cas, cela marche très bien. Pourtant, dans
certains cas, il peut ne pas charger certains modules dont vous avez besoin.
Si net-setup ou adsl-setup n'ont pas marché, alors vous pouvez
commencer à vous dire que votre carte réseau n'a pas été détectée et que vous
devrez charger les modules requis vous-même.
Pour savoir quels modules du noyau nous fournissons pour le réseau, utilisez
simplement ls :
Exemple de code 4.1 : À la recherche des modules fournis |
# ls /lib/modules/`uname -r`/kernel/drivers/net
|
Si vous trouvez un pilote pour votre carte réseau, utilisez modprobe pour
le charger dans le noyau :
Exemple de code 4.2 : Utilisation de modprobe pour charger un module dans le noyau |
# modprobe pcnet32
|
Pour vérifier si votre carte réseau est maintenant détectée, utilisez
ifconfig. Une carte réseau détectée devrait provoquer ce genre
d'affichage :
Exemple de code 4.3 : Test positif de la présence d'une carte réseau |
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr FE:FD:00:00:00:00
BROADCAST NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
|
Par contre, si vous obtenez l'erreur suivante, alors la carte réseau n'a pas été
détectée :
Exemple de code 4.4 : Test négatif de la présence d'une carte réseau |
# ifconfig eth0
eth0: error fetching interface information: Device not found
|
Si votre machine dispose de plusieurs cartes réseau, elles sont nommées
eth0, eth1, etc. Utilisez le nom qui correspond à la carte qui
est connectée. Dans le reste de ce document, nous utiliserons eth0.
Si votre carte réseau est maintenant détectée, vous pouvez ré-essayer
net-setup ou adsl-setup (ce qui devrait marcher). Pour
les curieux, nous allons quand même expliquer comment configurer manuellement
votre réseau.
Choisissez parmi les possibilités suivantes :
Utilisation de DHCP
DHCP (Dynamic Host Configuration Protocol, Protocole Dynamique de Configuration
d'un Hôte) sert à automatiser la récupération des informations réseau (adresse
IP, masque de réseau, adresse de diffusion, passerelle, serveurs de noms, etc.)
Cela ne marche que si vous disposez d'un serveur DHCP déjà configuré et actif
dans votre réseau (ce peut être votre serveur ou celui de votre fournisseur
d'accès). Pour qu'une interface réseau reçoive automatiquement ces
informations, utilisez dhcpcd :
Exemple de code 4.5 : Utilisation de dhcpcd |
# dhcpcd eth0
# dhcpcd -HD eth0
|
Si cela marche (essayez d'envoyer un ping vers un serveur sur Internet, par
exemple Google), alors vous êtes prêt
à continuer. Sautez le reste de cette section et continuez avec la section
Préparer les disques.
Configurer l'accès à un réseau sans fil
Note :
Tous les LiveCD n'ont pas la commande iwconfig. Si le vôtre ne l'a pas,
vous pouvez tout de même vous débrouiller en suivant les instructions relatives
au projet linux-wlan-ng
(en anglais).
|
Si vous utilisez un réseau sans fil (aussi nommé WiFi ou 802.11), vous devrez
sans doute configurer votre carte réseau avant de poursuivre. Pour afficher la
configuration de votre carte, utilisez la commande iwconfig. Elle
affichera un texte semblable à ceci :
Exemple de code 4.6 : Afficher la configuration en cours |
# iwconfig eth0
eth0 IEEE 802.11-DS ESSID:"GentooNode"
Mode:Managed Frequency:2.442GHz Access Point: 00:09:5B:11:CC:F2
Bit Rate:11Mb/s Tx-Power=20 dBm Sensitivity=0/65535
Retry limit:16 RTS thr:off Fragment thr:off
Power Management:off
Link Quality:25/10 Signal level:-51 dBm Noise level:-102 dBm
Rx invalid nwid:5901 Rx invalid crypt:0 Rx invalid frag:0 Tx
excessive retries:237 Invalid misc:350282 Missed beacon:84
|
Note :
Remarquez que certaines cartes ont un nom de périphérique wlan0 au lieu
de eth0.
|
Dans la plupart des cas, seuls deux paramètres doivent être définis : le
code ESSID (aussi nommé « wireless network name » ou nom du réseau)
et la clef WEP (cryptage). Si le code ESSID et l'adresse de votre point d'accès
(« Access Point » ci-dessus) correspondent déjà à la configuration de
votre réseau sans fil et que vous n'utilisez pas de clef WEP, alors votre
connexion sans fil fonctionne déjà. Si vous devez modifier le code ESSID ou
définir une clef WEP, utilisez les commandes suivantes :
Exemple de code 4.7 : Modifier le code ESSID et/ou définir une clef WEP |
# iwconfig eth0 essid GentooNode
# iwconfig eth0 key 1234123412341234abcd
# iwconfig eth0 key s:le-mot-de-passe
|
Vous pouvez vérifier vos paramètres en lançant la commande iwconfig. Une
fois que votre connexion sans fil est opérationnelle, vous pouvez poursuivre
avec la section suivante (Comprendre la terminologie
réseau) ou utiliser l'outil net-setup décrit précédemment.
Comprendre la terminologie réseau
Note :
Si vous connaissez votre adresse IP, votre adresse de diffusion (broadcast),
votre masque réseau et vos serveurs de noms, vous pouvez sauter cette
sous-section et continuer avec l'Utilisation de
ifconfig et route.
|
Si tout a échoué jusqu'à présent, vous allez devoir configurer votre réseau à la
main. N'ayez pas peur, c'est loin d'être difficile. Nous allons vous expliquer
un certain nombre de choses à propos des réseaux afin que vous puissiez
configurer le vôtre proprement. Quand vous aurez fini cette partie, vous saurez
ce qu'est une passerelle, à quoi sert un masque réseau, comment
est construite l'adresse de diffusion et pourquoi vous avez besoin de
serveurs de noms.
Dans un réseau, les machines sont identifiées par leur adresse IP
(« Internet Protocol »). Ces adresses sont une suite de quatre
nombres compris entre 0 et 255. Du moins, c'est comme cela qu'on le voit. En
réalité, une adresse IP est une suite de 32 bits (des uns ou zéros). Voyons un
exemple :
Exemple de code 4.8 : Exemple d'adresse IP |
Adresse IP (nombres): 192.168.0.2
Adresse IP (bits): 11000000 10101000 00000000 00000010
-------- -------- -------- --------
192 168 0 2
|
Une adresse IP est unique dans un réseau donné, c'est-à-dire qu'il n'existe
qu'une seule machine avec une certaine IP dans l'ensemble des réseaux connectés
et accessibles. Pour faire la distinction entre les machines qui sont dans un
réseau particulier et celles qui n'y sont pas, l'adresse IP est divisée en deux
parties : la partie réseau et la partie hôte.
La séparation est faite grâce au masque réseau, une suite de 1 suivie
d'une suite de 0. La partie de l'adresse IP qui correspond aux 1 est la partie
réseau, l'autre est la partie hôte. Le masque réseau est souvent écrit sous la
forme d'une adresse IP.
Exemple de code 4.9 : Exemple de séparation réseau/hôte |
Adresse IP: 192 168 0 2
11000000 10101000 00000000 00000010
Masque réseau 11111111 11111111 11111111 00000000
255 255 255 0
+--------------------------+--------+
Partie Réseau Hôte
|
Dans cet exemple, 192.168.0.14 fait toujours partie de notre réseau, mais pas
192.168.1.2.
L'adresse de diffusion (« broadcast ») d'une machine est une
adresse IP spéciale qui a la même partie réseau que son adresse IP, avec que
des 1 dans la partie hôte. Toutes les machines de votre réseau reçoivent les
paquets émis à cette adresse ; elle est utilisée pour diffuser des paquets
à tout le réseau.
Exemple de code 4.10 : Adresse de diffusion |
Adresse IP: 192 168 0 2
11000000 10101000 00000000 00000010
Adresse de diffusion: 11000000 10101000 00000000 11111111
192 168 0 255
+--------------------------+--------+
Réseau Hôte
|
Pour pouvoir surfer sur Internet, vous devez savoir quelle machine partage sa
connexion Internet. Cette machine est appelée la passerelle. Comme c'est
une machine comme une autre, elle a une adresse IP (par exemple 192.168.0.1).
Nous avons dit précédemment que chaque machine avait sa propre adresse IP. Pour
pouvoir accéder à une machine grâce à un nom (au lieu d'une adresse IP, plus dure
à retenir), vous avez besoin d'un service qui traduit un nom (comme
dev.gentoo.org) en une adresse IP (comme 64.5.62.82). Ce service
s'appelle service de noms (N.D.T. : ou DNS, pour Service de Noms de Domaine). Pour
utiliser ce service, vous avez besoin de définir un ou plusieurs serveurs de
noms dans le fichier /etc/resolv.conf.
Dans certains cas, votre passerelle sert aussi de serveur de noms. Sinon, entrez
les serveurs de noms de votre fournisseur d'accès.
Pour résumer, vous avez besoin des informations suivantes pour continuer :
| Objet |
Exemple |
| Votre adresse IP |
192.168.0.2 |
| Masque réseau |
255.255.255.0 |
| Adresse de diffusion |
192.168.0.255 |
| Passerelle |
192.168.0.1 |
| Serveur(s) de noms |
195.130.130.5, 195.130.130.133 |
Utilisation de ifconfig et route
La mise en place de votre réseau consiste en trois étapes. D'abord, nous nous
assignons une adresse IP avec ifconfig. Ensuite, nous configurons le
routage vers la passerelle avec route. Enfin, nous plaçons les adresses
des serveurs de noms dans le fichier /etc/resolv.conf.
Pour assigner une adresse IP, vous avez besoin de votre adresse IP, de l'adresse
de diffusion et du masque réseau. Ensuite, exécutez la commande suivante, en
remplaçant ${IP_ADDR} par votre adresse IP, ${BROADCAST} par
votre adresse de diffusion et ${NETMASK} par votre masque réseau :
Exemple de code 4.11 : Utilisation de ifconfig |
# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
|
Maintenant, nous mettons en place le routage avec route. Remplacez
${GATEWAY} par l'adresse de votre passerelle :
Exemple de code 4.12 : Utilisation de route |
# route add default gw ${GATEWAY}
|
Ouvrez maintenant le fichier /etc/resolv.conf avec votre éditeur de
texte favori (dans notre exemple, nous utilisons nano) :
Exemple de code 4.13 : Création du /etc/resolv.conf |
# nano -w /etc/resolv.conf
|
Entrez maintenant vos serveurs de noms de la façon suivante. Remplacez bien les
variables ${NAMESERVER1} et ${NAMESERVER2} avec les adresses
appropriées :
Exemple de code 4.14 : /etc/resolv.conf |
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
|
Et voilà. Maintenant, testez votre réseau en envoyant un ping vers un serveur
Internet (Google par exemple). Si cela
marche, toutes nos félicitations ! Vous êtes enfin prêt à installer Gentoo.
Poursuivez avec le chapitre Préparer les
disques.
4. Préparer les disques
4.a. Introduction aux périphériques de bloc
Les périphériques de bloc
Nous allons regarder de manière approfondie la question des disques sous Gentoo
Linux et sous Linux en général, y compris les systèmes de fichiers de Linux,
les partitions et les périphériques de bloc. Ensuite, une fois que vous serez
familiarisé avec les entrées et sorties des disques et des systèmes de
fichiers, vous serez guidé pour réaliser la mise en place des partitions et des
systèmes de fichiers pour votre installation de Gentoo Linux.
Pour commencer, nous allons présenter les périphériques de bloc. Le
plus célèbre étant certainement celui qui représente le premier disque IDE dans
un système Linux, /dev/hda. Si votre système utilise des disques
SCSI ou SATA, alors votre premier disque dur devrait être /dev/sda.
Les périphériques de bloc cités ci-dessus représentent une interface abstraite
vers les disques. Les programmes utilisateur peuvent les utiliser pour
interagir avec votre disque sans devoir se tracasser si vos périphériques sont
IDE, SCSI ou autres. Le programme peut simplement utiliser l'espace sur le
disque comme un groupe de blocs continus de 512 octets accessibles
aléatoirement.
Partitions
Bien qu'il soit théoriquement possible d'utiliser un disque complet pour héberger
votre système Linux, ceci n'est pratiquement jamais fait. À la place, les
périphériques de bloc sont divisés pour être plus petits et plus facilement
gérables. Ces subdivisions sont appelées partitions.
Les partitions sont divisées en trois types : primaire,
étendue et logique.
Une partition primaire est une partition dont l'information est stockée
dans le MBR (« master boot record », secteur d'amorçage principal).
Comme un MBR est très petit (512 bytes), seules 4 partitions primaires peuvent y
être définies (par exemple, de /dev/hda1 à /dev/hda4).
Une partition étendue est une partition primaire spéciale (ce qui signifie
que la partition étendue doit être une des quatre partitions primaires possibles)
qui contient d'autres partitions. Une telle partition n'existait pas à l'origine,
mais étant donné que quatre partitions ne suffisaient plus, on a étendu le schéma
de formatage sans perdre la compatibilité ascendante.
Une partition logique est une partition contenue dans la partition
étendue. Sa définition n'est pas placée dans le MBR, mais est déclarée dans la
partition étendue.
Solutions de stockage avancées
Les LiveCD Gentoo pour x86 offrent le support des systèmes EVMS ou LVM2. Les
systèmes LVM2 et EVMS permettent une plus grande flexibilité dans
l'organisation des disques. Le reste de ce guide utilise des partitions
normales, mais vous pouvez activer ces systèmes de stockage avancés si vous le
désirez.
4.b. Concevoir un plan de partitionnement
Plan de partitionnement par défaut
Si vous n'êtes pas intéressé par l'établissement d'un plan de partitionnement
pour votre système, vous pouvez utiliser le plan de partitionnement que nous
utilisons dans ce manuel :
| Partition |
Système de fichiers |
Taille |
Description |
| /dev/hda1 |
ext2 |
32M |
Partition de démarrage |
| /dev/hda2 |
(swap) |
512M |
Partition de mémoire virtuelle |
| /dev/hda3 |
ext3 |
Reste du disque |
Partition principale |
Si vous êtes intéressé de savoir la taille qu'une partition doit avoir, ou même
de combien de partitions vous avez besoin, poursuivez la lecture de ce
chapitre. Sinon, poursuivez avec le chapitre Partitionner
votre disque avec fdisk.
Combien et de quelle taille ?
Le nombre de partitions dépend beaucoup de votre environnement. Par exemple,
si vous avez beaucoup d'utilisateurs, vous désirerez certainement avoir
votre /home séparé afin d'améliorer la sécurité et de simplifier
les sauvegardes. Si vous installez Gentoo comme serveur de courrier, votre
/var devrait être séparé étant donné que tous les courriels sont
stockés dans /var. Un bon choix de système de fichiers va vous
permettre d'améliorer les performances. Les serveurs de jeu auront un
/opt séparé étant donné que la plupart des serveurs de jeux sont
installés à cet endroit. La raison est la même que pour /home :
sécurité et sauvegarde.
Comme vous pouvez le voir, cela dépend beaucoup de ce que vous souhaitez faire.
Séparer les partitions ou volumes procure les avantages suivants :
-
Vous pouvez choisir le système de fichiers le plus performant pour chaque partition
ou volume.
-
Votre système entier ne risque pas d'arriver à court d'espace disque libre si
un outil défectueux sature l'espace disque d'une partition ou d'un volume.
-
Si nécessaire, les vérifications des systèmes de fichiers durent moins longtemps,
vu que de multiples vérifications peuvent être faites en parallèle (quoique cet
avantage est plus important avec plusieurs disques qu'avec plusieurs
partitions).
-
La sécurité peut être améliorée en montant certaines partitions ou volumes
en lecture seulement, en utilisant nosuid (les bits suid sont ignorés) et
noexec (les bits exécutables sont ignorés), etc.
Cependant, de multiples partitions ont un gros désavantage : si elles ne
sont pas configurées correctement, vous risquez d'obtenir un système avec
beaucoup d'espace libre sur une partition et plus du tout sur une autre. Notez
également qu'il y a une limite de 15 partitions par disque SCSI ou SATA.
Voici un exemple de partitionnement pour un disque de 20 Go utilisé comme
portable de démonstration (contenant un serveur web, un serveur de courrier,
GNOME...) :
Exemple de code 2.1 : Exemple d'utilisation de système de fichiers |
Système de fichier Type Taille Util Libre Util% Monté sur
/dev/hda5 ext3 509M 132M 351M 28% /
/dev/hda2 ext3 5.0G 3.0G 1.8G 63% /home
/dev/hda7 ext3 7.9G 6.2G 1.3G 83% /usr
/dev/hda8 ext3 1011M 483M 477M 51% /opt
/dev/hda9 ext3 2.0G 607M 1.3G 32% /var
/dev/hda1 ext2 51M 17M 31M 36% /boot
/dev/hda6 swap 516M 12M 504M 2% <non monté>
|
/usr est plutôt rempli ici (83 % utilisés), mais une fois que
tous les programmes sont installés, /usr a une taille relativement
stable. Pour /var, on pourrait croire que trop d'espace a été
alloué. Cependant, Gentoo compile tous les programmes dans
/var/tmp/portage, ce qui explique que /var doit
disposer d'au moins 1 Go d'espace disponible si vous ne désirez pas
compiler de gros programmes, mais au minimum 3 Go de disponibles si
vous comptez compiler KDE ou OpenOffice.org.
4.c. Partitionner votre disque avec fdisk
Les parties suivantes expliquent comment créer le schéma de partition décrit
précédemment :
| Partition |
Description |
| /dev/hda1 |
Partition de démarrage |
| /dev/hda2 |
Partition de mémoire virtuelle |
| /dev/hda3 |
Partition principale |
Changez votre plan de partitionnement comme vous le souhaitez.
Afficher le plan de partitionnement actuel
fdisk est un outil populaire et puissant pour diviser votre disque en
partitions. Lancez fdisk sur votre disque (dans notre exemple, nous
utilisons /dev/hda) :
Exemple de code 3.1 : Lancement de fdisk |
# fdisk /dev/hda
|
Une fois dans fdisk, vous serez accueilli par une invite de commande
(« prompt ») qui ressemble à ceci :
Exemple de code 3.2 : Invite de commande de fdisk |
Command (m for help):
|
Appuyez sur p pour afficher la configuration actuelle de vos partitions.
Exemple de code 3.3 : Exemple de configuration de partition |
Command (m for help): p
Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 14 105808+ 83 Linux
/dev/hda2 15 49 264600 82 Linux swap
/dev/hda3 50 70 158760 83 Linux
/dev/hda4 71 2184 15981840 5 Extended
/dev/hda5 71 209 1050808+ 83 Linux
/dev/hda6 210 348 1050808+ 83 Linux
/dev/hda7 349 626 2101648+ 83 Linux
/dev/hda8 627 904 2101648+ 83 Linux
/dev/hda9 905 2184 9676768+ 83 Linux
Command (m for help):
|
Ce disque est configuré pour héberger sept systèmes de fichiers Linux
(chacun avec une partition correspondante listée en tant que « Linux »)
ainsi qu'une partition de mémoire virtuelle (listée en tant que « Linux
swap »).
Supprimer toutes les partitions
Nous allons commencer par supprimer toutes les partitions existantes sur le
disque. Tapez d pour supprimer une partition. Par exemple, pour
supprimer un /dev/hda1 existant :
Exemple de code 3.4 : Suppression d'une partition |
Command (m for help): d
Partition number (1-4): 1
|
La partition a été programmée pour la suppression. Elle ne sera plus affichée
si vous tapez p, mais elle ne sera pas supprimée tant que vos changements
n'auront pas été sauvés. Si vous faites une erreur et souhaitez annuler sans
sauver vos changements, tapez q immédiatement et appuyez sur Entrée,
vos partitions ne seront pas supprimées.
Maintenant, en supposant que vous souhaitiez enlever toutes les partitions de
votre système, répétez la commande p pour afficher une liste des
partitions et puis tapez d ainsi que le numéro de la partition que vous
souhaitez supprimer. Finalement, vous vous retrouverez avec une table de
partitions vide :
Exemple de code 3.5 : Une table de partitions vide |
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
Command (m for help):
|
Maintenant que la table de partitions en mémoire est vide, nous sommes prêts
pour créer les partitions. Nous allons utiliser le plan de partitionnement par
défaut comme dit précédemment. Bien sûr, ne suivez pas ces instructions à la
lettre si vous n'utilisez pas le même plan de partitionnement !
Création de la partition de démarrage
Nous allons commencer par créer la partition de démarrage. Tapez n pour
créer une nouvelle partition, ensuite p pour choisir une partition
primaire, suivi par 1 pour sélectionner la première partition primaire.
Quand on vous demande le premier cylindre, tapez Entrée. Quand on vous demande
le dernier cylindre, tapez +32M pour créer une partition de 32 Mo :
Exemple de code 3.6 : Création de la partition de démarrage |
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M
|
Maintenant, quand vous tapez p, vous devriez voir l'affichage
suivant :
Exemple de code 3.7 : Partition de démarrage créée |
Command (m for help): p
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 14 105808+ 83 Linux
|
Nous devons rendre cette partition amorçable. Tapez a et sélectionnez
1 pour activer l'option amorçable (bootable flag) sur cette partition.
Si vous tapez p à nouveau, vous constaterez qu'un *
(astérisque) est placé dans la colonne « Boot ».
Création de la partition de mémoire virtuelle
A présent, créons la partition de mémoire virtuelle. Pour ce faire, tapez
n pour créer une nouvelle partition, puis p pour dire à fdisk que
vous souhaitez une partition primaire. Ensuite, tapez 2 pour créer la
deuxième partition primaire, /dev/hda2 dans notre cas. Quand on
vous demandera le premier cylindre, tapez Entrée. Quand on vous demandera le
dernier cylindre, tapez +512M pour créer une partition de 512 Mo.
Ensuite, tapez t pour choisir le type de partition, 2 pour
sélectionner la partition que vous venez juste de créer puis tapez 82
pour choisir le type de partition « Linux swap ». Après avoir terminé
ces étapes, appuyer sur p devrait afficher une table de partitions qui
ressemble à ceci :
Exemple de code 3.8 : Affichage des partitions après la création de la partition de mémoire virtuelle |
Command (m for help): p
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 14 105808+ 83 Linux
/dev/hda2 15 81 506520 82 Linux swap
|
Création de la partition principale
Pour finir, créons la partition principale. Pour ce faire, tapez n pour
créer une nouvelle partition, puis p pour dire à fdisk que vous souhaitez
une partition primaire. Ensuite, tapez 3 pour créer la troisième partition
primaire, /dev/hda3 dans notre cas. Quand on vous demande le premier
cylindre, tapez Entrée. Quand on vous demande le dernier cylindre, tapez Entrée
pour créer une partition qui prend le reste de la place libre sur votre disque.
Après avoir terminé ces étapes, taper p devrait afficher une table de
partitions qui ressemble à ceci :
Exemple de code 3.9 : Affichage des partitions après la création de la partition principale |
Command (m for help): p
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 14 105808+ 83 Linux
/dev/hda2 15 81 506520 82 Linux swap
/dev/hda3 82 3876 28690200 83 Linux
|
Sauver le plan de partitionnement
Pour sauver le plan de partitionnement et quitter fdisk, tapez w.
Exemple de code 3.10 : Sauver et quiter fdisk |
Command (m for help): w
|
Maintenant que vos partitions sont créées, vous pouvez continuer avec
Création des systèmes de fichiers.
4.d. Création des systèmes de fichiers
Introduction
Maintenant que vos partitions sont créées, il est temps d'y installer un
système de fichiers. Si vous ne vous souciez pas de quel système de fichiers
choisir et êtes satisfait de ceux que nous utilisons par défaut dans ce manuel,
continuez avec Application d'un système de
fichiers à une partition. Sinon, continuez à lire pour en apprendre plus
sur les systèmes de fichiers disponibles.
Systèmes de fichiers ?
De nombreux systèmes de fichiers sont disponibles. Ci-dessous, nous décrivons
brièvement ext2, ext3, ReiserFS, XFS et JFS qui sont les plus utilisés sur les
systèmes Linux.
ext2 est le système de fichiers original de Linux mais n'a pas de
metadonnées journalisées, ce qui signifie que la routine de vérification du
système de fichiers ext2 au démarrage peut prendre beaucoup de temps. À
présent, vous avez le choix entre plusieurs systèmes de fichiers journalisés
qui peuvent être vérifiés très rapidement et sont généralement préférés à leurs
homologues non journalisés. Les systèmes de fichiers journalisés évitent de
devoir attendre longtemps quand vous démarrez votre système et que vos systèmes
de fichiers sont dans un état instable.
ext3 est la version journalisée du système de fichiers ext2, qui fournit
des metadonnées journalisées pour une récupération rapide en plus d'autres
modes journalisés comme la journalisation de données complètes et ordonnées.
ext3 est un très bon système de fichiers fiable. Il offre généralement des
performances décentes dans la plupart des conditions. Il offre de bonnes
performances dans la plupart des cas grâce à un arbre balancé indexé par clé de
hachage. En résumé, ext3 est un excellent système de fichiers.
ReiserFS est un système de fichiers basé sur les B*-tree qui a de très
bonnes performances et qui surpasse ext2 et ext3 dans le cas de l'utilisation
de petits fichiers (fichiers de moins de 4 ko), souvent avec un facteur allant
de 10 à 15. ReiserFS résiste aussi très bien à la montée en charge et a des
metadonnées journalisées. Depuis le noyau 2.4.18, ReiserFS est stable et peut
être utilisé aussi bien dans un système de fichiers destiné à une utilisation
générale et pour des cas extrêmes comme la création de grands systèmes de
fichiers et l'utilisation de nombreux petits fichiers ou de grands fichiers et
répertoires qui contiennent des dizaines de milliers de fichiers.
XFS est un système de fichiers avec des métadonnées journalisées qui
possède un ensemble de fonctionnalités robustes et qui est optimisé pour la mise
à l'échelle. Nous ne recommandons ce système de fichiers que pour des systèmes
équipés d'unités de stockage SCSI haut de gamme ou connectés à des serveurs de
stockage « Fibre Channel », et munis d'un onduleur. Puisque XFS utilise
énormément le cache pour des données transitoires en mémoire vive, les programmes
mal conçus (ceux qui ne prennent pas les précautions suffisantes quand ils
écrivent les fichiers sur disque, et il y en a quelques uns) peuvent perdre
beaucoup de données si le système s'interrompt de manière inattendue.
JFS est un système de fichiers journalisé à hautes performances d'IBM.
Il a été récemment déclaré prêt pour un usage en production, mais il n'y a pas
encore suffisamment d'information pour commenter sa stabilité générale de
manière positive ou négative.
Application d'un système de fichiers à une partition
Pour créer un système de fichiers sur une partition ou un volume, chaque
système de fichiers fournit ses propres outils :
| Système de fichiers |
Commande de création |
| ext2 |
mke2fs |
| ext3 |
mke2fs -j |
| reiserfs |
mkreiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
Par exemple, pour formater la partition de démarrage (/dev/hda1
dans notre exemple) en ext2 et la partition principale (/dev/hda3
dans notre exemple) en ext3, nous utiliserons :
Exemple de code 4.1 : Application d'un système de fichiers sur une partition |
# mke2fs /dev/hda1
# mke2fs -j /dev/hda3
|
À présent, créons les systèmes de fichiers sur nos partitions (ou volumes logiques)
fraîchement créées.
Activation de la partition de mémoire virtuelle
mkswap est la commande utilisée pour initialiser la partition de mémoire
virtuelle :
Exemple de code 4.2 : Création d'une signature de mémoire virtuelle |
# mkswap /dev/hda2
|
Pour activer la partition de mémoire virtuelle, utilisez swapon :
Exemple de code 4.3 : Activation de la partition de mémoire virtuelle |
# swapon /dev/hda2
|
Créez et activez la partition de mémoire virtuelle maintenant.
4.e. Monter les partitions
Maintenant que nos partitions sont initialisées et contiennent un système de
fichiers, il est temps de les monter avec la commande mount. N'oubliez
pas de créer les points de montage nécessaires pour toutes les partitions que
vous avez créées. Par exemple, pour monter les partitions de démarrage et
racine :
Exemple de code 5.1 : Monter les partitions |
# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot
|
Note :
Si vous installez /tmp sur une partition séparée, n'oubliez pas de
définir les permissions nécessaires après avoir monté la partition. Utilisez la
commande chmod 1777 /mnt/gentoo/tmp. La même remarque s'applique à
/var/tmp.
|
Nous devrons également monter le système de fichiers proc (une interface
virtuelle avec le noyau) sur /proc, mais nous devons d'abord placer
nos fichiers sur les partitions.
Continuez avec Installer les fichiers
d'installation de Gentoo.
5. Installer les fichiers d'installation de Gentoo
5.a. Installer une archive « stage »
Régler la date et l'heure
Avant de poursuivre, vous devez régler l'heure et la date de votre système. Si
l'horloge de votre machine n'est pas à l'heure et surtout à la bonne date, des
effets indésirables se produiront.
Pour afficher la date et l'heure, tapez date :
Exemple de code 1.1 : Afficher la date et l'heure |
# date
Thu Apr 25 16:21:18 CEST 2004
|
Pour changer la date et l'heure de votre système, utilisez date
MMJJhhmmAAAA (Mois, Jour, heure, minute,
Année). Par exemple, pour le 25 avril 2004 à 16:21, utilisez :
Exemple de code 1.2 : Régler la date et l'heure |
# date 042516212004
|
Faites votre choix
Vous devez maintenant installer Gentoo à partir de l'étape (stage) de
votre choix. Vous pouvez soit télécharger l'archive du stage, soit la
copier depuis un LiveCD universel. Si vous avez le LiveCD universel, télécharger
le stage par Internet est une pure perte de bande passante car les
fichiers stage sont les mêmes.
5.b. Méthode habituelle : télécharger une archive
Télécharger l'archive étape
Allez au point de montage Gentoo sur lequel vous avez monté vos systèmes de
fichiers (probablement /mnt/gentoo) :
Exemple de code 2.1 : Aller au point de montage Gentoo |
# cd /mnt/gentoo
|
En fonction de votre méthode d'installation, vous pouvez utiliser plusieurs
outils pour télécharger une archive étape. Si links2 est disponible,
vous pouvez immédiatement naviguer jusqu'à la
liste des miroirs Gentoo et choisir un miroir proche de chez vous. Si
links2 n'est pas disponible, lynx devrait l'être. Dans ce cas,
veuillez remplacer les occurrences de links2 par lynx dans la
suite de ce document.
Choisissez ensuite le répertoire releases suivi de l'architecture
de votre machine (par exemple x86), puis de la version de Gentoo
(2004.2) et du sous-répertoire stages/. Vous devriez
y voir tous les fichiers d'étape disponibles pour votre architecture (ils
peuvent se trouver dans des sous-répertoires dont les noms correspondent aux
différentes sous-architectures). Sélectionnez-en un et appuyez sur D
pour télécharger. Une fois terminé, appuyez sur Q pour quitter le
navigateur.
Exemple de code 2.2 : Consulter la liste des miroirs avec links2 |
# links2 http://www.gentoo.org/main/en/mirrors.xml
# links2 -http-proxy proxy.server.com:8080 http://www.gentoo.org/main/en/mirrors.xml
|
Vous pouvez utiliser la commande md5sum pour vérifier l'intégrité de
l'archive que vous venez de télécharger. Pour cela, comparez le résultat
affiché par md5sum avec la somme de contrôle disponible sur le miroir.
Par exemple, pour vérifier l'intégrité du fichier stage pour x86 :
Exemple de code 2.3 : Exemple de calcul de somme de contrôle d'une archive tarball |
# md5sum -c stage1-x86-2004.2.tar.bz2.md5
stage1-x86-2004.2.tar.bz2: OK
|
Décompresser l'archive étape
Maintenant, décompressez l'étape que vous venez de télécharger sur votre
système. Nous utilisons GNU tar, car c'est la méthode la plus simple :
Exemple de code 2.4 : Décompresser l'étape |
# tar -xvjpf stage?-*.tar.bz2
|
Faites bien attention d'utiliser les mêmes options (-xvjpf). Le x
signifie extraire, le v verbeux (bon d'accord, celui-ci
est facultatif), le j décompresser avec bzip2, le p
préserver les permissions et le f veut dire que nous désarchivons
un fichier d'archive, pas l'entrée standard.
Maintenant que l'archive est installée, poursuivez avec Installer Portage.
5.c. Alternative : utiliser une archive du LiveCD
Décompresser l'archive étape
Les archives étape incluses sur le CD se trouvent dans le répertoire
/mnt/cdrom/stages. Pour afficher la liste des étapes disponibles,
utilisez ls :
Exemple de code 3.1 : Lister les étapes disponibles |
# ls /mnt/cdrom/stages
|
Si le système répond par une erreur, vous avez peut-être besoin de monter
le CD-ROM.
Exemple de code 3.2 : Monter le CD-ROM |
# ls /mnt/cdrom/stages
ls: /mnt/cdrom/stages: No such file or directory
# mount /dev/cdroms/cdrom0 /mnt/cdrom
# ls /mnt/cdrom/stages
|
Rendez-vous maintenant au point de montage Gentoo (habituellement
/mnt/gentoo) :
Exemple de code 3.3 : Changer de répertoire vers /mnt/gentoo |
# cd /mnt/gentoo
|
Nous allons maintenant extraire l'archive étape de votre choix. Nous le ferons
avec l'outil tar de GNU. Faites bien attention à utiliser les mêmes
options (-xjvpf) ! Dans l'exemple suivant, nous décompressons
l'archive étape stage3-<sous-architecture>-2004.2.tar.bz2.
N'oubliez pas de substituer le nom de l'étape par celle que vous aurez choisie.
Exemple de code 3.4 : Décompresser l'étape |
# tar -xvjpf /mnt/cdrom/stages/stage3-<sous-architecture>-2004.2.tar.bz2
|
Maintenant que l'archive est installée, poursuivez avec Installer Portage.
5.d. Installer Portage
Avec ou sans réseau ?
Si vous n'avez pas de connexion réseau, vous devez installer un instantané de
Portage depuis un de nos LiveCD. Dans ce cas, vous devez obligatoirement
installer Gentoo à partir d'une archive stage3 car c'est la seule qui
permette l'installation sans réseau. Si vous comptez installer des paquets
précompilés pour accélérer votre installation, vous devez utiliser un
instantané de Portage copié depuis un LiveCD. Les autres utilisateurs
téléchargerons l'arbre Portage le plus récent avec la commande emerge au
chapitre suivant.
Vous avez maintenant 2 possibilités en fonction du type d'installation que vous
avez choisi :
Installer un instantané de Portage et le code source depuis un LiveCD
Un instantané de Portage est disponible sur les LiveCD universels. Si vous
lisez ceci, nous pouvons supposer que vous utilisez un tel LiveCD. Pour
installer cet instantané, regardez dans /mnt/cdrom/snapshots/ pour
voir quels instantanés sont disponibles :
Exemple de code 4.1 : Vérifier le contenu de /mnt/cdrom/snapshots |
# ls /mnt/cdrom/snapshots
|
Décompressez maintenant l'archive avec la commande suivante. Encore une fois,
assurez-vous de passer les bonnes options à tar. De plus, le -C
est un C majuscule, pas un c. Dans l'exemple suivant, nous
utilisons portage-20040710.tar.bz2 comme nom d'instantané.
Utilisez le nom de votre archive.
Exemple de code 4.2 : Extraire un instantané de Portage |
# tar -xvjf /mnt/cdrom/snapshots/portage-20040710.tar.bz2 -C /mnt/gentoo/usr
|
Vous devez aussi copier toutes les sources depuis le CD.
Exemple de code 4.3 : Copier les sources |
# mkdir /mnt/gentoo/usr/portage/distfiles
# cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/
|
Poursuivez avec Configurer les options de
compilation.
5.e. Configurer les options de compilation
Introduction
Pour optimiser Gentoo, vous pouvez définir quelques variables qui influencent
le comportement de Portage. Toutes ces variables peuvent être définies comme
des variables d'environnement (en utilisant export), mais elles ne sont
dans ce cas pas permanentes. Pour conserver votre configuration, vous pouvez
utiliser /etc/make.conf, un fichier de configuration de Portage.
C'est ce fichier que nous allons éditer maintenant.
Note :
Une liste commentée de toutes les variables de Portage se trouve dans le
fichier /etc/make.conf(.example). Pour installer Gentoo avec
succès, seules celles mentionnées ci-dessous sont indispensables.
|
Lancez votre éditeur préféré (dans ce guide, nous utiliserons nano)
pour modifier les variables d'optimisation décrites ci-dessous.
Exemple de code 5.1 : Ouvrir /etc/make.conf |
# nano -w /mnt/gentoo/etc/make.conf
|
Comme vous l'avez sans doute remarqué, le fichier
make.conf.example est structuré de manière générique : les
lignes de commentaires commencent par un "#", les autres définissent des
variables en utilisant la syntaxe VARIABLE="contenu". Le fichier
make.conf utilise la même syntaxe. Certaines variables sont
décrites ci-dessous.
CHOST
Attention :
Bien que cela puisse tenter les utilisateurs qui ne commencent pas
par l'étape 1, ceux-ci ne doivent pas changer la variable CHOST
dans make.conf. Le faire pourrait rendre leur système inutilisable.
Une fois encore, ne changez la valeur de cette variable qui si vous faites
l'installation à partir de l'étape 1.
|
La variable CHOST définit l'architecture pour laquelle gcc doit
compiler des programmes. Les possibilités sont :
| Architecture |
Sous-architecture |
Configuration de CHOST |
| x86 |
i386 |
i386-pc-linux-gnu |
| x86 |
i486 |
i486-pc-linux-gnu |
| x86 |
i586 |
i586-pc-linux-gnu |
| x86 |
i686 et plus (athlon inclus) |
i686-pc-linux-gnu |
| alpha |
|
alpha-unknown-linux-gnu |
| ppc |
|
powerpc-unknown-linux-gnu |
| ppc64 |
|
powerpc64-unknown-linux-gnu |
| sparc |
|
sparc-unknown-linux-gnu |
| hppa |
(générique) |
hppa-unknown-linux-gnu |
| hppa |
pa7000 |
hppa1.1-unknown-linux-gnu |
| hppa |
pa8000 et plus |
hppa2.0-unknown-linux-gnu |
| mips |
|
mips-unknown-linux-gnu |
| amd64 |
|
x86_64-pc-linux-gnu |
CFLAGS et CXXFLAGS
Les variables CFLAGS et CXXFLAGS définissent les options
d'optimisation pour le compilateur gcc, respectivement en C et C++.
Bien que nous les définissions de manière générale ici, vous n'obtiendrez
des performances maximales qu'en fixant les optimisations individuellement
pour chaque programme. La raison en est que chaque programme est différent.
Dans make.conf, vous devriez fixer les options d'optimisation
qui, selon vous, donneront plus de rapidité à votre système de
manière générale. Ne mettez pas d'options expérimentales dans cette
variable : trop d'optimisations peut engendrer des comportements anormaux
dans certains programmes (plantage ou, pire, fonctionnement défectueux).
Nous n'allons pas expliquer toutes les options d'optimisations possibles. Pour
les connaître toutes, consultez les
manuels en ligne GNU ou la page d'info de gcc (info gcc --
ne marche que sur un système Linux fonctionnel). Le fichier
make.conf lui-même contient de nombreux exemples et
renseignements ; n'oubliez pas non plus de le lire.
Un premier paramètre est l'option -march= qui spécifie le nom de
l'architecture cible. Les options possibles sont décrites dans le fichier
make.conf (en commentaires). Par exemple pour l'architecture
x86 Athlon XP :
Exemple de code 5.2 : Paramètre march de GCC |
-march=athlon-xp
|
Un deuxième paramètre est l'option -O (la lettre O majuscule) qui
spécifie la classe d'optimisation de gcc. Les classes possibles sont
s (pour optimiser en taille), 0 (zéro, pour ne pas optimiser),
1, 2, 3 pour plus d'optimisation de la vitesse d'exécution
(chacune de ces classes a les mêmes options que celle qui la précède plus
quelques autres). Par exemple, pour une optimisation de classe 2 :
Exemple de code 5.3 : Le paramètre O de GCC |
-O2
|
Une autre option d'optimisation populaire est -pipe (utilise des tubes
plutôt que des fichiers temporaires pour la communication entre les différentes
étapes de la compilation).
Veuillez remarquer que l'option -fomit-frame-pointer (qui permet de ne
pas garder le pointeur de cadre dans un registre pour les fonctions qui n'en
ont pas besoin) peut rendre le dépistage d'erreurs très difficile.
Lorsque vous définissez les variables CFLAGS et CXXFLAGS, vous devez
combiner plusieurs options d'optimisation, comme dans l'exemple suivant :
Exemple de code 5.4 : Définir les variables CFLAGS et CXXFLAGS |
CFLAGS="-march=athlon-xp -pipe -O2"
CXXFLAGS="${CFLAGS}"
|
MAKEOPTS
Avec MAKEOPTS, vous pouvez définir le nombre de compilations à lancer en
parallèle. Une valeur souvent utilisée est le nombre de processeurs dans votre
système plus un, mais une autre valeur peut parfois mieux fonctionner.
Exemple de code 5.5 : MAKEOPTS pour un système classique à 1 processeur |
MAKEOPTS="-j2"
|
À vos marques, prêts, partez !
Mettez à jour votre /mnt/gentoo/etc/make.conf comme vous le
souhaitez, et sauvez (Ctrl-X avec nano). Vous êtes maintenant prêt à
continuer avec Installer le système de base
Gentoo.
6. Installer le système de base de Gentoo
6.a. Entrer dans le nouvel environnement (chroot)
Facultatif : sélection des miroirs
Si vous avez démarré à partir d'un LiveCD Gentoo, vous pouvez utiliser
mirrorselect pour mettre /etc/make.conf à jour pour que
Portage utilise des miroirs rapides si vous êtes connecté à Internet.
Attention :
Un problème dans mirrorselect peut provoquer l'ajout de caractères indésirables
sur la ligne GENTOO_MIRRORS. Veuillez éditer le fichier
/mnt/gentoo/etc/make.conf et enlever ces caractères à la fin de la
ligne si nécessaire.
|
Exemple de code 1.1 : Choisir des miroirs rapides |
# mirrorselect -a -s4 -o | grep 'GENTOO_MIRRORS=' >> /mnt/gentoo/etc/make.conf
|
Si, pour quelque raison que ce soit, mirrorselect échoue, ne vous
inquiétez pas. Cette étape est entièrement facultative. Si mirrorselect
échoue, les valeurs par défaut suffiront.
Copier l'information DNS
Il reste une dernière chose à faire avant d'entrer dans le nouvel
environnement. Il s'agit de copier l'information DNS de
/etc/resolv.conf. Vous devez le faire afin d'assurer le bon
fonctionnement du réseau dans le nouvel environnement.
/etc/resolv.conf contient les serveurs de noms pour votre réseau.
Exemple de code 1.2 : Copier l'information DNS |
# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
|
Monter /proc
Monter le système de fichiers /proc dans
/mnt/gentoo/proc permet à l'installation d'utiliser les
informations fournies par le noyau, même lorsqu'on se trouve dans
l'environnement chroot.
Exemple de code 1.3 : Montage de /proc |
# mount -t proc none /mnt/gentoo/proc
|
Entrer dans le nouvel environnement
Maintenant que toutes les partitions sont initialisées et que l'environnement
de base est installé, il est temps d'entrer dans notre nouvel environnement
d'installation. Cela signifie que l'on passe de l'environnement d'installation
actuel (LiveCD ou autre environnement d'installation) à l'environnement de
votre système (soit les partitions initialisées).
L'entrée se fait en trois étapes. D'abord, on change la racine de
/ (sur l'environnement d'installation) en /mnt/gentoo
(sur vos partitions) en utilisant chroot. Ensuite, on crée un nouvel
environnement en utilisant env-update dont l'effet est
essentiellement de créer les variables d'environnement. Finalement, ces
variables sont chargées en mémoire en utilisant source.
Exemple de code 1.4 : Entrer dans le nouvel environnement |
# chroot /mnt/gentoo /bin/bash
# env-update
* Caching service dependencies...
# source /etc/profile
|
Félicitations ! Vous êtes maintenant dans votre propre environnement Gentoo
Linux. Bien sûr, ce dernier est loin d'être complet. C'est pourquoi il reste
encore quelques sections à ce guide d'installation :-)
Facultatif : mettre l'arbre de Portage à jour
Si vous n'avez pas installé un instantané de Portage au chapitre précédent,
vous devez télécharger un instantané récent de Portage à partir d'Internet.
emerge --sync le fera pour vous. Les autres utilisateurs devraient
ignorer cette section et poursuivre avec la section Configurer la variable USE.
Exemple de code 1.5 : Mise à jour de l'arbre de Portage |
# emerge --sync
|
Portage utilise le protocole RSYNC pour mettre son arbre à jour. Si la commande
ci-dessus ne fonctionne pas à cause de votre pare-feu, veuillez utiliser
emerge-webrsync qui télécharge et installe un instantané de Portage en
utilisant le protocole HTTP.
Exemple de code 1.6 : Mise à jour de l'arbre de Portage avec emerge-webrsync |
# emerge-webrsync
|
Si vous recevez un avertissement vous suggérant de mettre Portage à jour parce
qu'une nouvelle version est disponible, vous devez l'ignorer. Portage sera mis
à jour pour vous plus tard pendant l'installation.
Configurer la variable USE
USE est une des plus puissantes variables mises à la disposition des
utilisateurs de Gentoo. Plusieurs programmes peuvent être compilés avec ou sans
le support optionnel disponible pour certaines fonctionnalités. Par exemple,
certains programmes peuvent être compilés avec un support pour gtk ou pour Qt.
D'autres peuvent être compilés avec ou sans support pour SSL. Certains
programmes peuvent même être compilés avec un support pour le
« framebuffer » (svgalib) plutôt que pour X11 (serveur X).
La plupart des distributions compilent leurs paquets avec un support aussi
complet que possible, augmentant ainsi la taille des programmes et le temps de
chargement, sans mentionner le nombre énorme de dépendances qui en résulte.
Avec Gentoo, vous pouvez définir les options à utiliser lors de la compilation
d'un paquet. C'est ici que la variable USE entre en jeu.
La variable USE contient des mots-clés que vous choisissez et qui
correspondent à des options de compilation. Par exemple, ssl compilera
le support ssl dans les programmes qui le supportent. -X retirera le
support pour le serveur X (remarquez le signe moins devant le mot-clé).
gnome gtk -kde -qt compilera vos programmes avec le support pour GNOME
(et gtk), mais sans le support pour KDE (et qt). Le résultat est un système
complètement réglé pour GNOME.
Les options par défaut pour USE se trouvent dans
/etc/make.profile/make.defaults. Vos modifications à
/etc/make.conf sont jugées en fonction de ces options par
défaut. Si vous ajoutez quelque chose aux options USE, cela est ajouté
à la liste par défaut. Si vous retirez quelque chose des options USE
(en le précédant du signe moins), cela est retiré de la liste par défaut (en
supposant que cela s'y trouvait). Ne modifiez jamais quoi que ce soit
dans le répertoire /etc/make.profile car ses fichiers sont écrasés
lors des mises à jour de Portage !
Une description complète de USE peut être consultée dans la seconde
partie du manuel Gentoo, La variable USE.
Une description complète des options disponibles se trouve dans le fichier
/usr/portage/profiles/use.desc qui devrait déjà être sur votre
système.
Exemple de code 1.7 : Afficher les options de la variable USE disponibles |
# less /usr/portage/profiles/use.desc
|
L'exemple suivant montre les options de USE pour un
système basé sur KDE avec support pour ALSA, pour les DVD et pour la
gravure de CD :
Exemple de code 1.8 : Ouverture de /etc/make.conf |
# nano -w /etc/make.conf
|
Exemple de code 1.9 : Options de USE |
USE="-gtk -gnome qt kde dvd alsa cdr"
|
Vous n'utiliserez probablement qu'une ou deux « locales » sur votre
système. Après avoir compilé glibc, toutes les définitions de zone sont
créées. Vous pouvez éviter cela et ne créer que les définitions de zone qui
vous intéressent. Ajoutez l'option userlocales à votre variable USE et
définissez la liste des « locales » à créer dans le fichier
/etc/locales.build.
Exemple de code 1.10 : Utiliser l'option userlocales uniquement pour glibc |
# mkdir -p /etc/portage
echo "sys-libs/glibc userlocales" >> /etc/portage/package.use
|
Ensuite, définissez les « locales » qui vous intéressent :
Exemple de code 1.11 : Exemple de /etc/locales.build |
en_US/ISO-8859-1
en_US.UTF-8/UTF-8
de_DE/ISO-8859-1
de_DE@euro/ISO-8859-15
|
Facultatif : utiliser la compilation distribuée
Si vous désirez utiliser un ensemble de systèmes pour aider à compiler
les paquets du système où vous installez Gentoo, vous souhaiterez peut-être
jeter un coup d'œil au Guide Distcc.
6.b. Les différences entre stage1, stage2 et stage3
Prenez maintenant le temps de réfléchir aux étapes précédentes. Nous vous avons
guidé dans votre choix entre stage1, stage2 et stage3, et
nous avons souligné que cela était important pour les étapes subséquentes. Le
choix que vous avez fait définit maintenant les étapes à suivre.
-
Si vous avez choisi le stage1, vous devez suivre les deux
étapes décrites dans ce chapitre. Débutez par
Passer du stage1 au stage2.
-
Si vous avez choisi le stage2, vous devez ignorer la première
étape et poursuivre avec Passer du stage2 au
stage3.
-
Si vous avez choisi le stage3 (avec ou sans GRP), vous devez ignorer
les deux étapes et passer à Configurer le
noyau.
6.c. Passer du stage1 au stage2
Introduction au « bootstrap »
Alors, vous voulez tout compiler ex nihilo ? Pourquoi pas :-)
Dans cette étape, nous réalisons le « bootstrap » de votre système Gentoo.
Cela prend un temps considérable, mais le résultat est un système optimisé dès
le départ pour votre machine et vos besoins.
Le bootstrap signifie que la bibliothèque C GNU, l'ensemble des
compilateurs GNU et d'autres programmes vitaux du système vont être construits.
Avant de débuter le « bootstrap », voici quelques options qui vous
intéresseront peut-être. Si vous ne voulez pas vous en préoccuper, poursuivez
avec « Bootstrap » du système.
Facultatif : télécharger les fichiers sources d'abord
À moins que vous n'ayez déjà copié toutes les sources, le script du
« bootstrap » va télécharger les fichiers nécessaires. Il va sans
dire que cela ne peut se faire qu'avec une connexion réseau :-) Si vous
préférez télécharger les sources d'abord, puis ensuite faire le
« bootstrap » du système (peut-être préférez-vous que votre connexion
à Internet ne soit pas active pendant l'installation), utilisez l'option
-f du script du « bootstrap », qui téléchargera alors toutes
les sources pour vous. (N.D.T. : f réfère au terme anglais
« fetch »).
Exemple de code 3.1 : Téléchargement des fichiers sources nécessaires |
# cd /usr/portage
# scripts/bootstrap.sh -f
|
« Bootstrap » du système
Maintenant, tapez les commandes suivantes pour démarrer le
« bootstrap ». Ensuite, trouvez une autre façon de vous amuser, car
cette étape prend pas mal de temps.
Exemple de code 3.2 : « Bootstrap » du système |
# cd /usr/portage
# scripts/bootstrap.sh
|
Maintenant, poursuivez avec la prochaine étape, Passer du stage2 au stage3.
6.d. Passer du stage2 au stage3
Introduction
Si vous lisez cette section, vous disposez d'un système dont le « bootstrap »
est fait (soit parce que vous l'avez fait vous-même, soit parce que vous utilisez
un stage2). Il est maintenant temps d'installer les paquets système.
Tous les paquets système ? Non, pas vraiment. Cette étape va
installer les paquets système pour lesquels il n'existe pas d'alternative.
Certains paquets offrent des alternatives (par exemple les « system
loggers »), et, puisque l'essence même de Gentoo est d'offrir des choix, rien
ne vous est imposé.
Facultatif : visualiser ce qui va être fait
Si vous voulez savoir quels paquets vont être installés, exécutez emerge
--pretend system. Cela affiche une liste de tous les paquets qui seront
installés. Comme cette liste est volumineuse, vous devriez utiliser un
afficheur tel que less ou more pour la parcourir.
Exemple de code 4.1 : Visualiser ce que « emerge system » installera |
# emerge --pretend system | less
|
Facultatif : télécharger les sources
Si vous voulez que emerge télécharge les sources avant l'installation
(peut-être préférez-vous que votre connexion à Internet ne soit pas active
pendant l'installation), utilisez l'option --fetchonly de emerge.
Les sources seront alors téléchargées pour vous.
Exemple de code 4.2 : Télécharger les sources |
# emerge --fetchonly system
|
Construire le système
Pour lancer la construction du système, exécutez emerge system.
Ensuite, trouvez quelque chose pour vous tenir occupé, car cette étape est
très longue.
Exemple de code 4.3 : Construire le système |
# emerge system
|
Ignorez simplement les messages d'avertissement à propos de fichiers de
configuration qui devraient être mis à jour avec la commande etc-update.
Quand vous aurez redémarré votre nouvelle installation, veuillez consulter la
documentation à propos de la protection des fichiers de
configuration.
Lorsque la compilation est terminée, poursuivez votre lecture avec Configurer le noyau.
7. Configurer le noyau
7.a. Fuseau horaire
Vous devez maintenant choisir votre fuseau horaire afin que votre système
sache où il se trouve. Cherchez votre fuseau horaire dans
/usr/share/zoneinfo, puis créez un lien symbolique nommé
/etc/localtime en utilisant ln :
Exemple de code 1.1 : Définir l'information relative au fuseau horaire |
# ls /usr/share/zoneinfo
# ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
|
7.b. Installer les sources
Choisir un noyau
Le cœur autour duquel sont bâties toutes les distributions est le noyau (en
anglais « kernel ») Linux. Ce noyau est l'interface entre les
programmes utilisateur et le matériel. Gentoo offre un choix de plusieurs
noyaux à ses utilisateurs. Une liste complète, accompagnée de descriptions,
est disponible dans le Guide du noyau
Gentoo Linux.
Pour les systèmes x86, nous offrons, en autres, les vanilla-sources (le
noyau 2.4.x par défaut produit par les développeurs du noyau Linux), les
gentoo-sources (un noyau 2.4.x modifié par l'ajout de fonctionnalités
servant à améliorer les performances), les gentoo-dev-sources (le noyau
2.6 modifié par l'ajout de fonctionnalités servant à améliorer les
performances), les development-sources (le noyau 2.6 officiel)...
Si votre installation ne dispose pas de connexion réseau, vous devez choisir un
noyau dont les sources se trouvent sur le CD. Pour la version 2004.2, les noyaux
disponibles sont :
- gentoo-sources
- vanilla-sources
- gentoo-dev-sources
- development-sources
Choisissez les sources à utiliser pour votre noyau et installez-les avec
emerge.
Exemple de code 2.1 : Installer les sources d'un noyau |
# emerge gentoo-sources
|
Si vous examinez le contenu de /usr/src, vous devriez voir un lien
symbolique nommé linux pointant vers les sources de votre noyau.
Nous supposons que le noyau installé est gentoo-sources-2.4.26-r6 :
Exemple de code 2.4 : Examiner le lien symbolique vers le noyau |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-2.4.26-gentoo-r6
|
Si ce n'est pas le cas (le lien symbolique pointe vers un noyau différent),
changez le lien avant de continuer :
Exemple de code 2.3 : Changer le lien symbolique vers les sources du noyau |
# rm /usr/src/linux
# cd /usr/src
# ln -s linux-2.4.26-gentoo-r6 linux
|
Il est maintenant temps de configurer et de compiler votre noyau. Vous pouvez
utiliser genkernel. Cette commande construira un noyau générique tel que
celui utilisé par le LiveCD. Toutefois, nous expliquerons d'abord la
configuration « manuelle », puisque c'est la meilleure façon
d'optimiser votre environnement.
Si vous souhaitez configurer manuellement votre noyau, poursuivez votre lecture
avec Par défaut : configuration manuelle. Si
vous souhaitez utiliser genkernel, vous devriez plutôt lire Alternative : utiliser genkernel.
7.c. Par défaut : configuration manuelle
Introduction
Configurer un noyau est parfois considéré comme la tâche la plus ardue que les
utilisateurs de Linux doivent accomplir. Rien n'est moins vrai... Après
avoir configuré quelques noyaux, vous ne vous rappellerez même plus que c'était
difficile ;)
Toutefois, une chose est vraie : vous devez connaître votre système pour
configurer manuellement un noyau. La majeure partie de cette information peut
être obtenue en examinant le contenu de /proc/pci (ou en utilisant
lspci, s'il est disponible). Vous pouvez aussi exécuter lsmod
pour voir quels modules du noyau sont utilisés par le LiveCD (ce qui peut vous
donner des indices sur les fonctionnalités nécessaires).
Maintenant, allez dans le dossier des sources du noyau et exécutez make
menuconfig. Cela ouvrira un menu de configuration basé sur ncurses.
Exemple de code 3.1 : Lancer menuconfig |
# cd /usr/src/linux
# make menuconfig
|
Plusieurs sections d'options de configuration s'afficheront. Nous allons
d'abord dresser la liste de certaines options que vous devez activer (sinon,
Gentoo ne fonctionnera pas, ou du moins pas sans quelques réglages
additionnels).
Activer les options requises
Avant toute chose, activez l'utilisation du code et des pilotes en
développement ou expérimentaux. C'est absolument nécessaire ; si vous ne le
faites pas, des options très importantes ne seront pas affichées.
Exemple de code 3.2 : Sélectionner le code et les pilotes expérimentaux |
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
|
Vérifiez que vous compilez votre noyau pour le bon type de processeur :
Exemple de code 3.3 : Sélectionner le type de processeur |
Processor type and features --->
(Athlon/Duron/K7) Processor family
|
Allez à la section File Systems et activez le support nécessaire pour
les systèmes de fichiers que vous utilisez. Ne les compilez pas sous
forme de modules, sinon votre système Gentoo ne pourra pas monter vos
partitions. Activez aussi Virtual memory, /proc
file system et /dev file system + Automatically mount at boot.
Exemple de code 3.4 : Activer le support pour les systèmes de fichiers |
File systems --->
[*] Virtual memory file system support (former shm fs)
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[*] Automatically mount at boot
[ ] /dev/pts file system for Unix98 PTYs
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] /dev file system support (OBSOLETE)
[*] Automatically mount at boot
[*] Virtual memory file system support (former shm fs)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
Si votre BIOS ne sait pas gérer les disques durs de grande capacité et si vous
avez dû placer un cavalier sur le disque pour qu'il reporte une taille limitée,
alors vous devez activer les options suivantes pour permettre l'accès à votre
disque entier :
Exemple de code 3.5 : Sélection du redimensionnement de la géométrie du disque dur |
ATA/IDE/MFM/RLL support --->
IDE, ATA and ATAPI Block devices --->
<*> Include IDE/ATA-2 DISK support
[ ] Use multi-mode by default
[*] Auto-Geometry Resizing support
|
Si vous utilisez PPPoE ou un modem classique pour vous connecter à Internet,
vous aurez besoin des options du noyau suivantes :
Exemple de code 3.6 : Sélection des pilotes PPPoE |
Network device support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
Device Drivers --->
Networking support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
|
Les deux options de compression ne vous feront pas de mal, mais ne sont pas
absolument nécessaires. L'option PPP over Ethernet n'est pas obligatoire
non plus, considérant qu'elle pourrait n'être utilisée que par rp-pppoe
lorsque ce dernier est configuré pour utiliser PPPoE en mode noyau.
Si vous en avez besoin, n'oubliez pas d'ajouter le support pour votre
carte ethernet.
Si vous avez un microprocesseur Intel qui supporte la technologie
HyperThreading™ ou si vous avez un système à plusieurs CPU, vous devriez
activer « Symmetric multi-processing support » :
Exemple de code 3.7 : Activer le support pour SMP |
Processor type and features --->
[*] Symmetric multi-processing support
|
Si vous utilisez des périphériques d'entrée USB (un clavier ou une souris par
exemple), n'oubliez pas les options suivantes :
Exemple de code 3.8 : Activer le support USB pour des périphériques d'entrée |
USB Support --->
<*> USB Human Interface Device (full HID) support
|
Sur un portable, vous ne devez pas utiliser les pilotes PCMCIA du
noyau, mais ceux qui seront installés plus tard avec le paquet
pcmcia-cs. Avec un noyau 2.6.x, vous devriez utiliser les pilotes du
noyau.
Lorsque vous aurez terminé la configuration de votre noyau, poursuivez avec
la section Compiler et installer.
Compiler et installer
Maintenant que votre noyau est configuré, il est temps de le compiler et de
l'installer. Quittez la configuration et exécutez make dep && make
bzImage modules modules_install :
Exemple de code 3.9 : Compiler le noyau |
# make dep && make bzImage modules modules_install
# make && make modules_install
|
Lorsque la compilation est terminée, copiez l'image du noyau dans
/boot. Dans le reste de ce document, nous considérerons que vous
avez installé la version 2.4.26 de gentoo-sources. Vous pouvez choisir
le nom que vous allez donner à votre noyau comme bon vous semble. Mémorisez-le,
car vous en aurez besoin au moment de configurer votre chargeur de démarrage.
Exemple de code 3.10 : Installer le noyau |
# cp arch/i386/boot/bzImage /boot/kernel-2.4.26-gentoo-r6
# cp System.map /boot/System.map-2.4.26-gentoo-r6
|
Il est également sage de copier la configuration du noyau dans
/boot. Juste au cas où... :)
Exemple de code 3.11 : Faire une copie de sécurité de la configuration du noyau |
# cp .config /boot/config-2.4.26-gentoo-r6
|
Maintenant, poursuivez votre lecture avec Installer
des modules du noyau individuels.
7.d. Alternative : utiliser genkernel
Si vous lisez cette section, vous avez choisi d'utiliser le script
genkernel pour configurer votre noyau pour vous.
Maintenant que l'arbre des sources de votre noyau est installé, il est
temps de compiler ce noyau à l'aide du script genkernel qui construira
automatiquement un noyau dont la configuration sera presque identique à celle
du noyau du LiveCD. Cela signifie que si vous utilisez genkernel pour
construire votre noyau, votre système détectera généralement tout votre
matériel au moment de l'amorçage, à la manière du LiveCD. Puisque genkernel ne
requiert aucune configuration manuelle, il s'agit d'une solution idéale pour
l'utilisateur rebuté par l'idée de compiler son propre noyau.
Maintenant, voyons comment utiliser genkernel. D'abord, installez
genkernel comme suit :
Exemple de code 4.1 : Installer genkernel |
# emerge genkernel
|
Ensuite, compilez les sources du noyau en exécutant genkernel all.
Puisque genkernel compile un noyau qui supporte presque n'importe quel
matériel, ne soyez pas surpris que la compilation demande un temps considérable.
Veuillez noter que si votre partition de démarrage utilise un autre système de
fichiers que ext2 ou ext3, vous devrez peut-être compiler le support pour ce
système de fichiers dans le noyau (donc pas comme module) avec la commande
genkernel --menuconfig all.
Exemple de code 4.2 : Exécuter genkernel |
# genkernel all
|
Lorsque genkernel aura fini son travail, un noyau, un ensemble complet
de modules et un « initial root disk » (initrd) auront été créés.
Le noyau et le initrd seront utilisés plus tard lors de la configuration du
chargeur de démarrage. Notez bien les noms du noyau et du initrd puisque vous
devrez les spécifier lors de l'écriture du fichier de configuration du chargeur
de démarrage. Le initrd sera démarré immédiatement après l'amorçage afin de
réaliser l'autodétection du matériel (tout comme pour le LiveCD) avant que
votre « véritable » système ne démarre.
Exemple de code 4.3 : Vérifier les noms de l'image du noyau et du fichier initrd |
# ls /boot/kernel* /boot/initrd*
|
Afin d'obtenir un système plus semblable encore à celui du LiveCD, effectuons
une dernière étape : l'installation de hotplug. Alors que initrd
autodétecte le matériel nécessaire au démarrage du système, hotplug
autodétecte tout le reste. Pour l'installer et l'activer, utilisez les commandes
suivantes :
Exemple de code 4.4 : Installer et activer hotplug |
# emerge hotplug
# rc-update add hotplug default
|
7.e. Installer des modules du noyau individuels
Installer des modules supplémentaires
Si nécessaire, vous devriez installer les paquets appropriés pour le support du
matériel supplémentaire présent sur votre système. Voici une liste d'ebuilds
que vous pouvez utiliser pour installer ces paquets :
| ebuild |
Support fourni |
Commande |
| nvidia-kernel |
Accélération graphique pour les cartes NVIDIA (pour xorg-x11) |
emerge nvidia-kernel |
| nforce-audio |
Périphérique de son intégré aux cartes mères NVIDIA NForce(2) |
emerge nforce-audio |
| e100 |
Adaptateurs e100 Fast Ethernet de Intel |
emerge e100 |
| e1000 |
Adaptateurs e1000 Gigabit Ethernet de Intel |
emerge e1000 |
| emu10k1 |
Cartes son Creative Sound Blaster Live!/Audigy (uniquement pour noyaux 2.4.x) |
emerge emu10k1 |
| ati-drivers |
Accélération graphique pour les cartes ATI Radeon 8500+/FireGl
(pour xorg-x11)
|
emerge ati-drivers |
| ati-drivers-extra |
Outils graphiques ATI |
emerge ati-drivers-extra |
Faites attention, car certains de ces paquets ont de nombreuses dépendances.
Pour vérifier quels paquets seront installés lorsque vous utiliserez un
ebuild donné, utilisez emerge --pretend. Voici un exemple, avec le
paquet emu10k1 :
Exemple de code 5.1 : Examiner la liste des paquets qui seront installés |
# emerge --pretend emu10k1
|
Si vous n'êtes pas satisfait des paquets qui seront installés, utilisez
emerge --pretend --verbose pour voir quelles options de la variable USE
ont une influence sur les dépendances.
Exemple de code 5.2 : Examiner l'effet des options de USE |
# emerge --pretend --verbose emu10k1
[ebuild N ] media-sound/aumix-2.8 +gpm +nls +gtk +gnome +alsa -gtk2
|
Dans l'exemple précédent, vous pouvez voir que l'une des dépendances de
emu10k1 (aumix) utilise les options gtk et gnome,
ce qui implique que gtk (qui, en retour, dépend de xorg-x11) sera compilé aussi.
Si vous ne voulez pas que tout cela soit compilé, désélectionnez toutes ces
options de USE :
Exemple de code 5.3 : Installer emu10k1 avec toutes les options de USE déselectionnées |
# USE="-gpm -nls -gtk -gnome -alsa" emerge --pretend emu10k1
|
Si vous êtes satisfait des résultats, enlevez l'option --pretend pour
débuter l'installation de emu10k1.
Configurer les modules
Vous devriez indiquer la liste des modules que vous souhaitez charger
automatiquement dans /etc/modules.autoload.d/kernel-2.4 (ou
kernel-2.6). Vous pouvez également ajouter des options aux
modules si vous le souhaitez.
Pour dresser la liste des modules disponibles, exécutez la commande
find tel qu'indiqué ci-dessous. N'oubliez pas de substituer <kernel
version> par la version du noyau que vous venez juste de compiler :
Exemple de code 5.4 : Consulter la liste des modules disponibles |
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'
|
Par exemple, pour charger automatiquement le module 3c59x.o, spécifiez-le
dans le fichier kernel-2.4 ou kernel-2.6 selon le
noyau que vous utilisez.
Exemple de code 5.5 : Modifier le fichier /etc/modules.autoload.d/kernel-2.4 |
# nano -w /etc/modules.autoload.d/kernel-2.4
|
Exemple de code 5.6 : Exemple de fichier /etc/modules.autoload.d/kernel-2.4 ou kernel-2.6 |
3c59x
|
Exécutez maintenant modules-update pour incorporer vos changements au
fichier /etc/modules.conf :
Exemple de code 5.7 : Exécuter modules-update |
# modules-update
|
Poursuivez l'installation avec Configurer
votre système.
8. Configurer le système
8.a. Information sur le système de fichiers
Qu'est-ce que fstab ?
Sous Linux, toutes les partitions utilisées par le système doivent être listées
dans /etc/fstab. Ce fichier contient l'information relative aux
points de montage de ces partitions (où elles se situent dans le système de
fichiers de Linux), à la façon dont elles sont montées (décrite par des options
spéciales) et aux circonstances de leur montage (qui peut être
automatique ou non, sous le contrôle des utilisateurs ou non, etc.).
(N.D.T. : Bien que l'on emploie fréquemment l'expression « monter une
partition », il serait plus exact de dire que l'on monte le système de
fichiers présent sur la partition, et non pas la partition elle-même.)
Créer /etc/fstab
/etc/fstab emploie une syntaxe particulière. Chaque ligne contient
six champs séparés par des blancs (un ou plusieurs espaces ou tabulations, ou
encore un mélange d'espaces et de tabulations). Chaque champ a une signification
particulière :
-
Le premier champ indique la partition (il s'agit du chemin d'accès vers
le fichier matériel).
-
Le second champ indique le point de montage où la partition sera
montée.
-
Le troisième champ indique le type de système de fichiers présent
sur la partition.
-
Le quatrième champ indique les options de montage utilisées par
mount lorsque cette commande tente de monter la partition. Puisque
chaque type de système de fichiers a ses propres options de montage, vous êtes
encouragé à lire la page man de la commande mount (man mount) pour
obtenir une liste complète de ces options. Des options de montage multiples
doivent être séparées par des virgules.
-
Le cinquième champ est utilisé par dump pour déterminer si la partition
doit être « dumpée » ou non. Vous pouvez généralement
laisser cette valeur à 0 (zéro).
-
Le sixième champ est utilisé par fsck afin de déterminer l'ordre dans
lequel les systèmes de fichiers doivent être vérifiés si le système n'a pas
été mis hors tension de façon appropriée. Pour le système de fichiers racine,
la valeur devrait être 1. Pour les autres systèmes de fichiers, la
valeur devrait être 2 (ou 0 s'il n'est pas nécessaire de
vérifier le système de fichiers).
Vous devez modifier le fichier /etc/fstab qui a été installé par
Gentoo, car celui-ci n'est qu'un exemple et votre système ne démarrera pas si
vous le laissez tel quel. Ouvrez nano (ou votre éditeur favori) pour
créer votre /etc/fstab :
Exemple de code 2.4 : Ouvrir /etc/fstab |
# nano -w /etc/fstab
|
Jetons un coup d'œil à la façon d'écrire l'entrée correspondant à la partition
/boot. Il ne s'agit que d'un exemple, aussi ne le copiez pas si
votre architecture ne requiert pas de partition /boot (par exemple
sur un PPC).
Dans notre exemple de stratégie de partitionnement par défaut pour les systèmes
x86, /boot est sur la partition /dev/hda1 dans un
système de fichiers ext2. Il doit être vérifié au démarrage. Nous
écrivons donc :
Exemple de code 1.2 : Exemple d'une ligne pour /boot dans /etc/fstab |
/dev/hda1 /boot ext2 defaults 1 2
|
Certains utilisateurs ne désirent pas que leur partition /boot
soit montée automatiquement au démarrage pour des raisons de sécurité. Dans ce
cas, il convient de remplacer defaults par noauto. Ceci signifie
que la partition /boot devra être montée manuellement avant chaque
usage, par exemple pour installer un nouveau noyau et configurer grub.
Afin d'améliorer les performances, la plupart des utilisateurs devraient
ajouter l'option noatime au champ options de montage, ce qui donnera un
système plus rapide puisque les temps d'accès ne seront pas consignés. De
toute façon, vous n'en avez généralement pas besoin.
Exemple de code 1.3 : Une ligne améliorée pour /boot dans /etc/fstab |
/dev/hda1 /boot ext2 defaults,noatime 1 2
|
Poursuivons l'exemple avec ces trois lignes qui détaillent les partitions
montées sur /boot et sur /, et la partition de la
mémoire virtuelle :
Exemple de code 1.4 : Trois lignes de /etc/fstab |
/dev/hda1 /boot ext2 noauto,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 1
|
Pour terminer, vous devriez ajouter des entrées pour /proc,
tmpfs (nécessaire) et pour votre lecteur de CD-ROM (et, bien sûr, pour
vos autres partitions et vos autres disques, si vous en avez).
Exemple de code 1.5 : Un exemple complet de /etc/fstab |
/dev/hda1 /boot ext2 noauto,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 1
none /proc proc defaults 0 0
none /dev/shm tmpfs nodev,nosuid,noexec 0 0
/dev/cdroms/cdrom0 /mnt/cdrom auto noauto,user 0 0
|
L'option auto indique à mount de tenter de deviner le type du
système de fichiers (ce qui est recommandé pour les périphériques amovibles
puisqu'ils peuvent contenir différents types de systèmes de fichiers). L'option
user permet aux utilisateurs (autres que root) de monter le système de
fichiers (en l'occurrence celui présent sur le CD-ROM).
Utilisez l'exemple ci-dessus pour créer votre /etc/fstab. Si vous
utilisez un système SPARC, vous devriez également ajouter la ligne
suivante à /etc/fstab :
Exemple de code 1.6 : Ajouter le système de fichiers openprom à /etc/fstab |
none /proc/openprom openpromfs defaults 0 0
|
Si vous avez besoin de usbfs, ajoutez la ligne suivante à votre
/etc/fstab :
Exemple de code 1.7 : Ajouter le système de fichiers usbfs à /etc/fstab |
none /proc/bus/usb usbfs defaults 0 0
|
Relisez votre /etc/fstab, sauvegardez, puis quittez l'éditeur.
8.f. Information réseau
Nom d'hôte, nom de domaine, etc.
Une des choses que chaque utilisateur doit faire est nommer son PC. Cela
peut sembler aisé, mais de nombreux utilisateurs ont bien du mal à
trouver un nom approprié pour leur PC-Linux. Afin d'accélérer les choses,
dites-vous que le nom que vous choisissez maintenant pourra être changé plus
tard. Si vous êtes embêté, nommez temporairement votre système tux et
choisissez homenetwork comme nom de domaine.
Nous utiliserons ces valeurs dans les exemples suivants. Premièrement,
définissons le nom d'hôte :
Exemple de code 2.1 : Définir le nom d'hôte |
# echo tux > /etc/hostname
|
Deuxièmement, définissons le nom de domaine :
Exemple de code 2.2 : Définir le nom de domaine |
# echo homenetwork > /etc/dnsdomainname
|
Si vous avez un domaine NIS, vous devez également le définir : (Si vous
ne savez pas ce qu'est un domaine NIS, vous n'en avez certainement pas.)
Exemple de code 2.3 : Définir le domaine NIS |
# echo nis.homenetwork > /etc/nisdomainname
|
Maintenant, ajoutez le script domainname au niveau d'exécution
« default » :
Exemple de code 2.4 : Ajouter domainname au niveau d'exécution « default » |
# rc-update add domainname default
|
Configurer le réseau
Si vous éprouvez une sensation de déjà-vu, souvenez-vous que les paramètres
réseau que vous avez définis au début de l'installation ne concernaient que
l'installation elle-même. Vous devez maintenant vous attarder à la configuration
permanente du réseau pour votre système Gentoo.
Toute l'information réseau est rassemblée dans /etc/conf.d/net. Ce
fichier utilise une syntaxe simple mais pas nécessairement intuitive si vous ne
savez pas comment paramétrer manuellement un réseau. Pas d'inquiétude, tout
vous sera expliqué :)
D'abord, ouvrez /etc/conf.d/net avec votre éditeur favori :
(nano est utilisé dans cet exemple.)
Exemple de code 2.5 : Ouvrir /etc/conf.d/net afin de l'éditer |
# nano -w /etc/conf.d/net
|
La première variable que vous rencontrerez est iface_eth0. Elle utilise
la syntaxe suivante :
Exemple de code 2.6 : Syntaxe de iface_eth0 |
iface_eth0="<votre adresse IP> broadcast <votre adresse de diffusion> netmask <votre masque réseau>"
|
Si vous utilisez DHCP (attribution automatique de l'adresse IP), vous devriez
simplement attribuer la valeur dhcp à la variable iface_eth0. Si
vous utilisez rp-pppoe (pour l'ADSL par exemple), attribuez-lui la valeur
up. Si vous devez paramétrer votre réseau manuellement et que vous
n'êtes pas familier avec les termes ci-dessus, lisez la section Comprendre la terminologie des
réseaux (si ne n'est déjà fait).
Voici trois exemples : le premier utilise DHCP, le deuxième une adresse IP
statique (192.168.0.2) avec le masque réseau 255.255.255.0, l'adresse de
diffusion 192.168.0.255 et la passerelle 192.168.0.1, et le troisième active
l'interface pour une connexion rp-pppoe.
Exemple de code 2.7 : Exemples pour /etc/conf.d/net |
iface_eth0="dhcp"
dhcpcd_eth0="-HD"
dhcpcd_eth0="-N"
iface_eth0="192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0"
gateway="eth0/192.168.0.1"
iface_eth0="up"
|
Si vous avez plusieurs interfaces réseau, créez des variables
iface_eth supplémentaires telles que iface_eth1,
iface_eth2, etc. La variable gateway ne devrait pas être
dupliquée puisque vous ne pouvez avoir qu'une seule passerelle par ordinateur.
Sauvegardez votre configuration, puis quittez l'éditeur afin de poursuivre.
Activer les connexions réseau automatiquement au démarrage
Pour que vos interfaces réseau soient activées automatiquement lors du
démarrage, vous devez les ajouter au niveau d'exécution « default ».
Si vous avez des interfaces PCMCIA, vous devriez ignorer cette section puisque
les interfaces PCMCIA sont activées par le script PCMCIA.
Exemple de code 2.8 : Ajouter net.eth0 au niveau d'exécution « default » |
# rc-update add net.eth0 default
|
Si vous avez plusieurs interfaces réseau, vous devez créer les scripts
appropriés (net.eth1, net.eth2 etc.). Pour ce faire,
utilisez ln :
Exemple de code 2.9 : Créer des scripts d'initialisation supplémentaires |
# cd /etc/init.d
# ln -s net.eth0 net.eth1
# rc-update add net.eth1 default
|
Noter l'information relative au réseau
Vous devez maintenant fournir à Linux l'information relative à votre réseau.
Cela est défini dans /etc/hosts et permet de faire le lien entre
les noms d'hôtes et les adresses IP pour les hôtes qui ne sont pas gérés par le
serveur de noms. Par exemple, si votre réseau interne consiste en trois
ordinateurs nommés jenny (192.168.0.5), benny (192.168.0.6) et
tux (192.168.0.7 - le présent système), vous devriez ouvrir
/etc/hosts et y inscrire :
Exemple de code 2.10 : Ouvrir /etc/hosts |
# nano -w /etc/hosts
|
Exemple de code 2.11 : Noter l'information réseau |
127.0.0.1 localhost
192.168.0.5 jenny.homenetwork jenny
192.168.0.6 benny.homenetwork benny
192.168.0.7 tux.homenetwork tux
|
Si votre système est le seul système en présence (ou si votre serveur de noms
gère la résolution de tous les noms d'hôtes), une seule ligne suffit. Par
exemple, si vous voulez appeler votre système tux.homenetwork :
Exemple de code 2.12 : /etc/hosts pour les PC solitaires ou complètement intégrés |
127.0.0.1 tux.homenetwork tux localhost
|
Sauvegardez et quittez l'éditeur afin de poursuivre.
Si vous n'avez pas de PCMCIA, vous pouvez maintenant poursuivre avec Information système. Les utilisateurs de PCMCIA
devraient lire ce qui suit :
Facultatif : Activer PCMCIA
Note :
pcmcia-cs est uniquement disponible sur les plates-formes x86, AMD64 et PPC.
|
Les utilisateurs de PCMCIA devraient d'abord installer le paquet
pcmcia-cs. Les utilisateurs de noyaux 2.6.x doivent aussi installer ce
paquet même si les pilotes installés par ce paquet ne seront pas utilisés.
L'ajout de USE="-X" est nécessaire pour éviter d'installer xorg-x11 en
même temps :
Exemple de code 2.13 : Installer pcmcia-cs |
# USE="-X" emerge pcmcia-cs
|
Lorsque pcmcia-cs est installé, ajoutez pcmcia au
niveau d'exécution « default ».
Exemple de code 2.14 : Ajouter pcmcia au niveau d'exécution « default » |
# rc-update add pcmcia default
|
8.c. Information système
Mot de passe root
Pour commencer, définissons le mot de passe root en tapant :
Exemple de code 3.1 : Définition du mot de passe root |
# passwd
|
Si vous voulez pouvoir vous identifier en tant que root en passant par la console
série, ajoutez tts/0 à /etc/securetty :
Exemple de code 3.2 : Ajout de tts/0 à /etc/securetty |
# echo "tts/0" >> /etc/securetty
|
Informations sur le système
Gentoo utilise /etc/rc.conf pour la configuration générale qui
s'applique à l'ensemble du système. Ouvrez /etc/rc.conf et
appréciez les commentaires qui s'y trouvent :)
Exemple de code 3.3 : Ouvrir /etc/rc.conf |
# nano -w /etc/rc.conf
|
Comme vous pouvez le voir, ce fichier est généreusement commenté afin de vous
aider à paramétrer les différentes variables relatives à la configuration.
Faites particulièrement attention à la variable KEYMAP qui définit la
disposition des touches de votre clavier. Si vous sélectionnez une mauvaise
valeur, votre clavier ne fonctionnera pas correctement, c'est-à-dire que les
touches ne correspondront pas aux caractères que vous taperez.
Note :
Si vous utilisez un système SPARC avec USB ou un clone de SPARC,
vous devrez peut-être sélectionner une disposition clavier « i386 »
(par exemple « us ») au lieu de « sunkeymap ».
|
La plupart des systèmes PPC utilisent des définitions de clavier x86. Si vous
voulez utiliser une disposition ADB, vous devez l'activer quand vous compilez
votre noyau et ensuite définir une disposition mac/ppc dans
rc.conf.
Lorsque vous aurez fini de configurer /etc/rc.conf, sauvegardez
puis quittez l'éditeur. Poursuivez ensuite votre lecture avec l'installation des outils systèmes.
9. Installer les outils système
5.a. Système de journalisation des événements
Quand nous avons expliqué ce qu'est l'étape3, nous avons dit qu'elle
contient tous les outils système que nous imposons aux utilisateurs. Nous avons
ajouté que nous installerons les autres plus tard. Eh bien, nous y voilà :)
Le premier outil que vous devez choisir devra enregistrer les étapes du
démarrage du système. Unix et Linux ont une histoire riche en systèmes de
journalisation. Si vous le voulez, vous pouvez enregistrer tous ce
qui se passe sur votre système dans des fichiers de journalisation. Cela se
passe via le système de journalisation.
Gentoo offre le choix entre différents systèmes de journalisation. Il y a
sysklogd qui est l'ensemble d'utilitaires traditionel, syslog-ng,
un système de journalisation avancé, et metalog qui est un système de
journalisation hautement configurable. D'autres sont peut-être disponibles, car
le nombre de paquets dans Portage ne cesse de croître.
Si vous ne savez pas lequel prendre, utilisez metalog car il très
puissant et il fournit une excellente configuration par défaut.
Pour installer le système de journalisation de votre choix, utilisez
emerge puis ajoutez-le au niveau d'exécution « default » avec la
commande rc-update. L'exemple suivant installe metalog. Bien sûr,
n'oubliez pas d'y substituer le nom de votre système de journalisation.
Attention :
L'archive du stage3 de la version 2004.2 de Gentoo contient par erreur le
système de journalisation sysklogd. Vous devrez le désinstaller si vous souhaitez
en utiliser un autre.
|
Exemple de code 1.1 : Installer un système de journalisation |
# emerge unmerge sysklogd
# rm /etc/init.d/sysklogd
# emerge metalog
# rc-update add metalog default
|
9.b. Facultatif : le démon Cron
Bien qu'il ne soit pas nécessaire pour votre système, il est judicieux
d'installer un démon « cron ». Mais qu'est-ce qu'un tel démon ? Un démon « cron »
exécute des commandes planifiées. Il est très utile si vous avez besoin de
lancer des commandes régulièrement (par exemple journalièrement,
hebdomadairement, mensuelement).
La Gentoo offre trois possibilités de démon cron : dcron, fcron
et vixie-cron. En installer un est similaire à installer un système de
journalisation. Cependant, dcron et fcron requièrent une commande de
configuration supplémentaire, crontab /etc/crontab. Si vous ne savez pas
lequel choisir, utilisez vixie-cron.
Seul le paquet vixie-cron est disponible lors d'une installation sans
réseau. Si vous préférez en installer un autre, vous pouvez attendre et
l'installer quand vous le pourrez.
Exemple de code 2.2 : Installer un démon cron |
# emerge vixie-cron
# rc-update add vixie-cron default
# crontab /etc/crontab
|
9.c. Facultatif : indexation des fichiers
Si vous voulez indexer vos fichiers pour pouvoir les retrouver rapidement grâce
à l'outil locate, vous devez installer le paquet
sys-apps/slocate.
Note :
Si vous n'utilisez pas les profils en cascade, slocate fait déjà partie de
votre système. Les profils en cascade ne sont pas encore utilisés par
défaut ; si vous ne savez pas de quoi il s'agit, vous pouvez ignorer ceci,
car vous n'utilisez pas les profils en cascade.
|
Exemple de code 3.1 : Installer slocate |
# emerge slocate
|
9.d. Outils du système de fichiers
En fonction du système de fichiers que vous utilisez, vous devez installer ses
utilitaires (pour vérifier l'intégrité du système de fichiers, pour ajouter des
systèmes de fichiers, etc.).
La table suivante liste les outils à installer en fonction du système de
fichiers.
| Système de fichiers |
Outil |
Commande d'installation |
| XFS |
xfsprogs |
emerge xfsprogs |
| ReiserFS |
reiserfsprogs |
emerge reiserfsprogs |
| JFS |
jfsutils |
emerge jfsutils |
Si vous n'avez pas besoin d'outils supplémentaires relatif au réseau tels que
rp-pppoe ou un client DHCP, continuez avec la Configuration du chargeur de démarrage.
9.e. Outils réseau
Facultatif : installer un client DHCP
Si vous voulez que votre système acquière une adresse IP automatiquement, vous
devez installer dhcpcd (ou tout autre client DHCP). Si vous ne le faites
pas, vous risquez de ne pas pouvoir vous connecter à internet après avoir fini
l'installation.
Note :
Si vous n'installez pas Gentoo en utilisant des profils en cascade, dhcpcd est
déjà inclus dans votre système. Les profils en cascade ne sont pas encore
utilisés par défaut ; si vous ne savez pas de quoi il s'agit, vous ne les
utlisez pas et dhcpcd est déjà installé sur votre système.
|
Exemple de code 5.1 : Installer dhcpcd |
# emerge dhcpcd
|
Facultatif : installer un client PPPoE
Si vous avez besoin de rp-pppoe pour vous connecter à Internet, vous
devrez l'installer.
Exemple de code 5.2 : Installer rp-pppoe |
# USE="-X" emerge rp-pppoe
|
La variable USE="-X" désactivera l'installation de xorg-x11 en temps que
dépendance (rp-pppoe a des outils graphiques ; si vous voulez les
activer, vous pourrez recompiler rp-pppoe plus tard ou vous pouvez
installer xorg-x11 maintenant -- cela prendra alors beaucoup de temps).
Poursuivez avec la configuration du chargeur de
démarrage.
10. Configurer le chargeur de démarrage
4.a. Faites votre choix
Introduction
Maintenant que votre noyau est configuré et compilé et que les fichiers de
configuration du système sont correctement paramétrés, il est temps d'installer
le programme qui charge le noyau au démarrage de votre machine.
Un tel programme est appelé un chargeur de démarrage
(« bootloader » en anglais).
Vous avez le choix entre GRUB et LILO. Avant d'installer un de ces chargeurs, vous devriez
décider si vous allez utiliser le framebuffer. Ce dernier permet d'utiliser la
ligne de commande avec des fonctionnalités graphiques limitées. Vous pouvez par
exemple faire afficher le bel écran de démarrage (le « splash
screen ») de Gentoo.
Facultatif : le framebuffer
Si vous avez activé le support du framebuffer dans votre noyau ou si
vous avez utilisé le noyau par défaut de genkernel, vous devez ajouter
l'option vga ou video dans la configuration de votre chargeur de
démarrage si vous voulez utiliser le framebuffer. La première est utilisée par
les noyaux 2.4.x et la seconde par les noyaux 2.6.x. Le tableau ci-dessous
liste les valeurs disponibles. Dans notre exemple, nous utiliserons 800x600
@ 16bpp pour un noyau 2.4, donc 788.
|
640x480 |
800x600 |
1024x768 |
1280x1024 |
| 8 bpp |
769 |
771 |
773 |
775 |
| 16 bpp |
785 |
788 |
791 |
794 |
| 32 bpp |
786 |
789 |
792 |
795 |
L'option video fonctionne généralement bien avec la syntaxe simplifiée
video=vesafb.
Vous trouverez plus d'information à ce sujet dans le fichier
/usr/src/linux/Documentation/fb/vesafb.txt.
Mémorisez (ou notez) la valeur qui vous convient, vous en aurez bientôt besoin.
Installez maintenant GRUB ou LILO.
10.b. Par défaut : GRUB
Comprendre le vocabulaire de GRUB
Pour bien comprendre GRUB, le plus important est de se familiariser avec la
manière qu'a GRUB de désigner les disques durs et les partitions. Votre
partition Linux /dev/hda1 s'appelle (hd0,0) dans
GRUB. Notez les parenthèses nécessaires autour de hd0,0.
GRUB compte les disques durs à partir de zéro plutôt que « a » et les
partitions à partir de zéro au lieu de un. Remarquez aussi que GRUB ne compte que
les disques durs et ignore les périphériques tels que les lecteurs ou graveurs de
CD-ROM. Les mêmes principes s'appliquent aux disques SCSI. Ces derniers
reçoivent en général des numéros supérieurs à ceux des disques IDE, sauf quand
le BIOS est configuré pour démarrer sur les disques SCSI.)
En supposant que vous ayez un disque dur /dev/hda, un lecteur de
CD-ROM /dev/hdb, un graveur /dev/hdc, un
second disque dur /dev/hdd et aucun disque SCSI,
/dev/hdd7 s'écrit (hd1,6) dans GRUB. Cela peut
sembler compliqué, et ça l'est, mais, comme vous le verrez, GRUB offre un
système d'aide à la saisie bien pratique si vous avez de nombreux disques durs
avec beaucoup de partitions.
Après cette courte introduction, il est temps d'installer GRUB.
Installation de GRUB
Pour installer GRUB, il suffit d'une simple commande emerge :
Exemple de code 2.1 : Installer GRUB |
# emerge grub
|
Bien que GRUB soit maintenant installé, vous devez encore écrire son fichier de
configuration pour qu'il puisse démarrer votre noyau et l'installer dans le
secteur de démarrage (MBR) du système. Créez le fichier
/boot/grub/grub.conf :
Exemple de code 2.2 : Création de /boot/grub/grub.conf |
# nano -w /boot/grub/grub.conf
|
Ci-dessous, vous trouverez deux exemples de fichier grub.conf
basés sur les partitions utilisées dans ce guide. L'image du noyau compilé est
kernel-2.4.26-gentoo-r6. Seul le premier exemple est pleinement
commenté. Utilisez le nom du fichier que vous avez utilisé quand vous avez
copié l'image de votre noyau. La même remarque s'applique à votre image initrd
si vous avez utilisé genkernel.
-
Le premier grub.conf est destiné aux utilisateurs qui n'ont pas
compilé leur noyau avec genkernel.
-
Le deuxième grub.conf est destiné aux utilisateurs qui ont
construit leur noyau avec genkernel.
Exemple de code 2.3 : Exemple de grub.conf sans genkernel |
default 0
timeout 30
splashimage=(hd0,0)/grub/splash.xpm.gz
title=Gentoo Linux 2.4.26-r6
root (hd0,0)
kernel /kernel-2.4.26-gentoo-r6 root=/dev/hda3
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Exemple de code 2.4 : Exemple de grub.conf avec genkernel |
default 0
timeout 30
splashimage=(hd0,0)/grub/splash.xpm.gz
title=Gentoo Linux 2.4.26-r6
root (hd0,0)
kernel /kernel-2.4.26-gentoo-r6 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3
initrd /initrd-2.4.26-gentoo-r6
title=Windows XP
root (hd0,5)
makeactive
chainloader +1
|
Note :
Si vos partitions sont organisées différemment ou si vous utilisez un autre
noyau, ajustez les commandes en conséquence. Assurez-vous de toujours utiliser
un chemin relatif au point de montage. En d'autres mots,
(hd0,0)/grub/splash.xpm.gz est en fait
/boot/grub/splash.xpm.gz, car (hd0,0) sera monté sur
/boot.
|
Si vous devez passer des options supplémentaires à votre noyau, ajoutez-les
simplement à la fin de la commande kernel. Nous lui passons déjà une
option (root=/dev/hda3 ou real_root=/dev/hda3), mais vous pouvez
en ajouter (par exemple, l'option vga pour le framebuffer mentionnée
plus haut).
Exemple de code 2.5 : Ajouter l'option vga aux options du noyau |
title=Gentoo Linux 2.4.26-r6
root (hd0,0)
kernel /kernel-2.4.26-gentoo-r6 root=/dev/hda3 vga=788
|
Si vous utilisez un noyau de version 2.6.7 ou supérieure et avez placé un
cavalier sur votre disque dur car le BIOS ne gère pas les disques de grande
capacité, alors vous devez ajouter hdx=stroke sur la ligne kernel.
Les utilisateurs de genkernel doivent savoir que leur noyau utilise les
mêmes options que celles utilisées sur le LiveCD. Par exemple, si vous avez des
périphériques SCSI, vous devez ajouter l'option doscsi.
Enregistrez le fichier grub.conf et quittez votre éditeur. Il
faut encore installer GRUB dans votre secteur de démarrage.
Les développeurs de GRUB conseillent d'utiliser la commande
grub-install. Cependant, si cette méthode échoue, vous devrez
l'installer manuellement.
Veuillez poursuivre avec soit l'installation
automatique de GRUB (par défaut), soit l'installation manuelle de GRUB (alternative).
Par défaut : installation automatique de GRUB
Le script grub-install installe GRUB automatiquement, mais, puisque vous
êtes dans un environnement « chroot », vous devez mettre le fichier
/etc/mtab à jour. Ce dernier contient la liste des systèmes de
fichiers qui sont montés. Heureusement, il suffit d'utiliser une copie de
/proc/mounts, comme suit :
Exemple de code 2.6 : Mettre /etc/mtab à jour |
# cp /proc/mounts /etc/mtab
|
Ensuite, vous pouvez lancer le script grub-install :
Exemple de code 2.7 : Exécuter grub-install |
# grub-install --root-directory=/boot /dev/hda
|
Pour plus d'informations à propos de GRUB, vous pouvez consulter la FAQ de GRUB ou le
manuel de GRUB (tous
deux en anglais).
Poursuivez avec le redémarrage du système.
Alternative : installation manuelle de GRUB
Pour configurer GRUB, tapez grub. Vous recevrez l'invite GRUB
grub> sur la ligne de commande. Vous devez ensuite entrer les
bonnes commandes pour installer le secteur de démarrage sur votre disque dur.
Exemple de code 2.8 : Lancer le shell GRUB |
# grub
|
Note :
Si votre système n'a pas de lecteur de disquettes, ajoutez l'option
--no-floppy à la commande ci-dessus pour empêcher grub de tenter d'accéder
au lecteur inexistant.
|
Dans notre exemple, nous voulons installer GRUB pour qu'il trouve l'information
dont il a besoin sur la partition de démarrage /dev/hda1. Nous
voulons aussi installer GRUB dans le secteur MBR (N.D.T. : « Master Boot
Record », code initialement chargé par le BIOS au démarrage du PC) pour que
GRUB soit lancé dès le démarrage de la machine. Évidemment, si vous ne suivez pas
exactement notre exemple, vous devez modifier les commandes en conséquence.
Le shell de GRUB contient un mécanisme d'aide à la saisie. Par exemple, si vous
tapez « root ( » suivi de la touche <TAB>, GRUB affichera
une liste des périphériques possibles (hd0 par exemple). Si vous
tapez « root (hd0, » suivi de la touche <TAB>, GRUB
affichera une liste des partitions disponibles (hd0,0 par exemple).
Grâce à ce système, installer GRUB devient relativement facile.
Allons-y, installons GRUB.
Exemple de code 2.9 : Installer GRUB sur le MBR |
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
|
Note :
Si vous voulez installer GRUB dans une partition au lieu du MBR, vous devez
indiquer la bonne partition à la commande setup. Par exemple, pour
installer GRUB dans /dev/hda3, la commande devient setup
(hd0,2). Peu d'utilisateurs voudront faire cela.
|
Pour plus d'informations à propos de GRUB, vous pouvez consulter la FAQ de GRUB ou le
manuel de GRUB (tous
deux en anglais).
Poursuivez avec le redémarrage du système.
10.c. Alternative : LILO
Installer LILO
LILO (LInux LOader, ou chargeur Linux) est le chargeur historique de Linux, mais
il lui manque des fonctionnalités présentes dans GRUB, ce qui explique que GRUB
est en train de prendre le dessus. La raison pour laquelle LILO est encore
utilisé est que GRUB ne fonctionne pas sur certains systèmes, alors que LILO
fonctionne sur ces mêmes systèmes.
Évidemment, beaucoup d'utilisateurs connaissent mieux LILO que GRUB et veulent
le conserver. De toute façon, Gentoo supporte les deux, et vous avez
apparemment choisi LILO.
Installer LILO est enfantin ; utilisez emerge.
Exemple de code 3.1 : Installer LILO |
# emerge lilo
|
Configurer LILO
Pour configurer LILO, vous devez créer le fichier /etc/lilo.conf.
Lancez votre éditeur préféré (notre exemple utilise nano) et créez le
fichier.
Exemple de code 3.2 : Créer /etc/lilo.conf |
# nano -w /etc/lilo.conf
|
Nous vous avions demandé de mémoriser le nom de l'image de votre noyau. Dans
l'exemple suivant, nous supposons que c'est
kernel-2.4.26-gentoo-r6.
Nous utilisons aussi les partitions telles que créées plus tôt dans ce manuel.
Il convient de différencier deux cas :
-
Les noyaux compilés sans genkernel.
-
Les noyaux compilés avec genkernel.
Utilisez le nom du fichier que vous avez utilisé quand vous avez copié l'image
de votre noyau. La même remarque s'applique à votre image initrd si vous avez
utilisé genkernel.
Exemple de code 3.3 : Exemple de /etc/lilo.conf |
boot=/dev/hda
prompt
timeout=50
default=gentoo
vga=788
image=/boot/kernel-2.4.26-gentoo-r6
label=gentoo
read-only
root=/dev/hda3
image=/boot/kernel-2.4.26-gentoo-r6
label=gentoo
read-only
root=/dev/ram0
append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3"
initrd=/boot/initrd-2.4.26-gentoo-r6
other=/dev/hda6
label=windows
|
Note :
Si vos partitions sont agencées d'une autre façon ou si vous utilisez un autre
noyau, ajustez les valeurs en conséquence.
|
Si vous devez passer d'autres options à votre noyau, ajoutez une commande
append dans la section ad hoc. Par exemple, pour passer
vga=788 pour activer le framebuffer, faites :
Exemple de code 3.4 : Utiliser append pour passer une option au noyau |
image=/boot/kernel-2.4.26-gentoo-r6
label=gentoo
read-only
root=/dev/hda3
append="vga=788"
|
Si vous utilisez un noyau de version 2.6.7 ou supérieure et avez placé un
cavalier sur votre disque dur car le BIOS ne gère pas les disques de grande
capacité, alors vous devez ajouter append="hdx=stroke".
Les utilisateurs de genkernel
doivent savoir que leur noyau utilise les mêmes options de démarrage
que le LiveCD. Par exemple, si vous avez des périphériques SCSI,
vous devez passer l'option doscsi.
Enregistrez le fichier et quittez votre éditeur. Pour terminer, vous devez
lancer la commande /sbin/lilo pour que LILO prenne votre fichier
/etc/lilo.conf en compte (c'est-à-dire pour l'installer sur le
disque). Notez que vous devrez exécuter /sbin/lilo chaque fois que vous
installez un noyau.
Exemple de code 3.5 : Terminer l'installation de LILO |
# /sbin/lilo
|
Poursuivez avec Redémarrage du système.
10.d. Redémarrage du système
Sortez de l'environnement « chroot » et démontez toutes les partitions
montées. Ensuite, tapez la commande magique tant attendue : reboot.
Exemple de code 4.1 : Sortie du « chroot », démontage des partitions et redémarrage |
# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot
|
Bien entendu, n'oubliez pas de retirer le CD du lecteur car sinon le système
amorcera le CD au lieu de démarrer sur votre nouveau système Gentoo.
Une fois le système Gentoo démarré, concluez avec Finaliser votre installation.
11. Finaliser votre installation
11.a. Administration des utilisateurs
Ajouter un utilisateur pour une utilisation quotidienne
Travailler en temps que root sur un système Unix/Linux est dangereux et
devrait être évité aussi souvent que possible. Par conséquent, il est
vivement recommandé d'ajouter un utilisateur pour une utilisation
quotidienne.
Les actions qu'un utilisateur a le droit de faire sont définies par les groupes
dont l'utilisateur est membre. Le tableau ci-dessous liste quelques groupes
importants :
| Groupe |
Description |
| audio |
accès autorisé aux périphériques audio |
| cdrom |
accès autorisé aux lecteurs de CD-ROM |
| floppy |
accès autorisé au lecteur de disquettes |
| games |
accès aux jeux |
| usb |
accès autorisé aux périphériques USB |
| video |
accès autorisé au matériel de capture vidéo et à l'accélération matérielle
|
| wheel |
commande su utilisable |
Par exemple, pour créer un utilisateur nommé john qui est membre des
groupes wheel , users et audio, identifiez-vous en tant
qu'utilisateur root (seul root peut créer des comptes) et faites :
Exemple de code 2.2 : Ajouter un compte pour une utilisation de tous les jours |
Login: root
Password:
# useradd -m -G users,wheel,audio,tty -s /bin/bash john
# passwd john
Password:
Re-enter password:
|
Si cet utilisateur à besoin d'utiliser le compte root, il peut utiliser su
- pour obtenir les privilèges root. Un autre moyen est d'utiliser le paquet
sudo qui est, s'il est configuré correctement, très sécurisé.
11.b. Facultatif : installation de paquets supplémentaires
Important :
Cette partie est réservée aux utilisateurs de GRP. Les autres utilisateurs
devraient passer cette étape et continuer avec Et que faire ensuite ?
|
Maintenant que votre système a démarré, connectez-vous avec le compte utilisateur
que vous avez créé précédemment (par exemple, john) et utilisez
su - pour obtenir les privilèges root :
Exemple de code 2.1 : Obtenir les privilèges root |
$ su -
Password:
|
Maintenant, nous devons indiquer à Portage que les binaires précompilés se
trouvent sur le second CD-ROM (le « Packages CD » qui contient les
paquets). Tout d'abord, montez celui-ci :
Exemple de code 2.2 : Monter le CD qui contient les paquets précompilés |
# mount /mnt/cdrom
|
Maintenant, indiquez à Portage que les paquets précompilés se trouvent sur le
CD-ROM dans /mnt/cdrom.
Exemple de code 2.3 : Configurer Portage pour utiliser /mnt/cdrom |
# ls /mnt/cdrom
# export PKGDIR="/mnt/cdrom/packages"
# export PKGDIR="/mnt/cdrom"
|
Maintenant, installez les paquets que vous voulez. Le « Packages CD »
contient plusieurs binaires précompilés, par exemple pour KDE :
Exemple de code 2.4 : Installer KDE |
# emerge --usepkg kde
|
Assurez-vous d'installer les binaires maintenant. Quand vous ferez un
emerge --sync pour mettre l'arbre de Portage à jour (vous
apprendrez cela plus tard), les binaires précompilés ne correspondront plus
avec les ebuilds du nouvel arbre de Portage. Vous pouvez essayer
d'empêcher cela en utilisant emerge --usepkgonly à la place de
emerge --usepkg.
Félicitations, votre système est maintenant totalement installé ! Continuez avec
Et que faire ensuite ? pour en apprendre
plus à propos de Gentoo.
12. Et que faire ensuite ?
12.a. Documentation
Félicitations ! Vous avez maintenant un système Gentoo utilisable. Mais que
pouvez-vous en faire ? Quelle sont les options ? Que pouvez-vous
explorer maintenant ? Gentoo donne beaucoup de possibilités à ses
utilisateurs, et donc beaucoup de fonctionnalités documentées (et d'autres qui
le sont moins).
Vous devriez vraiment regarder la partie suivante du manuel Gentoo : Utiliser Gentoo qui explique comment garder
votre système à jour, installer des logiciels supplémentaires, quelles sont les
options de USE, comment le système d'initialisation de Gentoo fonctionne, etc.
Si vous êtes intéressé par l'optimisation de votre système pour une utilisation
graphique ou que vous voulez apprendre comment configurer votre système pour
qu'il soit entièrement fonctionnel en mode graphique, consultez la Documentation Gentoo relative au bureau.
Pour une liste complète de la documentation disponible, regardez notre
Centre de documentation Gentoo.
12.b. Gentoo en Ligne
Vous êtes bien sûr invité sur les Forums
Gentoo (en anglais) et sur le Forum Gentoo
francophone, ou sur un de nos nombreux canaux
IRC Gentoo en anglais, en français, et bien d'autres langues.
Nous avons aussi quelques listes de
diffusion (N.D.T. : surtout en anglais, mais il y a aussi des listes
francophones) ouvertes à tous les utilisateurs. Cette page vous explique comment y
participer.
Nous nous taisons et vous laissons apprécier votre installation :)
B. Utiliser Gentoo
1. Introduction à Portage
1.a. Bienvenue dans le monde de Portage
Portage est probablement l'innovation de Gentoo la plus remarquable en ce qui
concerne la gestion des logiciels. Sa grande flexibilité et ses nombreuses
fonctionnalités font parfois dire de Portage qu'il est le meilleur outil de
gestion des logiciels pour Linux.
Portage a été écrit en Python et en
Bash qui sont tous les deux
des langages scriptés, c'est-à-dire que 100 % du code source est installé
et consultable sur tous les systèmes Gentoo.
La plupart des utilisateurs interagiront avec Portage via la commande
emerge. Ce chapitre n'a pas pour vocation de dupliquer toute
l'information disponible dans la page man de emerge. Pour consulter la
page man, faites :
Exemple de code 1.1 : Consulter la page man de emerge |
$ man emerge
|
1.b. L'arbre Portage
Les ebuilds
Quand nous parlons de paquets, nous parlons des logiciels qui sont disponibles
dans Gentoo grâce à l'arbre de Portage. Celui-ci est un ensemble
d'ebuilds qui sont en fait des fichiers qui donnent toutes les
informations nećessaires à Portage pour installer un logiciel. Par défaut, ces
ebuilds se trouvent dans /usr/portage.
Dès que vous employez Portage pour une action relative aux paquets, il
utilisera les ebuilds de votre système. Il est donc important de maintenir les
ebuilds de votre système à jour pour que Portage puisse installer des nouvelles
versions des logiciels que vous utilisez ou des correctifs de failles de
sécurité.
Mise à jour de l'arbre Portage
L'arbre Portage est généralement mis à jour avec rsync, qui est un outil de transfert de
fichiers incrémental. La mise à jour se fait simplement avec la commande
emerge. L'utilisation de rsync est tout à fait transparente :
Exemple de code 2.1 : Mettre l'arbre Portage à jour |
# emerge --sync
|
Si vous ne pouvez pas utiliser rsync à cause, par exemple, d'un pare-feu, vous
pouvez quand même mettre votre arbre Portage à jour avec la commande
emerge-webrsync. Celle-ci télécharge le dernier instantané de l'arbre
Portage et l'installe sur votre système. Un instantané est généré
automatiquement chaque jour sur les miroirs de Gentoo.
Exemple de code 2.2 : Utiliser emerge-webrsync |
# emerge-webrsync
|
1.c. Gérer vos logiciels
Rechercher un paquet
Pour rechercher un logiciel dans l'arbre Portage, vous pouvez utiliser
emerge. En effet, la commande emerge search affiche la liste des
paquets dont le titre correspond plus ou moins au terme recherché.
Par exemple, pour trouver tous les paquets dont le nom contient
« pdf », vous utiliseriez :
Exemple de code 3.1 : Trouver les paquets dont le nom contient « pdf » |
$ emerge search pdf
|
Si vous voulez aussi chercher dans les descriptions, utilisez l'option
--searchdesc (ou -S) :
Exemple de code 3.2 : Trouver les paquets relatifs à « pdf » |
$ emerge --searchdesc pdf
|
La liste des paquets affichés contient quelques informations utiles pour chaque
paquet. Les libellés sont explicites et nous n'en dirons pas plus ici.
Exemple de code 3.3 : Exemple de résultat d'une recherche |
* net-print/cups-pdf
Latest version available: 1.5.2
Latest version installed: [ Not Installed ]
Size of downloaded files: 15 kB
Homepage: http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/
Description: Provides a virtual printer for CUPS to produce PDF files.
License: GPL-2
|
Installer des logiciels
Une fois que vous avez identifié un paquet que vous voulez installer, il vous
suffit d'utiliser la commande emerge suivie du nom du paquet pour
l'installer. Par exemple, pour installer gnumeric :
Exemple de code 3.4 : Installer gnumeric |
# emerge gnumeric
|
De nombreuses applications dépendent d'autres paquets. Par conséquent, quand
vous installez un logiciel, il se peut que Portage en installe d'autres qui
sont nécessaires au bon fonctionnement du paquet que vous installez. Si vous
voulez connaître la liste des paquets que Portage installerait si vous
installiez un paquet donné, vous pouvez utiliser l'option --pretend. Un
exemple :
Exemple de code 3.5 : Lister les paquets à installer pour gnumeric |
# emerge --pretend gnumeric
|
Quand vous installez un paquet avec Portage, il télécharge les sources
nécessaires et les sauve dans le répertoire
/usr/portage/distfiles. Ensuite, Portage décompresse l'archive,
compile son contenu et installe le logiciel. Si vous voulez télécharger les
sources sans installer le paquet, utilisez l'option --fetchonly. Par
exemple, pour télécharger les sources de gnumeric :
Exemple de code 3.6 : Télécharger les sources de gnumeric |
# emerge --fetchonly gnumeric
|
Supprimer un paquet
Pour désinstaller un paquet de votre système, utilisez emerge unmerge.
Cette commande supprime les fichiers qui avaient été installés par Portage,
mais ne supprime pas les fichiers de configuration si vous les avez modifiés
après l'installation. Cela vous permet de réutiliser vos fichiers de
configuration si vous réinstallez le paquet plus tard.
Cependant, un avertissement est de mise :Portage ne
vérifie pas que le paquet que vous supprimez est nécessaire au bon
fonctionnement d'un autre paquet. Toutefois, un message s'affichera si vous
essayez de supprimer un paquet important dont la disparition causerait de
graves problèmes.
Exemple de code 3.7 : Supprimer gnumeric de votre système |
# emerge unmerge gnumeric
|
Quand vous supprimez un paquet, les paquets dont il dépend qui avaient été
installés initialement ne seront pas désinstallés automatiquement. Pour que
Portage recherche les dépendances qui peuvent être supprimées, utilisez
l'option depclean. Nous en reparlerons plus loin.
Mettre votre système à jour
Pour maintenir votre système en bon état et disposer des correctifs de failles
de sécurité, vous devriez le mettre à jour régulièrement. Puisque Portage ne se
base que sur les ebuilds de votre machine, vous devez vous assurez que votre
arbre Portage est à jour. Une foir votre arbre Portage à jour, vous pouvez
mettre votre système à jour avec la commande emerge --update
world :
Exemple de code 3.8 : Mettre votre système à jour |
# emerge --update world
|
Portage recherche alors des versions plus récentes des logiciels que vous avez
installés explicitement et uniquement ceux-là. Portage ignorera les paquets qui
ont été installés automatiquement pour qu'un paquet que vous avez demandé
puisse être installé. Si vous voulez que Portage prenne ces paquets en
considération, utilisez l'option --deep :
Exemple de code 3.9 : Mettre tout votre système à jour |
# emerge --update --deep world
|
Si vous avez modifié les otions de la variable
USE, vous devriez également ajouter l'option --newuse pour que
Portage vérifie si certains paquets ne doivent pas être recompilés. Par
exemple :
Exemple de code 3.10 : Une mise à jour complète |
# emerge --update --deep --newuse world
|
Les paquets sans contenu
Certains paquets ne contiennent aucun logiciel, mais servent à installer un
ensemble de paquets. Par exemple, le paquet kde sert à installer un
environnement KDE complet et provoque l'installation d'un grand nombre de
paquets relatifs à KDE.
Supprimer un tel paquet avec la commande emerge unmerge n'aurait
aucune influence sur votre système puisque tous les paquets dépendants resteraient installés.
Portage permet de supprimer les dépendances orphelines, mais, pour cela, vous
devez d'abord mettre votre système complètement à jour en tenant compte
d'éventuelles modifications apportées à votre variable USE. Vous pouvez ensuite
utiliser emerge depclean pour supprimer les dépendances orphelines. Par
après, vous devriez recompiler les applications qui étaient liées dynamiquement
avec les paquets que vous venez de supprimer. Les paquets désinstallés ne sont
plus nécessaires à la bonne marche de ces applications.
Tout cela peut être résumé en trois commandes :
Exemple de code 3.11 : Supprimer les dépendances orphelines |
# emerge --update --deep --newuse world
# emerge depclean
# revdep-rebuild
|
La commande revdep-rebuild fait partie du paquet
gentoolkit ; n'oubliez pas de l'installer :
Exemple de code 3.12 : Installer gentoolkit |
# emerge gentoolkit
|
1.d. Quand Portage se plaint...
À propos des « SLOTs », paquets virtuels, branches, architectures et profils
Comme nous l'avons déjà dit, Portage est très puissant et offre de nombreuses
fonctionnalités que d'autres gestionnaires de logiciels n'ont pas. Survolons
les différents aspects de Portage.
Portage permet à plusieurs versions d'un même paquet de cohabiter sur le même
système. D'autres distributions ont tendance à renommer les paquets en fonction
de la version (par exemple freetype et freetype2) alors que
Portage utilise des « SLOTs ». Un ebuild peut placer chaque version
du logiciel dans un slot et des versions qui sont dans des slots différents
peuvent être installées en même temps. Par exemple, le paquet freetype a
des versions avec SLOT="1" et SLOT="2".
Dans certains cas, différents paquets installent la même fonctionnalité. Par
exemple, metalogd, sysklogd et syslog-ng gèrent tous le
jounal du système, mais un logiciel qui dépendrait du journal système ne peut
pas dépendre directement de metalogd ou d'un autre. Le système doit
aussi fonctionner si l'utilisateur a choisi un autre gestionnaire de journal.
Portage permet de définir des paquets virtuels. Les trois paquets cités
ci-dessus fournissent la fonctionnalité virtual/syslog et les paquets
qui ont besoin d'un journal système dépendent de celle-ci.
Portage classe les paquets dans plusieurs branches. Par défaut, votre système
n'accepte que les paquets que Gentoo considère stables. Bien souvent,
quand une nouvelle version d'un logiciel sort, elle est d'abord ajoutée à la
branche dite « instable », ce qui signifie que plus de tests sont
nécessaires avant de considérer le logiciel comme stable. Vous verrez les
paquets dits instables dans votre arbre, mais Portage ne les installera pas
automatiquement avant qu'ils ne soient stabilisés.
Certains logiciels ne sont disponibles que pour certaines architectures ou ne
fonctionnent pas du tout sur d'autres. Parfois, un logiciel a besoin de plus de
tests sur une architecture donnée ou les développeurs responsables d'un paquet
n'ont pas la possibilité de le valider pour d'autres processeurs.
Chaque installation de Gentoo appartient à un profil qui contient la
liste des paquets qui forment un système minimal.
Paquets bloqués
Exemple de code 4.1 : Avertissement à propos d'un paquet bloquant (avec --pretend) |
[blocks B ] gnome-base/bonobo-activation (from pkg gnome-base/libbonobo-2.4.0)
|
Exemple de code 4.2 : Avertissement à propos d'un paquet bloquant (sans --pretend) |
!!! 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 ebuilds contiennent des informations relatives aux dépendances des
logiciels entre eux. Il y a deux sortes de dépendances : les dépendances à
l'installation définies par DEPEND et les dépendances à l'utilisation
définies dans RDEPEND. Un blocage peut se produire quand un paquet est
considéré incompatible avec une dépendance.
Pour résoudre un tel blocage, vous pouvez soit ne pas installer le logiciel en
question, soit désinstaller le paquet qui bloque. Dans l'exemple ci-dessus,
vous auriez le choix entre ne pas installer libbonobo ou d'abord
désinstaller bonobo-activation.
Les paquets masqués
Exemple de code 4.3 : Avertissement à propos de paquets masqués |
!!! all ebuilds that could satisfy "bootsplash" have been masked.
|
Exemple de code 4.4 : Avertissement à propos de paquets masqués avec la raison |
!!! possible candidates are:
- gnome-base/gnome-2.8.0_pre1 (masked by: ~x86 keyword)
- lm-sensors/lm-sensors-2.8.7 (masked by: -sparc keyword)
- sys-libs/glibc-2.3.4.20040808 (masked by: -* keyword)
- dev-util/cvsd-1.0.2 (masked by: missing keyword)
- media-video/ati-gatos-4.3.0 (masked by: package.mask)
- sys-libs/glibc-2.3.2-r11 (masked by: profile)
|
Quand vous essayez d'installer un paquet qui n'est pas disponible pour votre
système, vous recevez ce type d'erreur. Vous devriez essayer d'installer une
autre application qui est disponible pour votre environnement ou attendre que
le paquet devienne disponible. Un paquet est toujours masqué pour une bonne
raison :
-
~arch keyword indique que le paquet n'a pas été suffisamment testé
et n'est pas encore dans la branche stable. Vous devriez essayer à nouveau
quelques jours ou quelques semaines plus tard.
-
-arch keyword ou -* keyword indique que l'application ne
fonctionne pas sur votre architecture. Si vous pensez le contraire,
veuillez le signaler via bugzilla.
-
missing keyword indique que l'application n'a pas été testée sur
votre architecture. Vous pouvez demander à l'équipe en charge de celle-ci
de tester l'application qui vous intéresse ou la tester vous-même et
soumettre vos résultats sur bugzilla.
-
package.mask indique que le paquet est cassé, instable, voire pire
et qu'il a été masqué pour que vous ne l'utilisiez pas.
-
profile indique que le paquet n'est pas compatible avec votre
profil. L'application pourrait abîmer votre système.
Dépendances manquantes
Exemple de code 4.5 : Avertissement à propos de dépendances manquantes |
emerge: there are no ebuilds to satisfy ">=sys-devel/gcc-4.2-r4".
!!! Problem with ebuild sys-devel/gcc-3.4.2-r2
!!! Possibly a DEPEND/*DEPEND problem.
|
L'application que vous essayez d'installer dépend d'autres paquets qui ne sont
pas disponibles pour votre système. Veuillez vérifier sur bugzilla si le problème est déjà connu et
veuillez le signaler dans le cas contraire. À moins que vous ne mélangiez les
branches stables et instables, cela de doit pas arriver et peut être considéré
comme un bogue.
Noms d'ebuilds ambigus
Exemple de code 4.6 : Avertissement à propos de noms d'ebuilds ambigus |
!!! The short ebuild name "aterm" is ambiguous. Please specify
!!! one of the following fully-qualified ebuild names instead:
dev-libs/aterm
x11-terms/aterm
|
Le paquet que vous essayez d'installer a un nom qui désigne plusieurs paquets
dans des catégories différentes. Vous devez mentionner la catégorie du paquet
que vous voulez installer. Portage affiche les différentes possibilités.
Dépendances circulaires
Exemple de code 4.7 : Avertissement à propos de dépendances circulaires |
!!! Error: circular dependencies:
ebuild / net-print/cups-1.1.15-r2 depends on ebuild / app-text/ghostscript-7.05.3-r1
ebuild / app-text/ghostscript-7.05.3-r1 depends on ebuild / net-print/cups-1.1.15-r2
|
Deux (ou plus) paquets dépendent l'un de l'autre et ne peuvent pas être
installés. Il est très probable que cela soit un bogue. Veuillez synchroniser
votre arbre Portage. Si le problème persiste, veuillez vérifier si le problème
est connu dans bugzilla et le signaler
dans le cas contraire.
Problèmes lors du téléchargement
Exemple de code 4.8 : Avertissement à propos d'un problème au téléchargement |
!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
!!! Some fetch errors were encountered. Please see above for details.
|
Portage n'a pas pu télécharger les sources de l'application et essaie
éventuellement d'installer les autres paquets que vous auriez spécifiés avec la
commande emerge. Ce problème peut être dû à un miroir qui n'est pas encore
synchronisé ou à un ebuild qui référence un serveur de sources incorrect. Il se
peut aussi que le serveur soit momentanément indisponible.
Veuillez réessayer après quelques heures.
Protection des paquets du profil système
Exemple de code 4.9 : Avertissement à propos du profil système |
!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage'
!!! This could be damaging to your system.
|
Vous avez demandé à Portage de supprimer un paquet qui fait partie du profil
système. Le supprimer pourrait rendre votre système inutilisable.
2. La variable USE
2.a. Que sont les paramètres USE ?
Les notions sous-jacentes aux paramètres USE
Losque vous installez Gentoo (ou n'importe quelle autre distribution, voire
système d'exploitation), vous faites des choix qui dépendent de
l'environnement dans lequel vous travaillez. La configuration d'un serveur est
différente de celle d'une station de travail. Une machine destinée aux jeux
diffère d'une station de travail pour du rendu 3D.
Cela s'applique non seulement au choix des paquets que vous comptez installer,
mais aussi aux fonctionnalités que chaque paquet devrait supporter. Si vous
n'avez pas besoin d'OpenGL, pourquoi prendre la peine d'installer OpenGL et de
construire la plupart de vos paquets avec support pour OpenGL ? Si vous ne
souhaitez pas utiliser KDE, pourquoi compiler des paquets avec le support KDE
alors qu'ils fonctionneraient parfaitement sans ce support ?
Pour aider les utilisateurs à déterminer ce qu'ils veulent installer ou activer,
nous souhaitions que l'utilisateur spécifie son environnement de manière simple.
Il est ainsi obligé de décider ce qu'il veut vraiment, et cela facilite la tâche
de Portage, notre gestionnaire de paquets, pour prendre les décisions utiles.
Définition des paramètres USE
C'est ici qu'interviennent les paramètres USE. Un tel paramètre est un mot-clé
qui définit le support et les dépendances pour un concept donné. Si vous
définissez un paramètre USE donné, Portage saura que vous voulez avoir le support
correspondant au mot-clé choisi. Bien entendu, cela affecte aussi les
dépendances des paquets.
Considérons un exemple spécifique : le mot-clé kde. Si vous n'avez pas ce
mot-clé dans votre variable USE, tous les paquets qui offrent un support
optionnel pour KDE seront compilés sans ce support. Tous les
paquets qui possèdent des dépendances KDE optionnelles seront installés
sans installer les bibliothèques KDE (en tant que dépendances). Si vous
avez le mot-clé kde, alors ces paquets seront compilés avec le
support KDE et les bibliothèques KDE seront installées en tant que dépendances.
Définir correctement ces mots-clés vous donnera finalement un système adapté
spécifiquement à vos besoins.
Quels sont les paramètres USE disponibles ?
On distingue deux types de paramètres USE : les paramètres globaux et
locaux.
-
Un paramètre USE global est utilisé par plusieurs paquets dans
l'ensemble du système. C'est ce que la plupart des gens considèrent comme
les paramètres USE.
-
Un paramètre USE local n'est utilisé que par un seul paquet et n'est
utilisé que pour des décisions spécifiques à ce paquet.
Une liste des paramètres USE peut être trouvée en ligne ou localement dans
/usr/portage/profiles/use.desc. Un court extrait (très incomplet) :
Exemple de code 1.1 : Court extrait des paramètres USE disponibles |
gtk - Adds support for x11-libs/gtk+ (The GIMP Toolkit)
gtk2 - Use gtk+-2.0.0 over gtk+-1.2 in cases where a program supports both.
gtkhtml - Adds support for gnome-extra/gtkhtml
guile - Adds support for dev-util/guile (interpreter for Scheme)
icc - Use the Intel C++ Compiler if the package supports it
icc-pgo - Enable PGO data generation or use when use icc.
imap - Adds support for IMAP
|
La liste des paramètres USE locaux se trouve dans le fichier
/usr/portage/profiles/use.local.desc.
2.b. Utiliser les paramètres USE
Déclarer des paramètres USE permanents
Nous allons maintenant vous expliquer comment déclarer des paramètres USE, en
espérant que vous soyez convaincu de leur importance.
Comme mentionné plus haut, tous les paramètres USE sont déclarés dans la
variable USE. Pour permettre aux utilisateurs de trouver et choisir
facilement les paramètres USE, nous fournissons une configuration
par défaut de USE. Cette configuration est un ensemble de paramètres
USE dont nous pensons qu'ils sont communément employés par les utilisateurs
de Gentoo. Cette configuration par défaut est déclarée dans le fichier
/etc/make.profile/make.defaults. Jetons-y un coup d'oeil :
Exemple de code 2.1 : Variable USE de /etc/make.profile/make.defaults sur un système x86 |
USE="x86 oss apm arts avi berkdb crypt cups encode foomaticdb gdbm gif gpm
gtk gtk2 imlib jpeg kde gnome libg++ libwww mad mikmod motif mpeg ncurses
nls oggvorbis opengl pam pdflib png python qt quicktime readline sdl
slang spell ssl svga tcpd truetype X xml2 xmms xv zlib"
|
Comme vous pouvez le voir, cette variable contient déjà un bon nombre de
mots-clés. Ne modifiez pas le fichier
/etc/make.profile/make.defaults pour adapter la variable USE
à vos besoins : les changements effectués dans ce fichier seront effacés
lorsque vous mettrez Portage à jour !
Pour modifier cette configuration par défaut, vous devrez ajouter ou enlever des
mots-clés dans la variable USE. Cela est fait de manière globale en
définissant la variable USE dans /etc/make.conf. Dans cette
variable, vous ajouterez les paramètres USE que vous désirez et
enlèverez ceux que vous ne voulez pas. Cette dernière action est réalisée en
préfixant le mot-clé d'un signe moins ("-").
Par exemple, pour enlever le support pour KDE et QT, et ajouter le support pour
ldap, vous pourriez définir USE comme suit dans
/etc/make.conf :
Exemple de code 2.2 : Exemple de configuration USE dans /etc/make.conf |
USE="-kde -qt ldap"
|
Déclarer des paramètres USE spécifiques à des paquets
Parfois, vous voudrez déclarer certains paramètres USE pour une ou plusieurs
applications particulières mais pas pour l'ensemble du système. Pour cela, vous
devez créer le répertoire /etc/portage (s'il n'existe pas déjà) et
éditer le fichier /etc/portage/package.use.
Par exemple, si vous ne voulez pas du support global berkdb mais si vous
le voulez tout de même pour mysql, vous devrez y ajouter la ligne
suivante :
Exemple de code 2.3 : Exemple de /etc/portage/package.use |
dev-db/mysql berkdb
|
Vous pouvez également désactiver explicitement un paramètre USE
pour une application particulière. Par exemple, si vous ne voulez pas du support
java dans PHP :
Exemple de code 2.4 : Second exemple de /etc/portage/package.use |
dev-php/php -java
|
Déclarer des paramètres USE temporaires
Il peut arriver que vous ne souhaitiez définir un paramètre USE donné qu'en une
seule occasion. Plutôt qu'éditer /etc/make.conf deux fois (pour
faire puis défaire les changements), vous pouvez simplement déclarer USE comme
une variable d'environnement. Gardez toutefois à l'esprit que cette
modification de l'environnement sera probablement perdue lorsque vous
réinstallerez ou mettrez à jour cette application (soit explicitement, soit
lors d'une mise à jour du système).
Par exemple, nous allons retirer temporairement le support java de notre
configuration USE pendant l'installation de mozilla.
Exemple de code 2.5 : Utilisation de USE comme une variable d'environnement |
# USE="-java" emerge mozilla
|
Héritage des paramètres USE
Certains paquets ne se contentent pas de lire les paramètres USE, mais en
définissent eux-mêmes. Lorsque vous installez un tel paquet, le paramètre USE
qu'il fournit est ajouté à votre configuration USE. Pour voir la liste des
paquets qui fournissent un nouveau paramètre USE, consultez
/etc/make.profile/use.defaults :
Exemple de code 2.6 : Extrait de /etc/make.profile/use.defaults |
gnome gnome-base/gnome
gtk x11-libs/gtk+
qt x11-libs/qt
kde kde-base/kdebase
motif x11-libs/openmotif
|
Ordre de priorité
Les différentes configurations de USE se conforment évidemment à un certain
ordre de priorité. Vous ne souhaitez sans doute pas déclarer USE="-java"
pour vous rendre compte après coup que java était déclaré malgré tout.
Les priorités dans les déclarations USE sont ordonnées comme suit (la première
déclaration a la plus faible priorité) :
-
Déclaration par défaut dans /etc/make.profile/make.defaults
-
Déclaration héritée si un paquet de
/etc/make.profile/use.defaults est installé
-
Déclaration par l'utilisateur dans /etc/make.conf
-
Déclaration par l'utilisateur dans /etc/portage/package.use
-
Déclaration par l'utilisateur comme une variable d'environnement
Pour voir la configuration finale de USE telle qu'elle est vue par
Portage, exécutez emerge info. Cela listera toutes les variables
significatives (dont la variable USE) avec leur contenu tel qu'il est vu
par Portage.
Exemple de code 2.7 : Exécuter emerge info |
# emerge info
|
Reconfigurer votre système pour tenir compte des options USE
Si vous avez modifié vos options de la variable USE et que vous voulez
reconfigurer votre système pour tenir compte de ces nouvelles options, utilisez
l'option --newuse :
Exemple de code 2.8 : Recompiler tout le système |
# emerge --update --deep --newuse world
|
Ensuite, utilisez l'option depclean pour supprimer les dépendances
conditionnelles qui ne seraient plus utilisées.
Attention :
Exécuter emerge depclean est une opération risquée qui ne devrait pas
être lancée à la légère. Vérifiez bien que la liste des paquets qui vont être
supprimés ne contient pas de paquet dont vous avez encore besoin. Dans
l'exemple ci-dessous, nous utilisons l'option -p pour afficher la liste
sans rien supprimer.
|
Exemple de code 2.9 : Supprimer les paquets inutiles |
# emerge -p depclean
|
Quand cette opération est terminée, lancez revdep-rebuild pour
recompiler les applications qui avaient été liées dynamiquement avec les
paquets que vous venez de supprimer. La commande revdep-rebuild fait
partie du paquet gentoolkit ; n'oubliez pas de l'installer.
2.c. Paramètres USE spécifiques à un paquet
Savoir quels paramètres USE influencent un paquet
Prenons l'exemple de mozilla : à quels paramètres USE est-il
sensible ? Pour le savoir, nous utilisons emerge avec les options
--pretend et --verbose :
Exemple de code 3.1 : Afficher les paramètres USE qui influencent un paquet |
# emerge --pretend --verbose mozilla
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild N ] net-www/mozilla-1.5-r1 +java +crypt -ipv6 -gtk2 +ssl +ldap
+gnome -debug +mozcalendar -mozaccess -mozxmlterm -moznoirc -moznomail
-moznocompose -moznoxft
|
emerge n'est pas le seul outil utilisable à cette fin. En effet, nous
disposons d'un outil dédié pour obtenir des informations sur les paquets. Il
s'appelle etcat et appartient au paquet gentoolkit. Commencez par
installer gentoolkit :
Exemple de code 3.2 : Installer gentoolkit |
# emerge gentoolkit
|
Exécutez maintenant etcat avec l'argument uses pour afficher les
paramètres USE d'un paquet donné. Par exemple, pour le paquet gnumeric :
Exemple de code 3.3 : Utiliser etcat pour afficher les paramètres USE |
# etcat uses gnumeric
[ Colour Code : set ]
[ Legend : (U) Col 1 - Current USE flags ]
[ : (I) Col 2 - Installed With USE flags ]
U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ]
- - : Adds GNU Data Access (CORBA wrapper) support for gnumeric
- - : unknown
+ + python : Adds support/bindings for the Python language
+ + bonobo : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)
|
3. Portage et ses fonctionnalités
3.a. Les caractéristiques de Portage
Portage offre un ensemble de fonctionnalités qui vous aident à mieux utiliser
Gentoo. Certaines fonctionnalités sont basées sur des outils tiers qui
permettent d'améliorer les performances, la fiabilité, la sécurité, etc.
Pour activer ou désactiver certaines fonctionnalités, vous devez modifier la
variable FEATURES dans le fichier /etc/make.conf. Souvent,
vous devrez aussi installer l'outil requis pour utiliser la fonctionnalité
souhaitée.
Toutes les fonctionnalités disponibles ne sont pas reprises ici. Veuillez lire
la page man de make.conf pour en savoir plus.
Exemple de code 1.1 : Lire la page man de make.conf |
$ man make.conf
|
Pour connaître les fonctionnalités qui sont actives sur votre système, utilisez
la commande emerge info et regardez le contenu de la variable
« FEATURES ».
Exemple de code 1.2 : Afficher les fonctionnalités actives |
$ emerge info | grep FEATURES
|
3.b. Compilation distribuée
Utiliser distcc
distcc est un programme qui permet de distribuer des compilations sur
plusieurs machines, pas nécessairement identiques, d'un réseau. Le client
distcc envoie toutes les données nécessaires aux serveurs distcc (qui
exécutent distccd) disponibles afin qu'ils puissent compiler des parties
du code source au profit du client. Le résultat est une compilation plus
rapide.
Vous trouverez une description plus élaborée de distcc (et des
informations sur la manière de le faire fonctionner avec Gentoo) dans notre
Documentation Gentoo pour distcc.
Installation de distcc
Distcc est fourni avec une interface graphique qui permet de suivre les tâches
de compilation que votre ordinateur envoie. Si vous utilisez Gnome, ajoutez
« gnome » à votre variable USE. Mais si vous n'utilisez pas
Gnome et souhaitez tout de même avoir une interface graphique, vous pouvez
ajouter « gtk » à votre variable USE.
Exemple de code 2.1 : Installer distcc |
# emerge distcc
|
Activer le support distcc pour Portage
Ajoutez le mot-clé distcc à la variable FEATURES du fichier
/etc/make.conf. Ensuite, modifiez la variable MAKEOPTS
pour y ajouter -jX où X est le nombre de processeurs qui
exécutent distccd (l'hôte actuel inclus) plus un. Cette valeur
donne en général les meilleurs résultats, mais vous pouvez en essayer d'autres.
Ensuite, exécutez distcc-config et entrez la liste des serveurs distcc
disponibles. Pour donner un exemple simple, nous supposerons que les serveurs
distcc disponibles sont 192.168.1.102 (l'hôte actuel),
192.168.1.103 et 192.168.1.104 (deux hôtes
« distants ») :
Exemple de code 2.2 : Configurer distcc pour qu'il utilise trois serveurs distcc |
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"
|
Bien entendu, n'oubliez pas de lancer le démon distccd :
Exemple de code 2.3 : Lancer le démon distccd |
# rc-update add distccd default
# /etc/init.d/distccd start
|
3.c. Utiliser un cache pour la compilation
À propos de ccache
ccache est un cache rapide pour compilateur. Lorsque vous compilez un
programme, il mettra les résultats intermédiaires en cache afin que,
s'il vous arrive de recompiler le même programme, le temps de compilation soit
largement réduit. Avec des applications communes, cela peut entraîner des
compilations 5 à 10 fois plus rapides.
Si vous êtes intéressé par le fonctionnement interne de ccache, veuillez
visiter le site de ccache.
Installation de ccache
Utilisez la commande emerge ccache pour installer ccache :
Exemple de code 3.1 : Installer ccache |
# emerge ccache
|
Activer le support ccache pour Portage
Ajoutez le mot-clé ccache à la variable FEATURES du fichier
/etc/make.conf. Ensuite, ajoutez la variable CCACHE_SIZE
qui définit la taille par défaut du cache utilisé par ccache. Une valeur de
2 Go est recommandée.
Exemple de code 3.2 : Editer CCACHE_SIZE dans /etc/make.conf |
CCACHE_SIZE="2G"
|
Pour vérifier que ccache fonctionne, vous pouvez exécuter ccache
-s pour afficher les statistiques de ccache :
Exemple de code 3.3 : Afficher les statistiques de ccache |
# ccache -s
|
Utilisation de ccache en dehors de Portage
Si vous souhaitez utiliser ccache pour les compilations en dehors de celles de
Portage, vous pouvez ajouter /usr/lib/ccache/bin au début de votre
variable PATH (ou tout au moins avant /usr/bin). Pour cela,
éditez le fichier /etc/env.d/00basic :
Exemple de code 3.4 : Modifier le fichier /etc/env.d/00basic |
PATH="/usr/local/bin:/opt/bin:/usr/lib/ccache/bin"
|
3.d. Paquets binaires
Créer des paquets binaires
Nous avons déjà parlé de l'utilisation de paquets précompilés, mais comment
crée-t-on son propre paquet précompilé ?
Si le paquet est déjà installé, vous pouvez utiliser la commande
quickpkg. Si ce n'est pas le cas, utilisez les options
--buildpkg ou --buildpkgonly avec la commande emerge. La
deuxième option prépare un paquet binaire sans l'installer sur votre machine.
Si vous souhaitez que Portage construise par défaut des paquets binaires pour
tous les paquets que vous installez sur votre système, vous pouvez mettre le
mot-clé builpkg dans la variable FEATURES dans le fichier
/etc/make.conf.
Vous trouverez plus de détails à propos de la création de paquets binaires dans
la documentation de catalyst (en anglais) : Catalyst Reference Manual
et Catalyst
Howto.
Installer des paquets précompilés
Bien que Gentoo ne fournisse pas de système centralisé de distribution de
paquets binaires, rien ne vous empêche d'en créer un. Vous pourriez très bien
stocker tous vos paquets binaires sur un serveur et utiliser celui-ci pour
mettre plusieurs machines à jour. Pour utiliser un tel serveur, vous devez le
définir dans la variable PORTAGE_BINHOST. Si vous avez stocké vos
paquets sur un serveur ftp ftp://buildhost/gentoo, utilisez :
Exemple de code 4.1 : Définir PORTAGE_BINHOST dans /etc/make.conf |
PORTAGE_BINHOST="ftp://buildhost/gentoo"
|
Quand vous voulez utliser un paquet binaire pour installer une application,
spécifiez l'option --getbinpkg en plus de --usepkg avec la
commande emerge. La première option indique à Portage de télécharger
le paquet binaire depuis le serveur que vous avez défini plus tôt et la
seconde indique d'utiliser le même paquet binaire plutôt que de compiler
l'application.
Par exemple, pour installer gnumeric à partir de paquets binaires
précompilés :
Exemple de code 4.2 : Installer gnumeric en utilisant un paquet précompilé |
# emerge --usepkg --getbinpkg gnumeric
|
La page man de emerge décrit l'utilisation des paquets précompilés plus
en détail.
Exemple de code 4.3 : Lire la page man de emerge |
$ man emerge
|
4. Les scripts d'initialisation
4.a. Les niveaux d'exécution
Démarrer votre système
Quand vous démarrez votre système, vous voyez beaucoup de texte défiler à
l'écran. Vous remarquerez sans doute que ce texte est le même à chaque
démarrage. La séquence d'actions qui se déroule devant vos yeux s'appelle la
séquence de démarrage et elle est définie de façon plus ou moins
statique.
D'abord, votre chargeur de démarrage charge l'image du noyau que vous avez
définie dans son fichier de configuration et ensuite, il exécute ce noyau. Ce
dernier s'initialise, démarre les tâches spécifiques au noyau et lance le
processus init.
Ce processus monte les systèmes de fichiers définis dans
/etc/fstab et exécute quelques scripts placés dans le répertoire
/etc/init.d qui, à leur tour, démarrent les services nécessaires
au bon fonctionnement du système.
Finalement, quand tous les scripts ont été exécutés, init active les
terminaux (en général, les consoles virtuelles que vous obtenez avec les
touches Alt-F1, Alt-F2, etc.) et attache un processus appelé
agetty à chacun. Ce processus vous permet de vous identifier sur ces
terminaux avec login.
Les scripts d'initialisation
En fait, init n'exécute pas les scripts du répertoire
/etc/init.d n'importe comment. De plus, il n'exécute pas non plus
tous les scripts, mais seulement ceux qui doivent l'être. Les scripts à
exécuter sont définis dans /etc/runlevels.
Le processus init exécute d'abord les scripts de
/etc/init.d vers lesquels un lien symbolique existe dans
/etc/runlevels/boot. Les scripts sont généralement exécutés par
ordre alphabétique, mais certains contiennent des dépendances qui indiquent
quels scripts doivent être exécutés en premier.
Quand tous les scripts liés dans /etc/runlevels/boot ont été
exécutés, init poursuit avec ceux liés dans
/etc/runlevels/default. Ici aussi, les scripts sont généralement
exécutés par ordre alphabétique, sauf quand ils contiennent des informations
sur des dépendances qui spécifient une séquence d'exécution particulière.
Comment init fonctionne-t-il ?
Évidemment, init ne décide pas tout seul de ce qu'il doit faire. Il a
besoin d'un fichier de configuration qui lui indique quelles actions il doit
effectuer. Ce fichier est /etc/inittab.
Dans la séquence de démarrage que nous venons d'expliquer, nous avons dit que
la première action de init était de monter les systèmes de fichiers. La
ligne du fichier /etc/inittab qui provoque cela est la
suivante :
Exemple de code 1.1 : La ligne d'initialisation du système dans /etc/inittab |
si::sysinit:/sbin/rc sysinit
|
En fait, cette ligne indique à init qu'il doit exécuter /sbin/rc
sysinit pour initialiser le système. C'est le script /sbin/rc
qui fait vraiment le travail d'initialisation et pas init qui ne fait
que déléguer les tâches.
Ensuite, init exécute tous les scripts vers lesquels un lien symbolique
est défini dans /etc/runlevels/boot. La ligne suivante provoque
cela :
Exemple de code 1.2 : L'initialisation du système, suite |
rc::bootwait:/sbin/rc boot
|
Encore une fois, le script rc fait le travail. Remarquez que l'option
boot passée au script rc correspond au nom du sous-répertoire qui
se trouve dans /etc/runlevels.
Ensuite, init lit son fichier de configuration pour savoir quel
runlevel il doit exécuter (N.D.T. : un « runlevel », ou
niveau d'exécution, correspond à l'état dans lequel il faut amener la machine).
La ligne suivante définit le niveau d'exécution :
Exemple de code 1.3 : La ligne initdefault |
id:3:initdefault:
|
Dans ce cas (la majorité des utilisateurs de Gentoo sont dans ce cas), le
niveau d'exécution est le numéro 3. Avec ce numéro, init trouve ce qu'il
doit exécuter pour lancer le niveau d'exécution 3 :
Exemple de code 1.4 : Les définitions des niveaux d'exécution |
l0:0:wait:/sbin/rc shutdown
l1:S1:wait:/sbin/rc single
l2:2:wait:/sbin/rc nonetwork
l3:3:wait:/sbin/rc default
l4:4:wait:/sbin/rc default
l5:5:wait:/sbin/rc default
l6:6:wait:/sbin/rc reboot
|
La ligne qui définit le niveau 3 utilise à nouveau le script rc pour
démarrer les services, cette fois avec le paramètre default. Remarquez
que, encore une fois, le paramètre correspond au nom du sous-répertoire dans
/etc/runlevels.
Quand le script rc a terminé, init trouve la liste des consoles
virtuelles à activer et quelles commandes il doit utiliser dans son fichier de
configuration :
Exemple de code 1.5 : La définition des consoles virtuelles |
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
|
Qu'est-ce qu'un niveau d'exécution ?
Vous avez constaté que init numérote les niveaux d'exécution qu'il doit
activer. Un niveau d'exécution définit un état dans lequel votre système se
trouve et contient les scripts nécessaires pour entrer dans ou quitter cet
état.
Dans Gentoo, sept niveaux d'exécution sont définis :trois internes et
quatre définis par l'utilisateur. Les niveaux d'exécution internes sont
sysinit, shutdown et reboot et sont utilisés
respectivement pour initialiser, éteindre et redémarrer le système.
Les niveaux d'exécution définis par l'utilisateur sont ceux qui correspondent à
un sous-répertoire dans /etc/runlevels : boot,
default, nonetwork et single. Le niveau
d'exécution boot est utilisé pour démarrer tous les services
système utilisés par les autres niveaux d'exécution. Les autres niveaux
d'exécution se différencient par les services qu'ils activent :
default est utilisé en temps normal, nonetwork est
utilisé quand aucune connexion réseau n'est souhaitée et single
est utilisé pour résoudre d'éventuels problèmes du système.
Utiliser les scripts d'initialisation
Les scripts que rc exécute sont appelés des scripts
d'initialisation. Chaque script peut être exécuté avec les options
start, stop, restart, pause, zap,
status, ineed, iuse, needsme, usesme ou
broken.
Pour démarrer, arrêter ou relancer un service (et les autres services
nécessaires éventuels), utilisez start, stop et restart.
Exemple de code 1.6 : Démarrer postfix |
# /etc/init.d/postfix start
|
Note :
Seuls les services qui ont besoin du service spécifié sont arrêtés ou
redémarrés. Les services qui l'utilisent ne sont pas affectés.
|
Pour stopper un service sans toucher aux services qui l'utilisent, utilisez
l'option pause :
Exemple de code 1.7 : Stopper postfix sans toucher aux services qui l'utilisent |
# /etc/init.d/postfix pause
|
Pour afficher le statut d'un service (démarré, arrêté, en pause), utilisez
l'option status :
Exemple de code 1.8 : Afficher le statut du service postfix |
# /etc/init.d/postfix status
|
Si le système affirme qu'un service est actif, mais que vous savez qu'il
ne l'est pas, utilisez l'option zap pour réinitialiser son statut à
« arrêté ».
Exemple de code 1.9 : Réinitialiser le statut de postfix |
# /etc/init.d/postfix zap
|
Vous pouvez aussi afficher les services dont un service a besoin avec les
options iuse ou ineed. Avec l'option ineed, les services
réellement nécessaires sont affichés. Avec iuse, ce sont les services
qui peuvent être utilisés sans être indispensables qui sont affichés.
Exemple de code 1.10 : Afficher la liste des services dont Postfix a besoin |
# /etc/init.d/postfix ineed
|
De la même façon, vous pouvez afficher la liste des services qui ont besoin
(needsme) ou qui utilisent (usesme) un service particulier :
Exemple de code 1.11 : Afficher la liste des services qui ont besoin de Postfix |
# /etc/init.d/postfix needsme
|
Enfin, vous pouvez aussi demander la liste des services requis qui
manquent :
Exemple de code 1.12 : Afficher la liste des services manquants dont Postfix a besoin |
# /etc/init.d/postfix broken
|
4.b. Utiliser rc-update
Qu'est-ce que rc-update ?
Gentoo construit un arbre de dépendances pour déterminer l'ordre d'exécution
des services. Cela est loin d'être trivial et nous avons donc créé des outils
qui facilitent l'administration des niveaux d'exécution et des scripts
d'initialisation.
La commande rc-update permet d'ajouter ou d'enlever un script d'un
niveau d'exécution. Cette commande utilise automatiquement le script
depscan.sh qui reconstruit l'arbre des dépendances.
Ajouter et enlever des services
Vous avez déjà ajouté des scripts d'initialisation au niveau d'exécution
« default » pendant l'installation de Gentoo. Vous ignoriez alors la
signification de « default », mais maintenant, vous la connaissez. Le
script rc-update a besoin d'un second argument qui spécifie l'action à
effectuer : add, del ou show pour respectivement
ajouter, supprimer ou afficher.
Pour ajouter ou supprimer un service, ajoutez simplement add ou
del à la commande rc-update et spécifiez ensuite le nom du script
d'initialisation et le niveau d'exécution. Par exemple :
Exemple de code 2.1 : Supprimer Postfix du niveau d'exécution « default » |
# rc-update del postfix default
|
La commande rc-update show affiche la liste des scripts d'initialisation
disponibles et les niveaux d'exécution dans lesquels ils ont été ajoutés :
Exemple de code 2.2 : Afficher la liste des scripts d'initialisation |
# rc-update show
|
4.c. Configurer les services
Pourquoi encore configurer ?
Les scripts d'initialisation peuvent être complexes. Il vaut donc mieux éviter
que les utilisateurs ne doivent les modifier. Cela évite bien des problèmes.
Cependant, les services ont parfois besoin d'être configurés ou de recevoir
certaines options.
Une autre raison pour séparer les scripts de leur configuration est que cela
vous permet de mettre à jour les scripts sans que leur configuration ne soit
perdue.
Le répertoire /etc/conf.d
Gentoo offre un système facile pour configurer les services. Chaque script
d'initialisation qui peut être configuré a un fichier de configuration dans le
répertoire /etc/conf.d. Par exemple, le script d'initialisation
d'apache2 (/etc/init.d/apache2) a un fichier de configuration
/etc/conf.d/apache2 qui contient les options à passer au serveur
Apache 2 quand ce dernier est lancé.
Exemple de code 3.1 : Variables définies dans /etc/conf.d/apache2 |
APACHE2_OPTS="-D PHP4"
|
Un tel fichier de configuration ne contient que des définitions de
variables (tout comme /etc/make.conf), ce qui permet de configurer
facilement un service. Cela permet aussi de fournir des explications sur ces
options sous forme de commentaires.
4.d. Écrire un script d'initialisation
Dois-je faire cela ?
Non. Rédiger un script d'initialisation n'est généralement pas nécessaire
puisque Gentoo fournit des scripts complets pour tous les services supportés.
Cependant, si vous avez installé un service sans l'aide de Portage, vous devrez
sans doute écrire un tel script.
N'utilisez pas le script fourni avec le logiciel à moins qu'il ne soit écrit
spécifiquement pour Gentoo, car les scripts d'initialisation de Gentoo ne sont
pas compatibles avec ceux des autres distributions.
Structure
La structure de base d'un script d'initialisation est décrite ci-dessous.
Exemple de code 4.1 : Structure de base d'un script d'initialisation |
#!/sbin/runscript
depend() {
}
start() {
}
stop() {
}
restart() {
}
|
La partie start() est indispensable, les autres sont
facultatives.
Dépendances
Il existe deux types de dépendances : use et need. Comme
mentionné précédemment, la dépendance need est plus stricte que
use. Vous devez faire suivre le type de dépendance par le nom du service
dont votre service dépend, ou par une dépendance virtuelle.
Une dépendance virtuelle est une dépendance qui peut être satisfaite par
plusieurs services différents. Par exemple, votre service pourrait dépendre du
système de journalisation qui peut être fourni par plusieurs services
différents (metalogd, syslog-ng, sysklogd...) Étant donné que votre service ne
peut pas dépendre de tous ces services (on ne peut installer qu'un seul système
de journalisation), nous avons défini une seule dépendance virtuelle que chacun
de ces services satisfait.
Jetons un œil aux dépendances du service postfix.
Exemple de code 4.2 : Dépendances de Postfix |
depend() {
need net
use logger dns
provide mta
}
|
Comme vous pouvez le voir, postfix :
-
a besoin du service virtuel net qui est fourni par
/etc/init.d/net.eth0, par exemple ;
-
utilise un système de journalisation (service virtuel logger) qui est
fourni par /etc/init.d/syslog-ng, par exemple ;
-
utilise le service (virtuel) dns qui est fourni par
/etc/init.d/named, par exemple ;
-
fournit le service virtuel mta qui indique qu'un serveur de courrier
est disponible.
Ordonner la séquence d'exécution
Dans certains cas, vous voudrez peut-être démarrer un service avant ou après un
autre, pour autant que cet autre service soit disponible. Notez qu'il ne s'agit
plus d'une dépendance, mais simplement d'une demande de lancement de services
dans un ordre défini au sein d'un même niveau d'exécution. Pour définir une
séquence d'exécution, utilisez les mots-clefs before ou after.
Voyez, par exemple, le service portmap :
Exemple de code 4.3 : La fonction depend() du service Portmap |
depend() {
need net
before inetd
before xinetd
}
|
Vous pouvez aussi remplacer le nom de service par une étoile ("*") pour
spécifier tous les services d'un niveau d'exécution, mais cela n'est pas
recommandé.
Exemple de code 4.4 : Lancer un script avant tous les autres dans un niveau d'exécution |
depend() {
before *
}
|
Fonctions standard
En plus de la fonction depend(), vous devez définir la fonction
start() qui doit contenir les commandes nécessaires pour activer le
service. Il est conseillé d'utiliser les fonctions ebegin et eend
pour afficher des messages à l'écran et ainsi informer l'utilisateur que le
service démarre.
Exemple de code 4.5 : Exemple de fonction start() |
start() {
ebegin "Gentoo démarre le_service"
start-stop-daemon --start --quiet --exec /chemin/vers/le_service
eend $?
}
|
Vous trouverez plus d'exemples de fonctions start() dans les scripts
d'initialisation qui se trouvent dans le répertoire /etc/init.d.
La commande start-stop-daemon est documentée sous la forme d'une page
man :
Exemple de code 4.6 : Afficher l'aide de la commande start-stop-daemon |
# man start-stop-daemon
|
Vous pouvez aussi définir les fonctions facultatives stop() et
restart() pour respectivement arrêter et relancer un service, mais
Gentoo est capable de s'en passer si vous avez utilisé la commande
start-stop-daemon.
Ajouter une option non prévue
Si vous voulez utiliser une option non prévue par nos scripts, vous devez
l'ajouter à la variable opts et créer une fonction qui a le même nom. Par
exemple, pour ajouter une option restartdelay :
Exemple de code 4.7 : Ajouter une option restartdelay |
opts="${opts} restartdelay"
restartdelay() {
stop()
sleep 3
start()
}
|
Variables de configuration d'un service
Vous ne devez rien faire de particulier pour utiliser un fichier de
configuration dans /etc/conf.d : avant que votre script
d'initalisation ne soit exécuté, les variables des fichiers suivants sont
initialisées dans cet ordre :
- /etc/conf.d/<votre_script>
- /etc/conf.d/basic
- /etc/rc.conf
De plus, si votre script fournit un service virtuel (comme net),
le fichier de configuration correspondant (comme /etc/conf.d/net)
sera également lu.
4.e. Modifier le comportement des niveaux d'exécution
Quel intérêt et pour qui ?
Les utilisateurs d'ordinateurs portables connaissent bien le problème :
vous devez démarrer net.eth0 à la maison, mais pas lorsque vous êtes en
vadrouille puis que vous n'êtes alors plus connecté à votre réseau. Vous pouvez
adapter le comportement de Gentoo.
Par exemple, vous pouvez créer un second niveau d'exécution similaire au niveau
« default », mais sans les options réseau. Vous pourrez ensuite
sélectionner le niveau d'exécution au démarrage de votre machine.
Utiliser « SOFTLEVEL »
Créez votre second niveau d'exécution similaire à « default ». Dans
notre exemple, nous créons un niveau « offline ».
Exemple de code 5.1 : Créer le répertoire du nouveau niveau d'exécution |
# mkdir /etc/runlevels/offline
|
Ajoutez les scripts d'initialisation à votre nouveau niveau d'exécution. Par
exemple, pour copier le niveau « default » sans le script
net.eth0 :
Exemple de code 5.2 : Recopier les scripts d'initialisation |
# ls /etc/runlevels/default
acpid domainname local net.eth0 netmount postfix syslog-ng vixie-cron
# rc-update add acpid offline
# rc-update add domainname offline
# rc-update add local offline
# rc-update add syslog-ng offline
# rc-update add vixie-cron offline
|
Ensuite, modifiez la configuration de votre chargeur de démarrage pour y
ajouter une nouvelle option pour le niveau offline. Par exemple, pour
grub, modifiez /boot/grub/grub.conf :
Exemple de code 5.3 : Ajouter une entrée dans le menu de démarrage |
title Gentoo Linux Offline
root (hd0,0)
kernel (hd0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=offline
|
Voilà, c'est terminé. Si vous redémarrez votre machine et que vous choisissez
la nouvelle entrée, le niveau d'exécution offline sera utilisé au lieu
du niveau default.
Utiliser BOOTLEVEL
Vous pouvez aussi remplacer le niveau d'exécution « boot » avec
l'option bootlevel exactement de la même façon qu'avec softlevel.
5. Variables d'environnement
5.a. Variables d'environnement ?
Que sont-elles ?
Une variable d'environnement est un objet nommé qui contient des informations
utilisées par une ou plusieurs applications. Beaucoup d'utilisateurs
(particulièrement les nouveaux Linuxiens) trouvent que c'est un peu trop
compliqué et ingérable. C'est bien sûr faux : en utilisant des variables
d'environnement, on peut changer facilement la valeur d'une configuration pour
une ou plusieurs applications.
Exemples importants
Le tableau suivant liste un certain nombre de variables utilisées par le système
Linux et décrit leur utilisation. Des exemples de valeurs seront présentés après
le tableau.
| Variable |
Description |
| PATH |
Cette variable contient une liste de répertoires séparés par des deux-points
dans lesquels le système cherche des fichiers exécutables. Si vous entrez le
nom d'un exécutable (tel que ls, rc-update ou emerge),
mais que cet exécutable n'est pas situé dans un des répertoires listés,
votre système ne l'exécutera pas (tant que vous n'aurez pas spécifié le
chemin complet avec ligne de commande, tel que /bin/ls).
|
| ROOTPATH |
Cette variable a la même fonction que PATH, mais celle-ci liste les
répertoires qui doivent être parcourus lorsque l'utilisateur root entre une
commande.
|
| LDPATH |
Cette variable contient une liste de répertoires séparés par des deux-points
dans lesquels l'éditeur de liens dynamique cherche les bibliothèques.
|
| MANPATH |
Cette variable contient une liste de répertoires séparés par des deux-points
dans lesquels la commande man cherche les pages man.
|
| INFODIR |
Cette variable contient une liste de répertoires séparés par des deux-points
dans lesquels la commande info cherche les pages info.
|
| PAGER |
Cette variable contient le chemin vers le programme utilisé pour lister le
contenu des fichiers (tel que less ou more).
|
| EDITOR |
Cette variable contient le chemin vers le programme utilisé pour éditer le
contenu des fichiers (tel que nano ou vi).
|
| KDEDIRS |
Cette variable contient une liste de répertoires séparés par des deux-points
qui contiennent les éléments spécifiques à KDE.
|
| CLASSPATH |
Cette variable contient une liste de répertoires séparés par des deux-points
qui contiennent les classes Java.
|
| CONFIG_PROTECT |
Cette variable contient une liste de répertoires séparés par des
espaces qui doivent être préservés par Portage pendant les mises à
jour.
|
| CONFIG_PROTECT_MASK |
Cette variable contient une liste de répertoires séparés par des
espaces qui ne doivent pas être préservés par Portage pendant les
mises à jour.
|
Voici un exemple de définition de toutes ces variables :
Exemple de code 1.1 : Exemple de définitions |
PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:."
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \
/usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \
/usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf
|
5.b. Définir des variables globalement
Le répertoire /etc/env.d
Pour centraliser les définitons de ces variables, la distribution Gentoo utilise le
répertoire /etc/env.d. Dans ce répertoire, vous trouverez un certain
nombre de fichiers tels que 00basic, 05gcc, etc. qui
contiennent les variables requises par les applications mentionnées dans leurs
noms.
Par exemple, quand vous installez gcc, un fichier nommé
05gcc est créé par l'ebuild et contient les définitions des
variables suivantes :
Exemple de code 2.1 : /etc/env.d/05gcc |
PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
|
Les autres distributions vous disent de changer ou d'ajouter ces variables
d'environnement dans /etc/profile ou ailleurs. Par contre, Gentoo
vous facilite la maintenance et l'administration de ces
variables d'environnement, ce qui vous évite de vous soucier des nombreux
fichiers qui peuvent contenir ces variables d'environnement. (Cela profite
également au système Portage.)
Par exemple, lorsque gcc est mis à jour, le fichier
/etc/env.d/05gcc est aussi mis à jour sans que l'utilisateur ne
fasse quoi que se soit.
Cela n'est pas uniquement profitable à Portage, mais aussi à vous, en tant
qu'utilisateur. Occasionnellement, vous serez amené à définir des variables
d'environnement pour tout le système. Par exemple, avec la variable
http_proxy. Au lieu de vous embêter avec /etc/profile,
vous devez juste créer un fichier (/etc/env.d/99local)
et y entrer vos définitions :
Exemple de code 2.2 : /etc/env.d/99local |
http_proxy="proxy.server.com:8080"
|
En utilisant le même fichier pour toutes vos variables, vous avez une vue
d'ensemble aisée de toutes les variables que vous avez définies.
Le script env-update
Plusieurs fichiers dans /etc/env.d définissent la variable
PATH. Ce n'est pas une erreur : quand vous lancez env-update, celui-ci
combinera les définitions avant de mettre à jour les variables d'environement.
Ainsi, il aide les paquets (et les utilisateurs) à ajouter leurs propres
variables d'environnement sans interférer avec les valeurs déjà définies.
Le script env-update liste les valeurs des fichiers de
/etc/env.d par ordre alphabétique. C'est pourquoi beaucoup de
fichiers dans /etc/env.d commencent par un nombre.
Exemple de code 2.3 : Ordre de mise à jour par env-update |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
Quand vous lancez env-update, le script crée toutes les variables
d'environnement et les place dans /etc/profile.env (qui est utilisé
par /etc/profile). Il extrait aussi les informations de la variable
LDPATH et les utilise pour créer /etc/ld.so.conf. Après
cela, il lance ldconfig pour créer le fichier
/etc/ld.so.cache utilisé par l'éditeur de liens dynamique.
Si vous voulez connaître le résultat de env-update immédiatement après
son exécution, lancez la commande suivante pour mettre votre système à jour.
Les utilisateurs qui ont installé Gentoo eux-même se souviendront sûrement
que cela se trouvait dans les instructions d'installation :
Exemple de code 2.4 : Mettre l'environnement à jour |
# env-update && source /etc/profile
|
5.c. Définir des variables localement
Spécifiques à un utilisateur
Vous n'avez pas toujours besoin de définir des variables d'environnement
globalement. Par exemple, vous pourriez avoir besoin d'ajouter
/home/my_user/bin à la variable PATH, mais vous ne voulez
pas que les autres utilisateurs de votre système l'aient aussi dans PATH.
Si vous voulez définir une variable d'environnement localement, vous devriez
utiliser ~/.bashrc ou ~/.bash_profile :
Exemple de code 3.1 : Étendre PATH pour un usage local avec ~/.bashrc |
PATH="${PATH}:/home/my_user/bin"
|
Quand vous vous réidentifierez, votre variable PATH sera mise à jour.
Spécifiques à une session
Quelquefois, une définition plus spécifique est requise. Vous voudriez être
capable d'utiliser des binaires d'un répertoire temporaire que vous avez créé
sans utiliser le chemin complet ou éditer ~/.bashrc qui vous
prendrait trop de temps.
Dans ce cas-ci, vous pouvez juste définir la variable PATH dans votre
session courante en utilisant la commande export. Tant que vous ne vous
serez pas déconnecté, la variable PATH utilisera la valeur temporaire.
Exemple de code 3.2 : Définir une variable d'environnement spécifique à une session |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
C. Utiliser Portage
1. Fichiers et répertoires
1.a. Les fichiers utilisés par Portage
Configurer portage
La configuration par défaut de Portage se trouve dans le fichier
/etc/make.globals. Vous remarquerez que toute la configuration de
Portage se fait grâce à des variables. Les variables et leur utilisation sont
décrites ci-dessous.
Puisque certaines directives de configuration diffèrent d'une architecture à
l'autre, Portage utilise aussi un fichier de configuration de votre
profil : /etc/make.profile/make.defaults. Nous aborderons les
profils et le répertoire /etc/make.profile plus loin dans ce
document.
Pour modifier une variable de configuration, ne modifiez ni le fichier
/etc/make.globals ni
/etc/make.profile/make.defaults. Modifiez plutôt
/etc/make.conf qui a priorité sur les autres fichiers. Vous
trouverez aussi un fichier /etc/make.conf.example. Comme son nom
l'indique, il s'agit d'un exemple que vous pouvez utiliser pour configurer
votre propre /etc/make.conf.
Vous pouvez aussi définir ces variables dans votre environnement, mais Gentoo
ne recommande pas cette pratique.
Informations spécifiques au profil
Nous avons déjà mentionné le répertoire /etc/make.profile. Ce
n'est pas vraiment un répertoire, mais un lien symbolique vers un profil qui se
trouve, par défaut, dans /usr/portage/profiles ; vous pouvez
créer des profils ailleurs. Ce lien symbolique définit le profil utilisé par
votre système.
Un profil contient des informations spécifiques pour chaque architecture telles
que la liste des paquets qui forment un système de base, une liste de paquets
qui ne fonctionnent pas ou qui sont masqués pour ce profil, etc.
Configuration par l'utilisateur
Pour influencer le comportement de Portage, vous devrez modifier des fichiers
dans le répertoire /etc/portage. Il est vivement recommandé
d'utiliser ces fichiers et de ne pas utiliser de variables
d'environnement.
Vous pouvez créer les fichiers suivants dans le répertoire
/etc/portage :
-
package.mask contient la liste des paquets que vous voulez
ne jamais installer.
-
package.unmask contient la liste des paquets que vous voulez
installer bien qu'ils aient été masqués par les développeurs Gentoo.
-
package.keywords contient la liste des paquets que vous voulez
installer même s'ils ne sont pas (encore) considérés stables pour votre
architecture ou votre système.
-
package.use contient la liste des options de la variable USE
que vous voulez appliquer à certains paquets, mais que vous ne voulez pas
utiliser pour tout votre système.
La page man contient une liste exhaustive des fichiers qui influencent le
comportement de Portage.
Exemple de code 1.1 : Lire la page man de Portage |
$ man portage
|
Déplacer les fichiers & répertoires de Portage
Les fichiers de configuration mentionnés ci-dessus ne peuvent pas se trouver
ailleurs. Portage les recherche toujours au même endroit. Cependant, Portage
peut être configuré pour utiliser d'autres répertoires pour certains
fichiers : le répertoire temporaire d'installation, les sources, l'arbre
Portage, etc.
Par défaut, tous ces fichiers sont stockés dans des répertoires bien connus,
mais ils peuvent être stockés ailleurs en fonction de variables définies dans
le fichier /etc/make.conf. Ce qui suit est consacré aux différents
répertoires utilisés par Portage et à la methode à utiliser pour les déplacer.
Ce document n'est pas une liste exhaustive de tous les répertoires disponibles.
Cette liste est disponible dans les pages man de Portage et de
make.conf :
Exemple de code 1.2 : Lire les pages man de Portage et de make.conf |
$ man portage
$ man make.conf
|
1.b. Emplacemements des fichiers
L'arbre Portage
Le répertoire par défaut pour l'arbre Portage est /usr/portage. La
variable PORTDIR peut être utilisée pour définir un autre emplacement.
N'oubliez pas de rediriger le lien symbolique /etc/make.profile
vers le répertoire ad hoc.
Si vous redéfinissez la variable PORTDIR, vous devriez sans doute redéfinir les
variables PKGDIR, DISTDIR et RPMDIR, car elles ne prendront pas la valeur de
PORTDIR en compte.
Binaires précompilés
Bien que Portage n'utilise pas de binaires précompilés par défaut, il peut très
bien en utiliser. Quand vous utilisez des paquets précompilés, Portage les
recherche dans le répertoire /usr/portage/packages. La variable
PKGDIR définit cet emplacement.
Code source
Le code source des applications est conservé dans
/usr/portage/distfiles. Cet emplacement est défini par la variable
DISTDIR.
Fichiers RPM
Bien que Portage ne puisse pas utiliser les fichiers RPM, il peut en générer
avec la commande ebuild (cf. le programme
ebuild). Les fichiers RPM sont générés dans
/usr/portage/rpm. La variable RPMDIR définit cet emplacement.
1.c. Compiler les paquets
Fichiers temporaires
Portage sauve ses fichiers temporaires dans /var/tmp par défaut.
La variable PORTAGE_TMPDIR définit cet emplacement.
Si vous redéfinissez la variable PORTAGE_TMPDIR, vous devriez aussi redéfinir
BUILD_PREFIX, car elle ne tient pas compte du changement automatiquement.
Répertoire de compilation
Portage crée un répertoire de compilation pour chaque paquet dans le répertoire
/var/tmp/portage. Cet emplacement est défini par la variable
BUILD_PREFIX.
Localisation du système de fichiers principal
Par défaut, Portage installe tous les fichiers sur le système de fichiers
courant (/), mais il peut copier les fichiers ailleurs si vous
redéfinissez la variable ROOT. Cela peut être utile si vous voulez construire
des nouvelles images d'installation pour d'autres systèmes.
1.d. Enregistrement des messages (« logs »)
Les messages des ebuilds
Portage peut enregistrer les messages des ebuilds en utilisant un fichier pour
chaque ebuild, mais uniquement si la variable PORT_LOGDIR contient le nom d'un
répertoire dans lequel Portage peut écrire (l'utilisateur portage doit disposer
des permissions nécessaires). Par défaut, cette variable n'est pas définie.
2. Les variables de configuration
2.a. Configuration de Portage
Portage peut être configuré grâce à de nombreuses variables que vous définissez
dans le fichier /etc/make.conf. Vous trouverez une description
complète de ces variables dans la page man de make.conf.
Pour la consulter, faites :
Exemple de code 1.1 : Lire la page man de make.conf |
$ man make.conf
|
2.b. Options relatives à la compilation
Les options de configuration et de compilation
Quand Portage compile une application, il passe les variables suivantes au
script de configuration et au compilateur :
-
CFLAGS et CXXFLAGS définissent les options des compilateurs C et C++.
-
CHOST définit le type d'hôte pour le script de configuration.
-
MAKEOPTS est passé au programme make et sert à définir le nombre de
tâches de compilation maximum à lancer en parallèle. Vous trouverez plus
d'information sur le programme make dans sa page man.
La variable USE est aussi utilisée par les processus de configuration et de
compilation et a déjà été documentée dans des chapitres précédents.
Options d'intégration
Quand Portage a fini d'intégrer une nouvelle version d'un paquet au système, il
supprime les fichiers des versions précédentes. Portage attend cinq secondes
avant de supprimer ces fichiers. Ce délai est paramétrable grâce à la variable
CLEAN_DELAY.
2.c. Protection des fichiers de configuration
Répertoires protégés
Portage remplace les fichiers des anciennes versions des logiciels par ceux des
nouvelles versions qu'il installe sauf si ceux-ci se trouvent dans un
répertoire protégé. La liste de ces répertoires est définie par la
variable CONFIG_PROTECT. Les répertoires sont séparés par des espaces. Ceux-ci
sont généralement des répertoires qui accueillent des fichiers de
configuration.
Un fichier qui devrait être installé dans un répertoire protégé est renommé et
l'utilisateur est averti de la présence d'un nouveau fichier de configuration.
Vous pouvez afficher la liste des répertoires protégés avec la commande
emerge info :
Exemple de code 3.1 : Afficher la variable CONFIG_PROTECT |
$ emerge info | grep 'CONFIG_PROTECT='
|
Pour afficher l'aide intégrée dans Portage à propos de la protection des
fichiers de configuration, utilisez la commande emerge comme
suit :
Exemple de code 3.2 : Afficher l'aide de Portage sur la protection des fichiers |
$ emerge --help config
|
Exclure des répertoires
Vous pouvez exclure certains répertoires de cette protection en les définissant
dans la variable CONFIG_PROTECT_MASK.
2.d. Options de téléchargement
Les serveurs
Quand Portage a besoin de fichiers qui ne sont pas sur votre machine, il essaie
de les télécharger. Les serveurs qu'il contacte sont définis dans les variables
suivantes :
-
GENTOO_MIRRORS définit la liste des serveurs qui contiennent les sources
des paquets (les « distfiles »).
-
PORTAGE_BINHOST définit les serveurs qui offrent des paquets binaires
précompilés.
Une troisième variable contient le nom du serveur que Portage contacte quand il
doit synchroniser son arbre :
-
SYNC définit le serveur utilisé pour synchroniser l'arbre Portage.
Les variables GENTOO_MIRRORS et SYNC peuvent être définies automatiquement par
le programme mirrorselect. Vous devez l'installer avec la commande
emerge mirrorselect si vous comptez l'utiliser. Vous pouvez consulter
l'aide de mirrorselect avec la commande suivante :
Exemple de code 4.1 : Plus d'information sur mirrorselect |
# mirrorselect --help
|
Si vous devez utiliser un serveur mandataire (« proxy server »), vous
devez définir son nom dans les variables HTTP_PROXY, FTP_PROXY et RSYNC_PROXY.
Outils de téléchargement
Quand Portage doit télécharger les sources d'un paquet, il utilise wget
par défaut. Vous pouvez lui faire utiliser une autre commande grâce à la
variable FETCHCOMMAND.
Portage est capable de reprendre un téléchargement interrompu. Il utilise aussi
la commande wget par défaut, mais vous pouvez changer cela grâce à la
variable RESUMECOMMAND.
Veuillez vérifier que les commandes que vous définissez dans les variables
FETCHCOMMAND et RESUMECOMMAND sauvent les fichiers téléchargés à la bonne
place. Utilisez les valeurs \${URI} et \${DISTDIR} pour indiquer respectivement
l'origine des sources et le répertoire dans lequel les enregistrer.
Vous pouvez même définir des commandes spécifiques par protocole grâce aux
variables FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP,
RESUMECOMMAND_FTP.
Options de rsync
Vous ne pouvez pas utiliser une autre commande que rsync pour mettre l'arbre
Portage à jour, mais vous pouvez configurer cette commande avec les variables
suivantes :
-
RSYNC_EXCLUDEFROM définit le fichier qui contient une liste de paquets ou
de catégories à exclure de la synchronisation.
-
RSYNC_RETRIES définit le nombre de tentatives de synchronisation avec un
serveur avant de renoncer. La valeur par défaut est 3.
-
RSYNC_TIMEOUT définit le nombre maximum de secondes d'inactivité avant de
considérer que la connexion avec le serveur a été interrompue. La valeur
par défaut est 180, mais il peut être judicieux d'utiliser 300 ou plus si
vous utilisez une connexion lente, avec un modem par exemple.
8.f. Configuration de Gentoo
Choix de la branche
Vous pouvez définir la branche à utiliser avec la variable ACCEPT_KEYWORDS. La
valeur par défaut est la branche stable pour votre architecture. Vous trouverez
plus de détails à ce sujet dans le chapitre suivant.
Fonctionnalités de Portage
Vous pouvez activer certaines fonctionnalités de Portage grâce à la variable
FEATURES. Celles-ci ont déjà été abordées dans des chapitres précédents tels
que Portage et ses fonctionnalités.
2.f. Comportement de Portage
Gestion des ressources
La variable PORTAGE_NICENESS permet de réduire ou d'augmenter la valeur
« nice » avec laquelle Portage s'exécute. La valeur de
PORTAGE_NICENESS est ajoutée à la valeur « nice » en cours.
Cette valeur permet de rendre le processus de compilation plus ou moins
prioritaire. Une valeur élevée rend Portage moins prioritaire par rapport aux
autres processus et laisse le système plus disponible.
Pour plus d'information à propos de nice, veuillez consulter sa page
man :
Exemple de code 6.1 : La page man de nice |
$ man nice
|
Configuration de l'affichage
La variable NOCOLOR, dont la valeur par défaut est « false », indique
à Portage de ne pas utiliser de couleurs dans son affichage.
3. Faire cohabiter des branches différentes
3.a. Choisir sa branche
La branche stable
La variable ACCEPT_KEYWORDS définit quelle branche vous voulez utiliser. La
valeur par défaut est la branche stable pour votre architecture, par exemple
x86.
Il est recommandé de n'utiliser que la branche stable. Cependant, si la
stabilité des logiciels n'est pas votre première préoccupation ou si vous
souhaitez aider Gentoo et envoyer des rapports de bogues sur
http://bugs.gentoo.org, alors lisez ce qui suit.
La branche de test
Si vous désirez utiliser les versions les plus récentes des logiciels, vous
pouvez envisager de passer à la branche de test. Pour cela, ajoutez un ~
(tilde) devant le nom de votre architecture.
Par exemple, pour utiliser la branche de test sur une machine x86, modifiez le
fichier /etc/make.conf comme suit :
Exemple de code 1.1 : Modifier la variable ACCEPT_KEYWORDS |
ACCEPT_KEYWORDS="~x86"
|
Si vous mettez votre système à jour maintenant, vous constaterez que
beaucoup de paquets vont être mis à jour. Veuillez noter qu'une fois
passé à la branche de test, il est pratiquement impossible de revenir à la
branche stable.
3.b. Mélanger les branches
Le fichier package.keywords
Il est possible d'indiquer à Portage d'utiliser les versions de test pour
certains paquets tout en restant dans la branche stable. Pour cela, ajoutez le
nom du paquet dont vous voulez la version instable et sa catégorie dans le
fichier /etc/portage/package.keywords. Par exemple, pour utiliser
la version instable de gnumeric, ajoutez :
Exemple de code 2.1 : Ajouter gnumeric dans /etc/portage/package.keywords |
app-office/gnumeric
|
Le même résultat peut être obtenu en ajoutant le mot-clé à la fin de la ligne
comme ceci :
Exemple de code 2.2 : Ajouter gnumeric dans /etc/portage/package.keywords, ligne complète |
app-office/gnumeric ~x86
|
Tester une version donnée
Si vous voulez tester une version donnée, mais ne voulez pas que Portage mette
cette version à jour par la suite, vous pouvez spécifier le numéro de version
désiré. Dans ce cas, vous devez utiliser l'opérateur =, mais les autres
opérateurs, à savoir <=, <, > ou >=,
sont également disponibles.
Si vous spécifiez un numéro de version, vous devez utiliser un opérateur. Sans
numéro de version, vous ne pouvez pas utiliser d'opérateur.
Dans l'exemple suivant, demandons à Portage d'accepter la version 1.2.13 de
gnumeric :
Exemple de code 2.3 : Utiliser une version précise de gnumeric |
=app-office/gnumeric-1.2.13
|
3.c. Utiliser des paquets masqués
Le fichier package.unmask
Si un paquet a été masqué par les développeurs Gentoo et que vous voulez
l'installer malgré les raisons précisées dans le fichier
package.mask (par défaut dans le répertoire
/usr/portage/profiles), ajoutez exactement la même ligne
dans le fichier /etc/portage/package.unmask.
Par exemple, si =net-mail/hotwayd-0.8 a été masqué, vous pouvez le
rendre disponible en ajoutant la même ligne dans
package.unmask :
Exemple de code 3.1 : Exemple de /etc/portage/package.unmask |
=net-mail/hotwayd-0.8
|
Le fichier package.mask
Si vous voulez empêcher Portage d'installer un paquet ou une version
particulière d'un paquet, vous pouvez ajouter son nom dans le fichier
/etc/portage/package.mask.
Par exemple, pour empêcher Portage d'installer des sources de noyaux plus
récentes que development-sources-2.6.8.1, ajoutez la ligne suivante dans
package.mask :
Exemple de code 3.2 : Exemple de /etc/portage/package.mask |
>sys-kernel/development-sources-2.6.8.1
|
4. Outils supplémentaires
4.a. etc-update
L'outil etc-update vous aide à intégrer les fichiers
._cfg0000_<nom>. Il permet de comparer et de copier les
nouveaux fichiers que Portage a installés sans modifier les fichiers qui
existaient déjà. Il peut aussi intégrer des modifications simples qui n'ont
aucune incidence sur votre système. Les fichiers
._cfg0000_<nom> sont créés par Portage quand un nouveau
fichier devrait en remplacer un autre dans un répertoire protégé par la variable
CONFIG_PROTECT.
Utiliser etc-update est plutôt trivial :
Exemple de code 1.1 : Démarrer etc-update |
# etc-update
|
Après avoir intégré les modifications triviales, le programme affiche une liste
des fichiers protégés qui n'ont pas été remplacés et pour lesquels une mise à
jour est peut-être souhaitable. Les choix suivants sont indiqués au bas de la
liste :
Exemple de code 1.2 : Menu etc-update |
Please select a file to edit by entering the corresponding number.
(-1 to exit) (-3 to auto merge all remaining files)
(-5 to auto-merge AND not use 'mv -i'):
|
Si vous entrez -1, etc-update quitte et ne change rien aux
fichiers. Si vous entrez -3 ou-5, tous les fichiers seront
remplacés par les nouvelles versions. Il est donc très important de
sélectionner les fichiers qui ne doivent pas être remplacés automatiquement
avant de choisir cette option. Il suffit d'entrer le numéro du fichier dans la
liste.
Par exemple, si vous sélectionnez le fichier /etc/pear.conf :
Exemple de code 1.3 : Mettre un fichier de configuration à jour |
Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again
|
Vous pouvez voir les différences entre le fichiers. Si vous pensez que la
nouvelle version peut être utilisée sur votre système, tapez 1. Si vous
pensez que la nouvelle version n'apporte rien qui ne vous soit utile ou qu'elle
n'est pas nécessaire, tapez 2. Si vous voulez intégrer des parties de la
nouvelle version de façon interactive, tapez 3.
Pendant l'intégration interactive, vous devez choisir entre les anciennes et
les nouvelles lignes. Les commandes suivantes vous permettent d'indiquer votre
choix :
Exemple de code 1.4 : Commandes disponibles pendant l'intégration interactive |
ed: Modifier et garder les deux versions avec un en-tête.
eb: Modifier et garder les deux versions.
el: Modifier et garder la version de gauche.
er: Modifier et garder la version de droite.
e: Saisir une nouvelle version.
l: Garder la version de gauche.
r: Garder la version de droite.
s: Garder les deux lignes, sans commentaire.
v: Garder les deux lignes, avec commentaire.
q: Quitter.
|
Après avoir traité les fichiers que vous jugez importants, vous pouvez laisser
Portage intégrer les fichiers restants. Le programme etc-update
n'insistera pas s'il n'y a plus de fichiers à intégrer.
4.b. dispatch-conf
Le programme dispatch-conf permet de garder une trace des modifications
apportées à vos fichiers de configuration. En effet, il stocke les différences
grâce au système de contrôle de versions RCS.
Comme etc-update, il peut laisser les fichiers intacts, utiliser les
nouvelles versions, modifier les fichiers actuels ou intégrer les différences
interactivement. Cependant, dispatch-conf a quelques atouts
supplémentaires :
-
Il intégre automatiquement les fichiers où seuls des commentaires ont été
modifiés.
-
Il intégre automatiquement les fichiers qui ne varient que par des espaces,
des tabulations ou autres caractères « blancs ».
Veuillez vérifier le fichier /etc/dispatch-conf.conf et créer le
répertoire défini par la variable « archive-dir ».
La page man de dispatch-conf contient plus de détails :
Exemple de code 2.1 : Lire la page man de dispatch-conf |
$ man dispatch-conf
|
4.c. quickpkg
Le programme quickpkg permet de créer un paquet binaire à partir d'un
paquet qui est déjà installé sur votre système. Un tel paquet binaire peut être
réinstallé sans devoir le recompiler. Il suffit de taper la liste des paquets à
construire.
Par exemple, pour créer des paquets binaires pour curl, arts et
procps :
Exemple de code 3.1 : Exemple d'utilisation de quickpkg |
# quickpkg curl arts procps
|
Les paquets seront placés dans le répertoire
/usr/portage/packages/All et des liens symboliques vers ceux-ci
seront créés dans /usr/portage/packages/<catégorie>.
5. Diverger de l'arbre officiel
5.a. Utiliser un sous-ensemble de l'arbre Portage
Exclure des paquets ou des catégories
Vous pouvez mettre certains paquets ou certaines catégories à jour et en
ignorer d'autres. Portage fait exclure ces catégories ou paquets par la
commande rsync qu'il utilise pour l'action emerge --sync.
Par défaut, rsync utilise le contenu du fichier
/etc/portage/rsync_excludes (s'il existe) qui indique les
catégories ou les paquets que doit exclure la commande rsync.
Veuillez remarquer que cela peut causer des problèmes dans la gestion des
dépendances puisque de nouveaux paquets pourraient dépendre de paquets que vous
avez exclus.
5.b. Ajouter des ebuilds non officiels
Définir un répertoire superposé
Portage peut utiliser des ebuilds qui ne se trouvent pas dans l'arbre Portage
de Gentoo. Pour cela, créez un répertoire, par exemple
/usr/local/portage, dans lequel vous pourrez copier des ebuilds
d'origines diverses. Vous devrez utiliser la même structure que pour l'arbre
officiel.
Ensuite, définissez la variable PORTDIR_OVERLAY dans le fichier
/etc/make.conf et attribuez-lui le nom du répertoire que vous avez
créé. Portage utilisera alors les ebuilds qui se trouvent dans ce répertoire,
mais ne les modifiera pas lors de l'opération de synchronisation emerge
--sync.
5.c. Paquets gérés hors de Portage
Utiliser Portage avec des paquets gérés manuellement
Dans certains cas, vous voudrez peut-être configurer, installer et maintenir
des paquets vous-même sans que Portage ne s'en mêle même si le paquet est
disponible dans l'arbre Portage. Des cas typiques sont le noyau et les pilotes
nvidia. Vous pouvez configurer Portage pour qu'il sache que certains paquets
ont été installés manuellement. On appelle cela « injecter un
paquet » et cela se fait grâce au fichier
/etc/portage/profile/package.provided.
Par exemple, pour informer Portage que vous avez installé le noyau
development-sources-2.6.8.1 manuellement, ajoutez la ligne
suivante au fichier /etc/portage/profile/package.provided :
Exemple de code 3.1 : Une ligne dans package.provided |
sys-kernel/development-sources-2.6.8.1
|
6. Le programme ebuild
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 Developers' Handbook (en
anglais). 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 2.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.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 2.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 2.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 2.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 2.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 2.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 2.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 2.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 3.1 : 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 3.2 : 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 3.3 : 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 4.1 : 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 Developers' Handbook (en
anglais).
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|