LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


gentoo:gentoo-funtoo

— page corrigée — TheShift 2009/02/27 10:50

Migration vers Funtoo.org

Guides et Tutoriels Gentoo-Québec
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'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 :

  1. Des Stages et des Snapshots de Gentoo
  2. Git
  3. L’arbre officiel Gentoo.org
  4. L’arbre de développement Funtoo.org
  5. Metro

<note>Vous devez changer sylvain pour votre utilisateur tout au long de ce document.</note>


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 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 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.
<note>L’arbre Gentoo.org est la base du développement de l’arbre Funtoo.org.</note>

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

<note>Vous pouvez remplacer ∼amd64 par ∼x86 selon votre architecture</note>

# 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 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”

<note>Remplacez par la date du jour</note>

# time metro target/version: $TODAY target: gentoo/snapshot target/subarch: amd64

<note>Remplacer amd64 par ∼amd64,x86 ou ∼x86</note> 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:
# <locale> <charmap>
#
# Where <locale> is a locale located in /usr/share/i18n/locales/ and
# where <charmap> 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: [
<?python
for x in ["http_proxy","ftp_proxy","RSYNC_PROXY"]:
if x in os.environ:
print x+"=\""+os.environ[x]+"\""
else:
print "# "+x+" is not set"
?>
]
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 <sylvain@gentoo-quebec.org>
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

<note important>Cette section est réservée seulement pour les experts</note> 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

<note>Vous pouvez remplacer ∼amd64 par ∼x86 selon votre architecture</note>

# 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.


Retour à la page Gentoo.

gentoo/gentoo-funtoo.txt · Dernière modification : 2018/11/17 12:53 de 127.0.0.1