L'idée centrale de la distribution gentoo est de d'offrir un système configuré au plus près de la machine et des besoins de l'utilisateur. Par ailleurs, il n'existe pas d'upgrade de distribution: une fois le système installé, ce sont les upgrades des applications, du bureau et du noyau Linux qui font le évoluer.
Chaque application est compilée spécialement pour la machine, ce qui peut prendre quelques heures pour l'installation du système graphique KDE sur un Athlon à 2.6GHz. Mais [Ctrl]-[Alt]-[F2] permet d'ouvrir une seconde console, où links permet de surfer en mode texte.
C'est l'occasion d'avoir une pensée pour Louis Braille (1809-1852) qui mit au point dans son adolescence du système d'écriture pour non-voyants, et pour ceux-ci qui surfent dans le mode texte. Rendez-vous donc sur http://fr.wikipedia.org/wiki/Louis_Braille.
Les informations ci-dessous proviennent grandement du fichier d'aide www.gentoo.org/doc/fr/handbook/handbook-amd64.xml?full=1, à qui cette page rend hommage pour sa clarté et ses côtés pratiques. Même la présentation graphique s'en inspire, mais de façon plus propre du point de vue html/CSS en s'affranchissant des <span> et des <table> inutiles, remplacés par les classes de <p>, si pratiques.
Ce qui suit a néanmoins été totalement réécrit à partir de notes prises au fil de réinstallations, multiples pour des raisons d'une configuration particulière (utilisation d'un second disque, IDE/ATAPI, sur un système AMD64).
Ce genre d'installation a requis le téléchargement d'un Minimal CD avec une connexion de type ADSL/Ethernet.
1. Lancement du Minimal CD
1.1 Système de fichier |
2. Poursuite de l'installation
2.1 Portage 3. Environnements graphiques4. Suite? |
boot: [enter] ou gentoo; [F2] et [F3] énoncent les différents paramétrages du lancement
Loading keymaps: 1 pour clavier azerty, 2 pour be, 16 pour le fr
Pour le moment, nous sommes sur un système placé en mémoire. Comme il va s'agir d'installer le système sur un disque, il faut préparer un disque dur, ou sur une clé USB si l'ordinateur permet ce gennre de boot. Celle-ci devrait comporter au moins 4 ou 8Go de mémoire libres, sans partition swap.
Formatage du disque (premier disque IDE/ATAPI en l'occurrence)
cfdisk /dev/hda
On réserve traditionnellement à la partition swap une fois et demie la quantité de mémoire RAM, ce qui permet à la mémoire de se décharger momentanément lors du traitement d'une grande masse de données. Il est courant qu'on réserve également quelques dizaines de Mo pour la partition /boot, qui contient le menu GRUB (lancement) et les différentes versions des noyaux Linux (3 à 4 Mo chacun). Il est fortement conseillé de prévoir une partition /home séparée du système de la racine /, cela permet une réinstallation complète du système sans toucher aux données. Cela est néanmoins déconseillé en cas de petit disque dur moins de 10Go.
S'il s'agit d'une première utilisation ou d'un reformatage de disque, il faut établir les partitions. cfdisk permet de créer les partitions décrite ci-dessus, en précisant leur type (préférer le type ext3 (83) à ext2 (82)). 5Go pour la partition racine / et le reste pour la partition /home.
S'il s'agit de l'utilisation d'un disque dont on désire garder une partie des données, il est possible de détruire certaines partitions et d'en reconstruire à partir de la place libérée. Mais auparavant, il faut être sûr de la localisation de la/des partition-s à garder. D'autre part, si la partition à garder se trouve au milieu du disque, il n'y a pas moyen de la déplacer.
Formatage et montage d'une partition swap
mkswap /dev/hda1 swapon /dev/hda1
mkswap formate (efface de façon définitive toutes les données) une partition swap si cela n'a pas été précisé dans cfdisk.
swapon ne sera plus à faire lorsque fstab aura été édité.
Formatage de partitions
mke2fs -j /dev/hda2 mke2fs -j /dev/hda3
mke2fs -j /dev/hda2 formate (efface de façon définitive toutes les données) une partition ext3 (sans -j pour ext2) si cela n'a pas été précisé dans cfdisk, à ne faire qu'une fois. fstab montera automatiquement ces partitions.
Dans un premier temps, il s'agit de charger sur la partition de quoi construire un système
Montage de la future partition système
mount /dev/hda3 /mnt/gentoo cd /mnt/gentoo
Avec le CD minimal, il faut importer deux archives, à une de ces adresses où sont stockées les données gentoo (miroirs). Une page www.gentoo.org contient une liste des sites miroirs où il sera possible de récupérer les archives stages/stage3-x86-2008.0.tar.bz2 (124Mo) et portage-latest.tar.bz2 (33Mo).
Affichage de la page des sites miroirs
links http://www.gentoo.org/main/en/mirrors.xml
links est un navigateur en mode texte, où la navigation est basée sur les flèches de déplacement:
flèches haut et bas pour passer d'un lien à l'autre
flèche droite ou [enter] pour charger une page
flèche gauche pour remonter à la page appelante
barre d'espace pour descendre la page d'un écran
[esc] affiche un système de menu
g permet la saisie d'une adresse URL
q pour quitter
Quel que soit le site choisi il faut récupérer:
releases/x86/2008.0/stages/stage3-x86-2008.0.tar.bz2
snapshots/portage-latest.tar.bz2
Sauvegarde des archives sur clé USB ou disque (facultatif)
mkdir /mnt/dummy mount /dev/sda1 /mnt/dummy mkdir /mnt/dummy/archives-G cp *.bz2 /mnt/dummy/archives-G
dummy est un nom arbitraire qui doit permettre au système de s'y retrouver
archives-G est un nom arbitraire qui doit permettre à l'utilisateur de s'y retrouver
Selon le nombre de périphériques SCSI attachés au système, une clé USB peut se trouver en sdb1, sdc1...
ls -l /mnt/dummy devrait permettre de se repérer.
Récupération des archives préalablement sauvegardées sur une clé USB (facultatif)
mkdir /mnt/dummy mount /dev/sda1 /mnt/dummy cp /mnt/dummy/archives-G/*.bz2 .
Le point final est nécessaire: il représente le répertoire actuel
Décompresser les archives stage3* et portage-latest (dans cet ordre)
tar -xvjpf stage3-amd64-2008.0.tar.bz2 tar -xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
x extrait les fichiers contenus dans l'archive (".tar")
v mode verbeux, pas indispensable mais rassurant
j s'occupe de la (dé-)compression (".bz2")
p préserve les droits liés aux fichiers
f
C extrait dans le répertoire précisé
Choix d'un site miroir
mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
Choix dans la liste proposée d'un site miroir, qui sera ajouté au fichier /mnt/gentoo/etc/make.conf. Attention: on sélectionne le site avec la barre espace, on confirme avec [enter].
Rappelons-nous que nous sommes sur un disque virtuel, situé en mémoire. Une fois éteint, cette mémoire n'existe plus. Pour installer le système sur le disque, il faut changer de point de vue. Cela se fait avec chroot (change root).
Copier l'adresse de connexion sur le disque
cp -L /etc/resolv.conf /mnt/gentoo/etc/
Changement de racine de système
mount -t proc none /mnt/gentoo/proc mount -o bind /dev /mnt/gentoo/dev chroot /mnt/gentoo /bin/bash env-update source /etc/profile
Il sera possible, en cas de nécessité, de retourner à l'ancienne racine par exit
Mot de passe pour le super-utilisateur
passwd
Un avertissement sera donné en cas de mauvais mot de passe (trop court) qui sera néanmoins accepté.
En cas d'oubli de ce mot de passe, il est impossible d'administrer le système.
Ajout d'un utilisateur
useradd toto -m -G audio,cdrom,lp passwd toto
-m fabrique un répertoire personnel, en l'occurrence /home/toto pour l'utilisateur toto
-G inscrit l'utilisateur aux groupes audio, cdrom et lp (imprimantes)
userdel toto -r supprime l'utilisateur toto, ses inscriptions aux groupes et son répertoire personnel /home/toto
Choix de "Bruxelles" comme heure locale
cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime nano -w /etc/conf.d/clock
Pour une heure locale, préciser CLOCK="local" et préciser TIMEZONE="Europe/Brussels" en décommentant la ligne (enlever le #)
Mettre le système à l'heure
date date MMDDhhmmAAAA
Sans argument, date retourne la date et l'heure sous la forme Tue Jan 13 12:05:41 2009
Pour fixer la date et l'heure, indiquer en une chaîne sans espace:
MM mois en deux chiffres
DD jour en deux chiffres
hh heure en deux chiffres
mm minutes en deux chiffres
AAAA année en quatre chiffres
soit 011312052009 pour la date ci-dessus
Il est pssible d'ajouter deux chiffres pour les secondes en fin de chaîne
Choix du clavier
nano -w /etc/conf.d/keymaps
KEYMAP="azerty" ou be-latin1, fr-latin9, fr-pc, fr...
Choisir et générer les locales
nano -w /etc/locale.gen locale-gen
Dans le fichier locale.gen, il faut sélectionner (enlever le #) et modifier lesparamètres afin d'obtenir
fr_BE ISO-8859-1
fr_BE UTF-8
ou
fr_FR UTF-8
fr_FR ISO-8859-1
fr représentant la langue, FR et BE les variantes régionales
Édition du fichier des partitions
nano -w /etc/fstab
Exemple d'un fichier fstab convenant à la partition du disque IDE exposée au début
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/hda1 none swap sw 0 0 /dev/hda2 /boot ext3 defaults 0 0 /dev/hda3 / ext3 errors=remount-ro 0 1 /dev/hda4 /home ext3 rw,user,noauto 0 0 /dev/hdc /media/cdrom udf,iso9660 user,noauto,ro 0 0 /dev/sda1 /media/usbkey vfat user,noauto 0 0
Lorsque qu'un point de montage est lié à un descripteur de périphérique dans fstab, le montage est plus simple:
mount /dev/sda1 ou mount /media/usbkey
En cas de disque SCSI, les dénominations hda1, hda2... sont remplacées par sda1, sda2... ; la clé USB deviendra sdb1.
Pour pouvoir monter la clé USB avec mount /media/usbkey, il faut créer cette partition: mkdir /media/usbkey
/dev/hdc est indicatif, cela dépend du genre du lecteur de CD/DVD, et où il se trouve.
Nom de la machine
nano -w /etc/conf.d/hostname
Éditer le message d'accueil
nano -w /etc/issue
Si la machine n'est pas liée à un nom de domaine, il est possible d'enlever .\O de la chaîne "This is \n.\O (\s \m \r) \t"
Installation et configuration de la connexion
emerge baselayout emerge dhcpcd cd /etc/init.d ln -s net.lo net.eth0 # normalement deja fait nano -w /etc/conf.d/net /etc/init.d/net.eth0 start
Pour un utilisateur standard, la configuration du fichier /etc/conf.d/net est, pour l'interface eth0:
config_eth0=( "dhcp" )
dhcp_eth0="nodns nontp nonis"
En attendant de relancer le système, dhcpcd eth0 devrait lancer la connexion.
Pour s'en assurer: ping -c 3 www.gentoo.org
Automatisation de la connexion au démarrage
rc-update add net.eth0 default
Si plusieurs cartes Ethernet sont présentes, le système installé peut reconnaître comme eth1 ce que le CD d'installation avait reconnu comme eth0.
La grande force de gentoo est l'installation des logiciels adapté à un profil qui tient compte de la machine et de l'utilisateur. Il faut alors paramétrer son profil
Connaître son profil
ls -l /etc/make.profile
lrwxrwxrwx 1 root root 48 Apr 8 18:51 /etc/make.profile -> ../usr/portage/profiles/default/linux/amd64/2008.0
Si l'on décide de garder la possibilité de faire tourner des application 32bits, il ne faut pas activer le profil no-multilib.
Éditer la variable USE
nano -w /etc/make.conf
USE="gtk opengl qt4 kde dvd alsa cdr X"
Installation des sources du noyau et configuration de la compilation
emerge gentoo-sources cd /usr/src/linux make menuconfig
Partie délicate de l'installation. Beaucoup d'options sont déjà prévues.
[ ] permet l'inclusion d'une fonctionnalité dans le noyau ([*]) à l'aide de la barre espace
< > permet l'inclusion d'une fonctionnalité sous forme de module <M> ou son inclusion <*> à l'aide de la barre espace
Processor type and feature --»
Processor family: à préciser
En cas de chargement du système à partir d'un disque IDE/ATA (à inclure <*>, pas <M>):
Device drivers --»
ATA/ATAPI/MFM/RLL support --»
Enhanced IDE/MFMFLL disk/cdrom/tape/floppy support
Include IDE/ATA-2 DISK support
IDE Taskfile AccessDevice drivers
Legacy /proc/ide support
generic/default IDE chipset support
Lancement de la compilation du noyau
make && make modules_install
Il ne sera question que de GRUB, le lanceur LILO étant explicitement déconseillé pour les systèmes amd64.
Copie de l'image compilée du noyau dans le répertoire boot
cp /usr/src/linux/arch/x86/boot/bzImage /boot
Si le répertoire /boot dispose d'une partition propre, il faut la monter au préalable: mount /dev/hda2 /boot
Installation et paramétrage GRUB, installation du MBR
emerge grub nano -w /boot/grub/grub.conf grub
GRUB appelle (hd0,0) la première partition du premier disque, que celui-ci soit IDE/ATAPI (hda, hdb...) ou SCSI (sda, sdb...).
Lorsque des disques ATAPI et SCSI cohabitent, la numérotation dépend de l'ordre avec lequel le BIOS répertorie les disques.
Exemple de configuration de /boot/grub/grub.conf
# l'image par defaut: 0 est la premiere default 0 # nombre de secondes avant le lancement automatique timeout 5 # fond/couleur pour l'affichage du texte et de la selection color cyan/blue white/blue # mot de passe crypte, A NE PAS MODIFIER password --md5 $abracadabra # le choix. Ici, la partition swap est la premiere, celle contenant le boot est la deuxieme # mais la racine du système est en /dev/hda3 title Gentoo Athlon 2.6.27r7 root (hd0,1) kernel /boot/gentoo-2.7.27r7 root=/dev/hda3 ro savedefault title Rescue - Gentoo Athlon 2.6.27r7 root (hd0,1) kernel /boot/gentoo-2.7.27r7 root=/dev/hda3 ro single savedefault # exemple pour Windows # title Windows 95/98/NT/2000 # root (hd0,0) # makeactive # chainloader +1
Si la relance sans le CD d'installation n'aboutit pas, il ne faut heureusement pas tout recommencer: les partitions, les fichiers de configuration (date, clavier...) n'ont pas changé. La première chose à faire est de se rebrancher sur le disque à partir du Minimal CD. Si le système est installé sur la troisième partition du premier disque IDE/ATAPI:
Se rebrancher sur le système installé
mount /dev/hda3 /mnt/gentoo cd /mnt/gentoo mount -t proc none /mnt/gentoo/proc mount -o bind /dev /mnt/gentoo/dev chroot /mnt/gentoo /bin/bash env-update source /etc/profile
Est-ce que le fichier /usr/src/linux/arch/x86/boot/bzImage a bien été copié en /boot?
En cas de kernel panic, est-ce que le noyau a bien été compilé?
En cas de réinstallation du noyau dans /boot:
il ne faut pas relancer grub si /boot est bien indiqué sur la bonne partition
il ne faut rien changer sur /boot/grub/grub.conf si le nom du noyau ne change pas
Recherche du nom précis d'une application
emerge -s xfce
-s cherche à partir d'une chaîne insuffisante
on constate ici que le paquet s'appelle xfce4 , qu'il existe également xfce4-dict...
Mise à jour de la base de données des applications (ne pas exagérer)
emerge --sync
Il est possible que le système conseille l'installation d'une nouvelle version de portage: emerge portage
Recompilation des paquets concernés par les changements
emerge --update --deep --newuse world
Mise à jour du système
emerge -uDpv world
u - --update mise à jour du système
D --deep vérification profonde du système
p --pretend ne produit pas l'installation
v --verbose
Installation des outils gentoo
emerge gentoolkit
Paquet contenant les outils suivants:
equery configuration d'un paquet
Configuration d'une application
equery l paquet
A le système graphique KDE
emerge kde
Attention: de 150 à 200 paquets, 5 à 6 heures
Franciser KDE
LINGUAS="fr" emerge kde-i18n
Il est évidemment possible de choisir d'autres locales:
Tenter une configuration de xorg
xorgconfig
Système graphique plus léger, moins de deux heures
Installation de xfce
emerge xfce4
Habitué à Debian depuis la version 3.0 Woody, je n'ai aucune raison de le quitter. J'admire l'idée de distribution progressive et j'y reviendrai peut-être en cas de nécessité d'optimiser une machine.