Gentoo partout, Slackware nulle part.
Par Jean-Seb le dimanche 2 septembre 2007, 14:45 - Linuxeries - Lien permanent
Allez c'est décidé, je vire cette Slackware et j'installe une Gentoo...
ou pas ?
Voici mes notes d'installation pour les hésitants.
mise à jour : 5 mai 2008
mise à jour : 14 décembre 2009 (note pour dual-boot
MS-Windows)
Installation d'une Gentoo
Librement inspiré de la doc officielle, avec les ajouts des problèmes que j'ai rencontré.
Le boot
- Install depuis le minimal-cd (cd de 100mo avec système de fichier compressé)
Je déconseille l'install depuis un live-cd, qui va installer plein de binaires pas forcéments à jour (voire même un vieil environnement de compilation blend-386 tout foireux).
- Booter depuis le minimal-cd (noyau: gentoo ou gentoo-nofb)
- Choisir la résolution (80x50 conviendra très bien à un moniteur 17 pouces)
- Choisir le clavier (si erreur ou regrets,
loadkeys frdepuis le shell)
- Changer le password root (important)
# passwd
- Mise en place réseau, identification de l'interface
# lspci (suivi éventuellement d'un modprobe pour le driver de
la carte réseau)
- Activation de la carte réseau, au choix:
soit net-setup ethX
soit, si on veut le faire à la main
ifconfig ethX ip_machine route add default gw ip_passerelle echo nameserver ip_dns > /etc/resolv.conf
Pour poursuivre l'installation depuis un autre PC, c'est le moment de lancer le
serveur ssh (facultatif): /etc/init.d/sshd/start
Création du système de fichier
Bon, tout le monde sait partitionner avec fdisk ?
Rien de spécial à raconter ici aux vieux routards de la Slackware, qui doivent avoir l'habitude maintenant.
- Formater les partitions
mkfs.ext3 pour un FS journalisé
mke2fs -j /dev/partition qui fait la même chose que
ci-dessus
- Créer le swap
mkswap /dev/votre_partition suivi d'un swapon
# mount /dev/partition_systeme /mnt/gentoo
(ce qui suit n'est à faire que si vous avez créé une partition dédiée au
boot)
# mkdir /mnt/gentoo/boot # mount dev/partition_de_boot /mnt/gentoo/boot
Installation du stage3 (système de fichier minimal Gentoo)
- Vérifier que la date est bonne (au format UTC)
# date
Eventuellement pour corriger la date:
date MMDDhhmmYYYY
- Installation du stage3
Se mettre à la racine de votre future partition système:
# cd /mnt/gentoo
Lancer links sur la liste des miroirs Gentoo
# links http://www.gentoo.org/main/en/mirrors.xml
Choisir un serveur dans un pays proche/fiable.
Aller dans releases/x86 (ou votre architecture: amd64, ppc, etc..): /current/stages.
Choisir le stage3 voulu (en général, stage3-i686, et 'D' pour le charger). L'archive fait un peu plus de 100mo.
Remonter à la racine des serveurs
Aller dans snapshots et reprendre la dernière archive Portage. (environ 40mo)
Quitter links, et dépacker l'archive afin d'obtenir le système de fichiers, et l'arborescense Portage.
Attention à garder les permissions pour le système de fichiers (flag -p de tar)
# tar xjpf stage3* # cd /mnt/gentoo/usr # tar xjf portage
Chroot du système et configuration de base
# cd / # mount -t proc proc /mnt/gentoo/proc # cp -L /etc/resolv.conf /mnt/gentoo/etc/ # chroot /mnt/gentoo /bin/bash
Attention! A partir du "chroot", on n'a plus que "nano" comme éditeur de texte.
Si on a fait le chroot sur la machine d'installation, et qu'on prend la main par la suite avec ssh depuis une autre machine, il faudra bien sûr refaire le chroot.
Rêglages divers
- Mise à jour des fichiers de config
# env-update && source /etc/profile
Rêglage du fuseau horaire (pour la France):
# cp /usr/share/zoneinfo/Europe/Paris /etc/localtime # nano /etc/confd./clock (mettre TIMEZONE="Europe/Paris")
Vérifier que tout est correct avec # date
Si ce n'est pas la bonne date (par exemple, date affiche 17h30 alors qu'il est 15h30 au moins d'aout), il faut rêgler à nouveau la date de l'horloge, puis faire un
# hwclock --systohc
qui reglera l'horloge hardware en utilisant l'heure système.
Note pour les utilisateurs d'un dual-boot MS-Windows
- Si vous avez un Windows installé sur votre machine, ce petit malfaisant se permet de modifier l'horloge système.
- Dans ce cas, il vous faudra abandonner l'UTC dans la config Gentoo, et
modifier /etc/conf.d/clock
- Il faut prévenir le système qu'il doit utiliser l'heure locale et abandonner les fuseaux.
# Dans /etc/conf.d/clock #CLOCK="UTC" CLOCK="local"
host et domain
# cd /etc
Editer le fichier "hosts". Syntaxe:
"127.0.0.1 mybox.at.myplace mybox localhost"
décomposition des 4 champs:
127.0.0.1
mybox.at.myplace = FQDN
mybox = host alias
localhost = host
Editer conf.d/hostname, et remplacer le localhost par le nom de la machine. HOSTNAME="youplala"
Networking
éditer le fichier /etc/conf.d/net
créer un lien symbolique sur ce fichier, pour désigner l'interface:
# ln -s net net.eth0
mettre dans net les infos minimales:
config_eth0=( "192..../24" ) routes_eth0=( "default via ip_passerelle" )
# rc-update add net.eth0 default pour que tout ça soit chargé
au boot.
si besoin, ajouter le chargement automatique du module de la carte réseau:
# echo r8169 >> /etc/modules.autoload.d/kernel-2.6
Eventuellement, ajouter le lancement de sshd au boot:
rc-update add sshd default
Editer le fichier /etc/fstab
(exemple pour ceux qui ont une partition pour /boot, sinon, enlever la première ligne)
/dev/hda1 /boot ext2 noauto,noatime 1 2 /dev/hda3 / ext3 noatime 0 1 /dev/hda2 none swap sw 0 0 proc /proc proc defaults 0 0
nb : si vous n'avez pas un disque ATA branché en primaire sur le premier controleur, adaptez le nom du device.
à propos de proc : son ajout n'est pas nécessaire, l'installeur de Gentoo est censé s'en charger.
à propos de l'ordre des lignes ci dessus : j'ai repris cet exemple de la doc officielle, mais on m'a signalé que l'ordre de montage était important, et que boot devrait se trouver après le montage de la partition root (donc, il faudrait permuter les deux premières lignes de l'exemple)
Juste au cas où, vérifier que ces fichiers sont corrects:
/etc/rc.conf (nb unicode se paramètre ici)
/etc/conf.d/rc
/etc/conf.d/keymaps
Récupération des sources du noyau et compilation
- Récupérer les sources
# emerge gentoo-sources (pour les sources du noyau patché
Gentoo)
OU
# emerge vanilla-sources (pour les sources "officielles" de
kernel.org)
OU encore
# wget (adresse des sources sur kernel.org)
- compilation du noyau
Juste pour info, les étapes de compilation:
# cd /usr/src/linux # make menuconfig # make # make modules_install # cp arch/i386/boot/bzImage /boot/kernel
nb: les utilitaires liés au noyau (comme iptables) vont utiliser gentoo-sources ou vanilla-sources.
make.conf
Il est temps de se préocupper de l'épine dorsale de votre Gentoo, j'ai nommé /etc/make.conf
Au minimum, mettre les flags pour votre CPU avant de compiler quoi que ce soit (ça marchera sans, mais l'utilisation optimale de votre matériel est un des interets de la Gentoo).
- Pour les flags optimum par architecture
liste des flags de compilation Gentoo
- Ajouter également
FEATURES="parallel-fetch ccache"
- On peut également positionner les USE généraux (directives générales, et donc non liées à un seul paquet).
Exemple pour mon serveur:
USE="unicode -kde -qt3 -qt4 -arts -eds -esd -gnome -gstreamer -gtk"
Installer un syslogger et un daemon cron
Par défaut, rien n'est loggé, et cron n'est pas encore installé aux commandes.
Note: les démons cron ont besoin d'un serveur mail. Par défaut, c'est ssmtp qui est installé (on peut bien sûr en mettre un autre par la suite).
J'utilise vixie-cron et syslog-ng, mais ce ne sont pas les seuls disponibles. Ils sont relativement répandus et on trouve facilement de la doc à leur sujet.
# emerge syslog-ng vixie-cron # rc-update add syslog-ng default # rc-update add vixie-cron default
Créer un utilisateur
Ne faites pas comme les admins windows, arrêtez de vous logger en root !
# adduser -g users -G lp,wheel,audio,cdrom,portage,cron -m jseb # passwd jseb
Utilitaires indispensables:
emerger gentoolkit (contient notamment equery, euse, revdep-rebuild)
emerger portage-utils (contient les commandes
q
: qcache, qatom, qgrep, ...)
emerger eix (recherche rapide dans l'arbre portage)
udev
avant de rebooter, il est imporant de emerger udev.
emerge -uav udev
le paramètre -u
signifie update (fait plus de choses qu'un
simple emerge).
Préparation du boot
Et maintenant, redémarrez votre... hmmm... STOP! on n'a pas de boot!
# emerge grub
Edition de la config: /boot/grub/grub.conf
Exemple pour disque dur ATA, avec partition système Gentoo située sur la première partition physique du disque.
default 0 timeout 10 title=Gentoo root (hd0,0) kernel /boot/kernel root=/dev/hda1
puis continuer dans l'interface de gestion de grub:
# grub grub> root (hd0,0) grub> setup (hd0) grub> quit
On reboote !
- Si vous êtes croyant, c'est le moment des prières à votre déité. Les mécréants se contenteront de croiser les doigts.
Boudiou, il veut pas de mon password root !
En cas de problèmes pour se logger (mot de passe root non accepté)
(merci à Frédéric pour l'astuce)
ajouter à la ligne de paramètres grub: init=/bin/bash
On arrive sur un shell root sans password:
# mount / -o remount,rw # passwd # mount / -o remount,ro # exit (on a un kernel panic à ce stade, car on a quitté l'unique programme du noyau)
Pas la peine de laisser mijoter
Voila, c'est prêt. Dès que possible, installez ccache et distcc pour accélérer la compilation.
Plus qu'à lire la doc de Portage et commencer à compiler vos packages.
C'est le moment également de ressortir vos cartes de la région pour aller
vous promener, si vous décidez de compiler KDE et Gnome 