--- page corrigée --- //[[david.lebeau@gmail.com|TheShift]] 2009/02/27 10:50// ====== Migration vers Funtoo.org ====== //**Guides et Tutoriels** Gentoo-Québec//\\ //[[http://www.gentoo-quebec.org/index.php?page=docs&v=503|PDF original]]// ==== Contexte ==== Tout d’abord, pour bien comprendre en quoi consiste cette migration, nous devons savoir qu’est-ce que c’est au juste **Funtoo.org** et comment on doit l’utiliser. Il est conseillé de lire l'[[gentoo:introduction-gentoo|introduction à Gentoo]].\\ \\ **Funtoo.org** c’est en fait un projet que le créateur de Gentoo **Daniel Robbins** a démarré en 2007. A l’origine, il avait fait le site pour appuyer Gentoo en créant des "Stages" et des "Snapshots" de ****Portage de manière presque quotidienne, car le profile 2008.0 avait été retardé. il y avait beaucoup beaucoup de mise à jour à effectuer et c’était très long à compléter, puisque lors de la première mise à jour du système, il fallait lancer une mise à jour qui pouvait durer en 3h et 7h dépendament de la vitesse de votre processeur.\\ \\ Par le suite, le projet a évolué et il est composé des éléments suivants : -Des Stages et des Snapshots de Gentoo -Git -L’arbre officiel Gentoo.org -L’arbre de développement Funtoo.org -Metro Vous devez changer **sylvain** pour votre utilisateur tout au long de ce document. \\ \\ ---- ==== Détails organiques du projet ==== === Stages et Snapshots de Gentoo === Daniel rend disponible des Stages(1-2-3) et des Snapshots de Portage de manière presque quotidienne à partir de ce lien : [[http://www.funtoo.org/linux/]]\\ \\ Ils sont disponibles pour la branche **Stable** et **Testing** de Gentoo.\\ \\ L’utilisateur peut prendre ceux-ci quand il veut installer sa Gentoo, car ils sont 100% compatible avec ceux de Gentoo.org. === Git === Tout d’abord, **Git** qu’est-ce que c’est ? Git c’est un outil que Linus Torvalds a créé pour gérer le développement noyau.\\ Vous pouvez lire [[http://git.or.cz/gitwiki/Git|cet article]] à propos de Git.\\ \\ En fait, ca permet de gérer les sources du noyau à travers les équipes de développement.Il a été créé dans le but de remplacer CVS.\\ Vous pouvez lire [[http://en.wikipedia.org/wiki/Concurrent_Versions_System|cet article]] à propos de CVS.\\ \\ Daniel de son côté utilise Git pour gérer son projet de développement.C’est la raison principale qui va nous pousser à installer Git lors de la migration. === L’arbre officiel Gentoo.org === Tout d’abord, dans le but de garder un développement cohérent du projet Funtoo.org, Daniel prend soin de copier l’arbre de Gentoo.org au complet (3-4 fois par semaine), par contre il le convertit du format CVS au format Git dans le but de le rendre conforme à son nouveau développement.\\ \\ Il faut comprendre que dans ce processus de développement, il veut garder une compatibilité entre le projet Gentoo et Funtoo.\\ L’arbre Gentoo.org est la base du développement de l’arbre Funtoo.org. === L’arbre de développement Funtoo.org === Cet arbre est en fait le terrain de jeu du projet Funtoo.org. C’est à cet endroit que Daniel et son équipe développent des nouveaux packages en plus d’ajouter des fonctionnalités qui ne sont pas encore disponibles dans l’arbre officiel de Gentoo.org.\\ \\ En date du 2008-12-14, il existe par exemple une nouvelle version de **Udev**, de **OpenRc** et une nouvelle version de **Xen** compatible avec le noyau 2.6.27. === Metro === Tout d’abord, **Metro** est un logiciel développé par Daniel pour automatiser la création des Stages et des Snapshots qui remplace **Catalyst** que Gentoo utilise depuis plusieurs années.\\ \\ Il a été nommé en l’honneur du Métro de Montréal.\\ \\ Donc, le projet Funtoo.org englobe un nouvel arbre (funtoo.org) et l’arbre officiel de Gentoo au format Git(gentoo.org), un nouveau logiciel gestionnaire de contenu Git et enfin un logiciel d’automatisation Metro.\\ \\ ---- ==== Migration vers Funtoo.org ==== === Installation de Git === # echo ”dev-util/git perl cgi curl subversion tk” >> /etc/portage/package.use # echo ”dev-util/git ∼amd64” >> /etc/portage/package.keywords # emerge -av dev-util/git Vous pouvez remplacer ∼**amd64** par ∼**x86** selon votre architecture # echo ”PORTDIR=/home/sylvain/git/portage” >> /etc/make.conf **La variable PORTDIR permet d’activer votre arbre venant de Funtoo.org**\\ C’est la même variable qui est utilisée pour activer un Overlay. === Installation du Git de Portage Gentoo et de Funtoo === $ cd /home/sylvain $ install -d git $ cd /home/sylvain/git $ git clone git ://github.com/funtoo/portage.git /home/sylvain/git/portage $ cd /home/sylvain/git/portage $ git checkout –track -b gentoo.org origin/gentoo.org $ git checkout –track -b funtoo.org origin/funtoo.org $ git branch $ git checkout gentoo.org $ git pull $ git checkout funtoo.org $ git pull === Installation de Metro === $ git clone git ://github.com/funtoo/metro.git /home/sylvain/git/metro # ln -s /home/sylvain/git/metro/metro /usr/bin/metro # ln -s /home/sylvain/git/metro/etc /etc/metro # ln -s /home/sylvain/git/metro /usr/lib/metro === Configuration de metro === # install -d /home/sylvain/mirror/linux/snapshots # nano /home/sylvain/git/metro/etc/metro.conf Vous devez changer **[section path/mirror]** comme suit : [section path/mirror] #: /home/mirror/linux : /home/sylvain/mirror/linux # git config –global user.name ”Sylvain Alain” # git config –global user.email ”sylvain@gentoo-quebec.org” Vous devez entrer votre nom et un email valide.\\ \\ ---- ==== Utilisation de Git ==== Maintenant que l’installation de Git et l’installation des nouveaux arbres sont fait, voici je que vous devez comprendre avant de poursuivre.\\ \\ Tout d’abord, il faut bien comprendre que l’installation de l’arbre de funtoo.org et la copie de portage gentoo.org se sont installés à côté de l’arbre officiel de Gentoo qui se retrouve dans **/usr/portage**.\\ \\ En effet, nous avons installé les 2 arbres (funtoo.org et gentoo.org dans votre /home).\\ \\ C’est une notion très importante à comprendre, car de cette façon on peut revenir en arrière très facilement.\\ \\ C’est la variable **PORTDIR** qui permet d’activer les 2 nouveaux arbres.\\ \\ Lorsque vous voulez modifier quelque chose au niveau de Git, vous devez toujours vous placer dans le répertoire suivant : # cd /home/sylvain/git/portage Lorsque vous utilisez Git, vous ne devez plus utiliser la commande suivante : # emerge –sync Vous devez utiliser celle-ci : $ git pull Enfin, si vous voulez revenir en arrière, vous pouvez mettre en commentaire la ligne **PORTDIR** dans votre fichier **/etc/make.conf** et lancer les commandes suivantes par la suite : # emerge –sync # time emerge -auDNv world # dispatch-conf # time emerge –depclean # time revdep-rebuild –ignore === Explications des commandes de Git === ***$ git branch** : Cette commande permet de savoir la branche active dans Git. ***$ git pull** : Cette commande de mettre à votre arbre qui est actif dans Git. ***$ git checkout gentoo.org** : Cette commande permet de rendre actif l’arbre gentoo.org, soit l’arbre officiel de gentoo.org au format git. ***$ git checkout funtoo.org** : Cette commande permet de rendre actif l’arbre de développement de funtoo.org\\ \\ Donc, lorsque vous voulez mettre à jour vos 2 arbres dans Git, vous devez lancer les commandes suivantes : $ git checkout gentoo.org $ git pull $ git checkout funtoo.org $ git pull $ git branch Pour plus de détails, je vous conseille de lire [[http://www.kernel.org/pub/software/scm/git/docs/git.html|la documentation sur Git]].\\ \\ ---- ==== Création d’un snapshot de Portage ==== Le logiciel Metro permet de créer des Stages et des Snapshots de Portage(gentoo.org) ou de Funtoo.org. $ cd /home/sylvain/git/portage $ git checkout gentoo.org $ su - # cd /home/sylvain/git/portage # export TODAY=”2008.12.14” Remplacez par la date du jour # time metro target/version: $TODAY target: gentoo/snapshot target/subarch: amd64 Remplacer amd64 par **∼amd64,x86** ou **∼x86** Le résultat va se retrouver dans **/home/sylvain/mirror/linux/snapshots/portage2008.12.14.tar.bz2**\\ Le fichier est de 80 Megs environ.\\ \\ ---- ==== Création des Stages de gentoo.org ==== === Configuration d’un Stage 1-2-3 fr CA === On doit éditer le fichier **stage3.spec** qui se trouve ici : **/home/sylvain/metro/targets/gentoo/stage3.spec**\\ \\ De plus, on va devoir aussi éditer le fichier **files.spec** qui se trouve ici : **/home/sylvain/git/metro/targets/gentoo/stage/files.spec** == Edition du fichier stage3.spec == Ce fichier permet de configurer le fichier de configuration du Stage 3 pour qu’il devient un Stage 3 Français Canadien. $ nano /home/sylvain/git/metro/targets/gentoo/stage3.spec [collect $[path/metro]/targets/gentoo/stage/main.spec] [section steps] chroot/run: [ #!/bin/bash $[[steps/setup]] USE="build" emerge --oneshot --nodeps portage || exit 1 export USE="$[portage/USE] bindist" emerge $[emerge/options] -e system || exit 1 if [ "$[emerge/packages]" != "" ] then emerge $[emerge/options] $[emerge/packages] || exit 1 fi cat << "EOF" > /etc/conf.d/clock CLOCK="local" TIMEZONE="America/Montreal" CLOCK_OPTS="" CLOCK_SYSTOHC="no" SRM="no" ARC="no" EOF # cat << "EOF" > /etc/conf.d/consolefont CONSOLEFONT="default8x16" CONSOLETRANSLATION="8859-15_to_uni" EOF # cat << "EOF" > /etc/conf.d/hostname HOSTNAME="gentootux" EOF # cat << "EOF" > /etc/hosts 127.0.0.1 localhost gentootux ::1 localhost EOF # cat << "EOF" > /etc/conf.d/keymaps KEYMAP="cf" SET_WINDOWKEYS="no" EXTENDED_KEYMAPS="" DUMPKEYS_CHARSET="" EOF # cat << "EOF" > /etc/conf.d/net config_eth0="dhcp" dhcpcd_eth0="-N" dns_domain_lo="homenetwork" EOF # cat << "EOF" > /etc/env.d/02locales LANG= "fr_CA.UTF-8" LANGUAGE="fr_CA.UTF-8" LC_ALL="fr_CA.UTF-8" EOF # Nous avons ajouté tout ce qui commence par **cat**. == Edition du fichier files.spec == $ nano /home/sylvain/git/metro/targets/gentoo/stage/files.spec cat << "EOF" > /home/sylvain/git/metro/targets/gentoo/stage/files.spec [section files] make.conf: [ # These settings were set by the metro build script that automatically built this stage. # Please consult /etc/make.conf.example for a more detailed example. ACCEPT_KEYWORDS="$[portage/ACCEPT_KEYWORDS:zap]" CHOST="$[portage/CHOST:zap]" CFLAGS="$[portage/CFLAGS:zap]" CXXFLAGS="$[portage/CXXFLAGS:zap]" LDFLAGS="$[portage/LDFLAGS:zap]" USE="$[portage/USE:zap]" ] locale.gen: [ # /etc/locale.gen: list all of the locales you want to have on your system # # The format of each line: # # # Where is a locale located in /usr/share/i18n/locales/ and # where is a charmap located in /usr/share/i18n/charmaps/. # # All blank lines and lines starting with # are ignored. # # For the default list of supported combinations, see the file: # /usr/share/i18n/SUPPORTED # # Whenever glibc is emerged, the locales listed here will be automatically # rebuilt for you. After updating this file, you can simply run ‘locale-gen‘ # yourself instead of re-emerging glibc. fr_CA ISO-8859-1 fr_CA.UTF-8 UTF-8 ] proxyenv: [ ] EOF # ] [section portage] ROOT: / Dans ce fichier, nous avons ajouté les lignes suivantes : fr_CA ISO-8859-1 fr_CA.UTF-8 UTF-8 == Création du fichier gentoo-quebec.conf == Le fichier gentoo-quebec.conf va contenir les options pour emerge en plus de contenir les packages qu’on veut installer en surplus. $ cd /etc/metro/builds $ cp gentoo.conf gentoo-quebec.conf $ nano gentoo-quebec.conf [section local] author: Sylvain Alain name: gentoo [section portage] stable: # name: gentoo-$[target/version] # #CFLAGS:-O2 -march=nocona -pipe # #CXXFLAGS:-O2 -march=nocona -pipe # #CHOST:x86_64-pc-linux-gnu # MAKEOPTS: -j5 USE: nls truetype userlocales unicode # LINGUAS:fr INPUT_DEVICES=keyboard mouse VIDEO_CARDS=vesa nvidia # # # # files/package.use: [ dev-util/git subversion perl cgi curl tk net-print/cups zeroconf ppds samba sys-libs/glibc userlocales ] # files/package.keywords: [ ] # # [when target/arch] profile: default/linux/$[target/arch]/2008.0/ # [section emerge] # options: --jobs=4 --load-average=6 packages: dev-util/git net-misc/dhcpcd # [section snapshot] # type: git # [section git] # branch: gentoo.org name: portage remote: git://github.com/gentoo/portage.git options: pull # [section metro] options/stage: ccache #### FIN DU FICHIER GENTOO-QUEBEC.CONF == Création du fichier funtoo.conf == Nous devons éditer le fichier **funtoo.conf** pour qu’il utilise le fichier **gentoo-quebec.conf** au lieu de **gentoo.conf** $ nano /etc/metro/fslayouts/funtoo.conf Il faut changer **type : gentoo** pour **type : gentoo-quebec** === Création d’un Stage 1-2-3 fr CA AMD64 === $ install -d /home/sylvain/mirror/linux/amd64/.control $ cd /home/sylvain/mirror/linux/amd64 $ install -d gentoo-amd64-2008.12.14 $ cd gentoo-amd64-2008.12.14 $ wget http ://www.funtoo.org/linux/amd64/funtoo-amd64-2008.12.14/stage3- amd64-2008.12.14.tar.bz2 $ cd .. $ echo "2008.12.14" > .control/lastdate $ echo "amd64" > .control/subarch # time /usr/lib/metro/scripts/build.sh amd64 Le résultat se trouve ici : **/home/sylvain/mirror/linux/amd64/gentoo-amd64-2008.12.14/**\\ \\ Le fichier **/home/sylvain/git/metro/targets/gentoo/stage3.spec** permet de configurer automatiquement presque tous les fichiers de configuration qu’on fait normalement quand on veut franciser notre installation.\\ \\ Le fichier **/etc/metro/builds/gentoo-quebec.conf** permet de configurer les **Use Flags**,le profile et 2-3 variables qui servent dans le **/etc/make.conf**.\\ \\ ---- ==== Migration complète ==== Cette section est réservée seulement pour les experts Il est possible de migrer complètement vers Funtoo.org, c’est-à-dire ne plus utiliser l’arbre officiel de Gentoo de manière permanente.\\ \\ Il faut être dans la branche **testing** avant de faire quoi que ce soit. # echo ”ACCEPT KEYWORDS=∼amd64” >> /etc/make.conf Vous pouvez remplacer **∼amd64** par **∼x86** selon votre architecture # time emerge -auDNv world === Installation de Git === Vous devez vous assurer d’avoir installé la version testing de Git. # echo ”dev-util/git perl cgi curl subversion tk” >> /etc/portage/package.use # emerge -av dev-util/git === Destruction de l’arbre officiel de Gentoo === # rm -r /usr/portage === Installation des arbres de funtoo.org === # cd /usr # git clone git ://github.com/funtoo/portage.git # cd portage $ git checkout –track -b gentoo.org origin/gentoo.org $ git checkout –track -b funtoo.org origin/funtoo.org $ git branch $ git checkout gentoo.org $ git pull $ git checkout funtoo.org $ git pull De cette manière, vous avez encore accès à l’arbre de Gentoo.org format Git ainsi qu’à l’arbre de Funtoo.org. === Mise-à-jour du système funtoo.org === Il reste seulement à mettre à jour votre installation à partir des packages de funtoo.org. $ cd /usr/portage $ git checkout funtoo.org $ git pull # time emerge -auDNv world Depuis la sortie de **Portage 2.2Rc20** dans l’arbre de Funtoo.org, il est maintenant recommandé d’utiliser la commande **emerge -sync**, car cette version prend en compte l’arbre de Funto automatiquement et elle regénère le metadata pour augmenter la vitesse de emerge.\\ \\ ---- //[[gentoo:gentoo|Retour à la page Gentoo]]//.