Pour permettre la naissance de gNewSense, nous avons créé notre constructeur qui permet la création d'une nouvelle distribution GNU/Linux basée sur Ubuntu Hardy. À partir d'un simple fichier de configuration, vous pouvez choisir le nom de votre distribution, sa version, le slogan associé et les paquets que vous désirez installer/supprimer par défaut. Les graphismes seront automatiquement générés. Ces scripts sont bien entendu plus adaptés à la création de gNewSense, mais ils devraient fournir une bonne base sur laquelle travailler. Notez qu'il n'est pas nécessaire de suivre ces étapes pour utiliser gNewSense, vous pouvez télécharger un fichier ISO depuis l'un de nos miroirs.

Vous aurez besoin d'au moins 80 Go d'espace disque libre et, de préférence, d'une connexion Internet très rapide (vous téléchargerez 40 Go de données). Cela peut être lancé sur tout dérivé de Debian capable de "bootstrapping" Ubuntu Hardy (8.04). Toutes les commandes doivent être lancées en tant que root.

Si vous avez des requêtes, rejoignez-nous sur notre salon IRC. Ce logiciel est encore largement en version béta.

Étape 1 : clef GPG

Les plus récentes versions d'apt nécessitent la distribution de fichiers signés avec une clef GPG dans un dépôt pour assurer l'intégrité de la distribution, notre première étape est donc la création d'une clef GPG.

 gpg --gen-key

fera cela pour vous. Assurez-vous que la clef a un mot de passe vide. Notez l'empreinte de la clef, car vous en aurez besoin plus tard pour le fichier de configuration.

Étape 2 : se procurer builder

Pour lancer les scripts de construction, vous aurez besoin d'obtenir bazaar.
Assurez-vous d'avoir installé bazaar :

 apt-get install bzr

Téléchargez ensuite Builder (environ 35 Mo) :

 bzr branch http://bzr.savannah.nongnu.org/r/gnewsense/builder
 cd builder

Pour obtenir les paquets source propres à gNewSense, vérifiez-les avec mr (cela peut être un lourd téléchargement, en fonction des paquets ayant été ajoutés) :

 apt-get install mr
 cd packages
 mkdir deltah{,-security,-updates,-backports}
 mr -c gnewsense.mrconfig checkout

Étape 3 : configuration

Copiez le fichier config vers config.local, ouvrez ensuite config.local dans un éditeur de texte. Les paramètres dont vous devez vous soucier le plus sont listé ci-dessous, avec une brève description. Modifier les autres paramètres mènera à une personnalisation plus poussée (voyez les commentaires dans config/config.local pour savoir ce que font chacun des paramètres).

MIRRORLOCAL est le chemin vers votre miroir Ubuntu (utilisé dans l'étape 4)

MIRROR est soit le miroir configuré à l'étape 5, soit un miroir Ubuntu servi via http. Il devrait contenir les paquets de mises à jour de sécurité.

DISTRONAME est le nom que vous voulez donnez à votre distribution et qui devrait ne contenir que des chiffres et des lettres.

SIGNINGKEY est votre empreinte GPG de l'étape 1, elle ne devrait contenir aucune espace.

ALL_REPO_ARCHES liste toutes les architectures que vous désirez dans votre. Seule i386 est actuellement supportée.

REPOAPT est l'endroit d'où les scripts de construction iront chercher les paquets, vous devriez donc configurer Apache pour assurer cela.

DOMAIN est utilisé pour créer le sources.list par défaut lors de l'installation. Nous supposons une configuration du type Ubuntu où vous avez un archive.DOMAIN et un security.DOMAIN et leurs sous-domaines pour chaque code de pays.

REPODST est l'endroit où le miroir sera construit dans le système de fichiers (par défaut, $BASEDIR/$DISTRONAME_L).

Assurez-vous d'effacer les lignes suivantes du fichier config.local, ou vous engendreriez une boucle dans les scripts :

 # Allow for local customisations
 if [ -r config.local ]; then . config.local; fi

 if [ -r config.auto ]; then . config.auto; else exit 1; fi

Ces lignes doivent être conservées dans le fichier config.

Étape 4 : debmirror

On crée ici un trousseau de clés pour le miroir, de manière à pouvoir rester en mode 'apt sécurisé'.

 sudo mkdir /le/répertoire-trousseau/cible

Importez le trousseau Ubuntu, utilisé pour vérifier les paquets en amont (upstream).

 gpg --no-default-keyring --keyring /le/répertoire-trousseau/cible/trustedkeys.gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg

Ce miroir nécessitera environ 50 Go pour l'architecture i386 seule, et 70 Go pour les architectures i386 et amd64. Ce miroir devrait être créé sur un disque dur avec au moins 10 Go d'espace libre après la création du miroir.

 export GNUPGHOME=/home/mirrorkeyring

 debmirror --verbose --progress --method=http --host=ie.archive.ubuntu.com --arch=i386 --source \
 --dist=hardy,hardy-security,hardy-updates,hardy-backports --section=main,main/debian-installer,universe \
 --root=ubuntu /le/répertoire/cible

 unset $GNUPGHOME

/le/repertoire/cible devrait être le chemin défini dans $MIRRORLOCAL

Étape 5 : paquets

Vous aurez besoin de nombreux paquets pour que Builder s'éxecute correctement.

 apt-get install reprepro debmirror build-essential apache2 subversion cdebootstrap debootstrap imagemagick apt-utils
 apt-get install squashfs-tools netpbm syslinux bittornado fakeroot devscripts equivs sharutils mkisofs

S'il manque des paquets de cette liste, merci de nous les signaler.

Étape 6 : mettre en place REPODST

Le lien en dur de $REPODST (répertoire cible de la distribution) est géré par gen-repo, vous n'avez donc pas à le faire à la main.

Pour la mise en place initiale, lancez gen-repo

 ./gen-repo

Pour que gen-livecd fonctionne, vous aurez besoin de desservir $REPODST avec Apache (ou un autre serveur http). La manière la plus simple de le faire est de créer un lien symbolique de $REPODST dans /var/www/$DISTRONAME_L, et de laisser la variable $REPOAPT seule.

 mkdir -p /var/www/
 ln -s $REPODST /var/www/$DISTRONAME_L

Il est également important de rendre ici votre miroir Ubuntu (de l'étape 4) accessible via http

 ln -s /le/repertoire/cible /var/www/ubuntu/

Étape 7 : générer le dépôt

 ./do-update

Cette action prendra un bon moment. Le dépôt sera peut-être dans un état inconsistant pendant l'exécution de ces commandes, c'est pourquoi vous n'envoyez vos modifications sur un miroir qu'à l'étape 7. Chaque fois qu'il y a de nouvelles versions en amont, (par exemple des mises à jour de sécurité), relancez do-update (et debmirror si besoin).

Si vous utilisez un espace utilisateur 32 bits sur un noyau 64 bits, installez le paquet linux32 et utilisez :

 ./gen-repo && linux32 ./do-update

Étape 8 : générer le LiveCD

 ./gen-livecd

L'image créée sera placée dans $LIVECDDIR/$DISTRONAME_L-livecd-$RELEASE-$ARCHTOBUILD-$LIVECD_VERSION.iso .

 ./gen-cdsource
 ./stage-cd

Cela préparera une archive tar des sources et placera l'iso dans $LIVECDDIR.

Étape 9 : envoyer votre dépôt vers un miroir et le publier

Vous pouvez maintenant publier vos répertoires dépôt (le dists et le pool) ainsi que votre LiveCD sur votre miroir et publier mondialement votre nouvelle distribution.

 ./push-repo
 ./push-cd

© Brian Brazil 2006
© Karl Goetz 2009

Builder.fr/HowToCreateYourOwnGNULinuxDistribution (last edited 2010-07-27 16:24:17 by pitof)