OldGentooWiki:Installation d'une Funtoo dans une machine virtuelle VirtualBox - Partie 2
De Gentoo-Quebec.
Sommaire |
Introduction
A la suite des opérations expliquées dans l'article Installation d'une Funtoo dans une machine virtuelle VirtualBox - Partie 1, l'instance de la machine virtuelle a été démarrée sous System Rescue CD et a vu son disque dur partitionné ainsi que les différents systèmes de fichiers créés. La présente partie va illustrer la mise en place des fondations du système : la mise en place du stage 3 et le chrootage.
Montage de la racine de la future installation Funtoo et activation de l'espace d'échange
Montage de la racine de la future installation Funtoo
System Rescue CD offre plusieurs répertoires destinés à servir de points de montage sous le répertoire /mnt :
Bien que l'utilisation de l'un ou de l'autre ces répertoires soit totalement indifférente, un point de montage additionnel /mnt/funtoo sera créé :
Il ne reste plus qu'à monter la partition qui servira de racine :
et à vérifier que tout soit correct :
/dev/sda3 apparaît comme montée sous /mnt/funtoo et est reconnue comme étant dotée d'un système de fichiers ext4 ce qui est conforme à ce qui a été fait dans la première partie de ce tutoriel (formatage de /dev/sda3 avec mkfs.ext4). C'est tout bon !
Activation de l'espace d'échange
Il est à présent temps d'activer l'espace fichier d'échange ! Pour ce faire la commande swapon est utilisée :
Il est aisé de constater avec la commande free que l'espace d'échange a bien été ajouté :
Téléchargement et mise en place des fondations du système
Image de stage 3
Le moment de télécharger l'archive dite de stage 3 et de la déployer sur la partition qui servira de racine est venu ! Un « stage 3 » est une archive contenant tous les fichiers formant les fondations d'un système Gentoo/Funtoo GNU/Linux à partir desquelles tout le reste du système sera déployé. Ce stage 3 contient entre autres un compilateur C/C++ fonctionnel, les utilitaires de base Gentoo/Funtoo, un moteur d'exécution Python nécessaire à Portage, etc. « Stage 3 » est nommé ainsi en référence à son processus de construction qui par deux autres étapes intermédiaires nommées « stage 1 » et « stage 2 » (voir l'article consacré à Metro).
- Sur les serveurs Funtoo, tous les fichiers se terminant par -current.tar.xz sont des références (liens symboliques) pointant vers les fichiers les récemment produits par le projet (archive de stage 3, archive de l'arbre Portage...).
- Lorsque vous spécifiez une de ces références, le contenu du fichier vers lesquelle sera téléchargé et sauvegardé sur votre ordinateur avec le nom de la référence (ex. si une référence s'apelle stage3-core2_32-current.tar.xz le fichier sera téléchargé sur votre machine sous l'appellation stage3-core2_32-current.tar.xz).
Dans ce tutoriel, le réseau local auquel l'environnement virtualisé à accès dispose d'un mirroir Funtoo (dans votre cas il vous faudra très probablement récupérer le nécessaire depuis un des serveurs Funtoo dont la liste est donnée dans l'article Funtoo ou sur Funtoo.org). La récupération du stage 3 s'effectue tout simplement par la commande suivante :
# wget ftp://192.168.1.2/funtoo/~funtoo/core2_32/stage3-core2_32-current.tar.xz
- Prêter attention au ~. Le ~ indique une version dite testing de la distribution (cette version dispose des versions plus récentes des différents paquets logiciels). En pratique il est apparu après plusieurs semaines d'utilisation et mises à jours qu'une Funtoo testing est aussi stable si ce n'est plus qu'une version stable de Gentoo !
- Le processeur de la machine virtuelle est ici un Intel Core 2, Funtoo dispose de stage 3 pour plusieurs processeurs différents (x86 générique, AMD Opteron64....)
- rappel : nous utilisons un système 32 bits... D'où le _32 !
Il faut ensuite la décompresser directement dans /mnt/funtoo qui est ici le répertoire courant et de contrôler le résultat :
Préparation au chrootage
A présent que le stage 3 est décompressé, il incombe de réaliser quelques opérations supplémentaires à savoir:
- le montage de la partition /boot qui contiendra les images binaires du noyau GNU/Linux ainsi que les différents fichiers du chargeur Grub
- le montage des alias de /proc, /dev et /dev/pts
- la copie du fichier /etc/resolv.conf qui a été générée lors de la configuration réseau
- la copie de la liste des montages actuels (important pour Grub)
# mount -o bind /dev /mnt/funtoo/dev
# mount -o bind /dev/pts /mnt/funtoo/dev/pts
# mount /dev/sda1 /mnt/funtoo/boot
Petit contrôle :
Reste à copier /etc/resolv.conf et la liste des montages actuels :
Chrootage
Certaines versions de System Rescue CD ont un problème (connu) : si vous obtenez lors de la compilation de votre système le message /usr/bin: file not recognized: Is a directory, il vous faudra vous chrooter en fixant explicitement la variable SHELL à /bin/bash comme ceci :
% env -i HOME=/root TERM=$TERM SHELL=/bin/bash /bin/chroot /mnt/funtoo /bin/bashC'est le premier moment historique de toute installation Funtoo : le chrootage dans /mnt/funtoo !
Noter au passage le changement d'aspect de la ligne de commande qui passe du vert et bleu au rouge et bleu, le % devient un # (accessoirement le shell n'est plus ZSH mais BASH).
Arbre Portage
Il s'agit à présent de récupérer une archive de l'arbre de paquets Portage qui est géré au travers du SCM Git dans Funtoo. Depuis la mi-juillet 2010 cet arbre est exclusivement distribué sous sa saveur « mini-manifeste ». Cette saveur élimine certaines redondances d'informations dans les manifestes des différents paquets logiciels qui sont à présent gérées au travers de fonctionnalités intrinsèques à Git (pour plus de détails sur les mini-manifestes, voir l'article Mini-manifestes arbre Portage Funtoo consacré à ce sujet).
Là encore, il faut télécharger la dernière archive en date de Portage (portage-current.tar.xz) :
Il faut ensuite décompresser l'archive dans /usr (noter le « J » en majuscule dans la série d'option qui permet de spécifier à tar que l'archive est compressée en LZMA2). Une fois l'archive décompressée, l'arbre Portage est situé dans /usr/portage :
Noter que l'archive contient pas de copie pas de copie de travail sortie (dans le jargon Git celà s'apelle un checkout), checkout qu'il faut donc faire :
Profitons d'être dans le répertoire /usr/portage pour ouvrir une petite parenthèse : sous Funtoo un paquet se rattache à une (et une seule) catégorie comme par exemple sys-apps, sys-dev, net-misc ou dev-ada ce qui permet de le désigner sans aucune ambiguïté de ses congénères par une appellation de la forme nom de catégorie/nom du paquet. Il ne peut y avoir ainsi qu'un et un seul paquet s'appelant sys-devel/gcc tout comme il ne peut y avoir qu'un seul paquet nommé sys-apps/portage. Bien évidemment un paquet peut posséder plusieurs versions (sys-devel/gcc-4.3.1 pour GCC 4.3.1, sys-devel/gcc-4.4.0 pour GCC 4.4.0). Notez que Portage est en mesure de se débrouiller avec le seul nom du paquet si ce nom est en lui-même unique au sein de tous les paquets de l'arbre Portage (ex. si un et un seul paquet, peut importe sa catégorie, se nomme gcc Portage sera en mesure de l'identifier de manière non ambiguë).
Une fois le checkout effectué, un ls -l permet de constater que /usr/portage contientplus d'une centaine de répertoires. À quelques exceptions près (répertoires eclass, portage et profiles notamment), ces répertoires correspondent aux différentes catégories des paquets disponibles sous Funtoo dont les fameuses catégories sys-apps (/usr/portage/sys-apps), sys-dev (/usr/portage/sys-dev), net-misc (/usr/portage/net-misc) et dev-ada (/usr/portage/dev-ada) qui ont été évoquées précedemment !
Chacun de ces répertoires de catégories contient lui-même un second niveau de répertoires dont chacun d'eux correspond à un paquet (sys-devel/gcc => /usr/portage/sys-devel/gcc). Dans ce second niveau de répertoire se trouvent un certain nombre de fichiers dont un certains d'entre eux se terminent par .ebuild. Ces fameux fichiers .ebuild (un fichier ebuild pour chaque version disponible du paquet) contiennent toutes les directives nécessaires Portage pour télécharger, le code source d'une version particulière d'un paquet, le compiler et l'installer.
L'arbre Portage est à présent presque opérationnel à un petit détail près ! Il reste à effectuer au une synchronisation entre l'arbre Portage tel qu'il existe dans le répertoire /usr/portage et l'arbre Portage tel qu'il existe actuellement dans le dépôt Git (situé sur GitHub) du projet Funtoo. Ceci est effectué par :
- Si rien de nouveau n'a été publié dans l'arbre Portage depuis que son archive (récupérée un peu plus tôt dans cette partie du tutoriel) a été construite auquel cas Already up-to-date sera affiché.
- Il est possible que des messages Performing Global Update soient affichés. Ceci est tout à fait parfaitement normal, en particulier à lors de cette première synchronisation et cela se produira de temps à autre dans le futur. Ces messages indiquent que Portage effectue quelques modifications préalablement à la synchronisation à l'arbre Portage (il s'agit le plus souvent du déplacement de certain paquets d'une catégorie à l'autre ce qui contribue à réduire le volume de données transférées lors de la synchronisation proprement dite).
Fin de la deuxième partie
Les fondations du système sont à présent en place, la prochaine étape consistera à personnaliser plusieurs fichiers et à commencer à compiler les premiers paquets comme expliqué dans Installation d'une Funtoo dans une machine virtuelle VirtualBox - Partie 3 !
















