Fr FR/Outils/Kadischi/Documentation

From FedoraProject

Jump to: navigation, search

Contents

Documentation de Kadischi

Traduit de la page originale Documentation: par LuyaTshimbalanga et ThomasCanniot

A propos de Kadischi

Qu'est-ce que Kadischi?

Kadischi est une application pour créer un Live CD basé sur Fedora. Il utilise le dépôt de Fedora comme entrée et génère une image iso de livecd.

Actuellement, Kadischi est en cours de développement mais contient des fonctions de base pouvant être exécutée.

Comment fonctionne Kadischi?

Kadischi utilise Anaconda pour installer le système dans un répertoire temporaire (spécifié par le fichier de configuration) sur le disque dur de l'utilisateur. Puis il exécute une collection des scripts (les emmagasine dans /usr/local/share/kadischi/post_install_scripts) afin de modifier le système pour fonctionner dans un environnent de CD (lecture seulement). Lorsque les modifications sont faites, Kadischi crée une image initrd, compresse l'arborescence du système (crée une copie compressée et détruit l'original) et crée une image iso du système.

Pour plus de détails sur le processus, consultez la section "Sous le capot".

Rapport des bogues

Utilisez bugzilla pour soumettre des bogues et demander des nouvelles options. Pour plus d'informations sur la procédure à suivre, jetez un oeil à la page ["Kadischi"] .

Crédits

Kadischi s'appuie largement sur le paquetage readonly-root du projet Stateless-linux .

Les décisions relatives au design ont été prises collectivement par les membres de la liste fedora-livecd .

Certaines idées ont été inspirées par le projet linux4all .

Le nom du projet provient d'Elliot Lee.

Le mainteneur précédent du projet était Darko Ilic (darko.ilic@gmail.com).

Puisque le projet avait debuté comme l'un des projet du "Googles Summer of Code ", certains crédits vont a Google  ;)

Installation

Conditions

Les paquetages suivants sont nécessaires a l'exécution de Kadischi:

  • anaconda
  • busybox-anaconda
  • syslinux
  • mkisofs
  • zisofs-tools
  • e2fsprogs

Pour les installer, exécutez

yum install anaconda busybox-anaconda syslinux mkisofs zisofs-tools e2fsprogs

Pour la compilation de Kadischi a partir du code source, le paquetage suivant doit être installé :

  • kudzu-devel

Pour l'installer, exécutez

yum install kudzu-devel

Note sur YUM

Vous rencontrez certainement un message d'avertissement durant l'installation d'anaconda

...
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID db42a60e
public key not available for anaconda-help-10.1.0-1.noarch.rpm
Retrieving GPG key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

The GPG key at file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora (0x4F2A6FD2)
is already installed but is not the correct key for this package.
Check that this is the correct key for the "Fedora Core 4 - i386 - Base" repository.

Executez rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY pour importer la clé a utiliser pour ce paquetage.

Téléchargement

Pour le moment, le téléchargement de Kadischi se fait via un CVS anonyme.

Depuisun terminal, exécutez la commande suivante (appuyez sur Entrée lorsqu'on vous demande votre mot de passe) :


export CVSROOT=:pserver:anonymous@cvs.fedora.redhat.com:/cvs/devel
cvs -z3 login
cvs -z3 co kadischi

Si vous n'avez pas de client cvs installé sur votre machine, vous pouvez l'installer par cette commande

yum install cvs


Installation

Allez dans le répertoire racine de l'arborescence source (<code>cd kadischi) et exécutez ./autogen.sh. Il configura les paquetages à construire. Vous pouvez passer aussi certaines options sur ./autogen.sh et il le dirigera sur ./configure.

Puis vous devez exécuter la commande make afin de compiler l'application.

Exécutez make install pour installer l'application (le chemin d'installation par défaut est /usr/local/share/kadischi pour les fichiers d'application et /etc/kadischi pour les fichiers de configuration).

Une autre étape pour exécuter l'application est de patcher anaconda. Les fichiers à patcher sont /usr/sbin/anaconda et /usr/lib/anaconda/flags.py. Les patchs sont dans le répertoire /usr/local/share/kadischi/patches dir pour anaconda-10.2.1.5-2 (version par défaut sur FC4).

Pour plus d'informations sur les patchs, consultez la section d'Appendice "Comment appliquer un patch"

Configuration

Vous devrez modifier /etc/kadischi/build.conf

gedit /etc/kadischi/build.conf &

et ajuster la variable BUILDDIR. Par exemple:

BUILDDIR=/tmp

BUILDDIR est un répertoire utilisé pour emmagasiner les fichiers temporaires (l'installation temporaire agit sur ce répertoire). Vous aurez besoin d'environ 1.5x d'espace d'installation pour ce dispositif (3Go sont suffisants).

Désinstallation

Allez dans répertoire racine de l'aborescence source et exécutez make uninstall. Assurez vous qu'il n'existe aucun fichier supplémentaire dans le répertoire de l'application (par exemple /etc/kadischi/build.conf~).

Utiliser Kadischi

Instructions de base

La façon la plus simple pour exécuter Kadischi est d'entrer la commande suivante dans le terminal


kadischi branche-du-dépôt branche-d'image-iso


où la branche du dépôt peut être une branche du système des fichiers locaux mais peut être aussi la branche du ftp, http ou d'autres types de dépôt.

Exemple:


kadischi /tmp/fc4 /tmp/fedora-live.iso


où /tmp/fc4 est un répertoire gardant le dépôt de Fedora (c-a-d les rpms sont dans /tmp/fc4/Fedora/RPMS et comps.xml, hdlist et d'autres fichiers dans /tmp/fc4/Fedora/base). Pour créer un dépôt local, consultez la section appendice "Comment créer un dépôt".

Exemple 2:


kadischi http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/os /tmp/fedora-live.iso

Exemple 3: (utilisant le site [1] )

kadischi http://mirrors.kernel.org/fedora/core/4/i386/os/ /tmp/fedora-live.iso


pour installer à partir du dépôt http. Pour plus détails sur les méthodes d'installation, consultez "Méthodes d'installation avec Anaconda" dans l'appendice.

Si vous n'utilisez pas de dépôt Fedora, vous devriez modifier /etc/kadischi/buildstamp ou utiliser un fichier personnalisé de buildstamp. Pour plus détails, consultez "Fichier buildstamp" dans l'appendice.

Options des lignes de commande

Entrez kadischi --help pour obtenir la liste des commandes sur Kadischi.

Exécuter automatiquement Kadischi

Puisque Kadischi n'exige pas d'interaction et que la seule interaction requise est avec Anaconda, la seule option est qu'Anaconda s'exécute automatiquement. C'est possible en utilisant les fichiers kickstart. Si vous fournissez à anaconda les fichiers kickstart, il s'exécutera sans vous interrompre (il demandera des informations supplémentaires si le fichier kickstart est incomplet).

Poor exécuter Kadischi avec kickstart, utilisez la ligne de commande optionnel --kickstart:

kadischi /tmp/fc4 /tmp/fedora-live.iso --kickstart=/branche/de/kickstart.cfg


Certains exemples de fichiers kickstart pouvant être utilisés sont inclus dans le paquetage et peuvent être trouvés dans /usr/local/share/kadischi/ks_examples.

Une autre chose importante est de charger l'interface graphique. Même s'il est fourni avec les fichiers kickstart complets, anaconda chargera l'interface (GUI ou TUI), dont nous ne voulons pas. Heureusement, anaconda peut être exécuté en mode ligne de commande où aucune interface n'est initialisée. Pour exécuter anaconda en arrière-plan, vous pouvez lancer une commande comme:

kadischi /tmp/fc4 /tmp/fedora-live.iso --kickstart=/path/to/kickstart.cfg -C

ou -C et sa variante --cmdline et la ligne de commande.

Notez que, dans le mode ligne de commande, aucune interaction avec anaconda n'est possible. Si vous avez un fichier kickstart incomplet, anaconda affichera un message d'erreur sur stdout et s'arrêtera (sans annuler l'exécution).

En utilisant ces deux lignes de commande optionnelles, vous pouvez créer une tâche cron qui générera un ISO du dépôt rawhide quotidiennement.

Personnalisation du système Live CD

Voici quelques idées sur la personnalisation du Live CD. Notez qu'il existe pas d'autres astuces que celles mentionnées dans ce document.

Astuce: si vous aimez personnaliser le Live CD, consultez la section "Sous le capot". Faites particulièrement attention aux scripts des répertoires post_install_scripts et /usr/local/share/kadischi/movefiles.py. Ces fichiers sont bien documentés et en lire quelques lignes seraient utiles.

Trucs et astuces

Sous le capot

Comment fonctionne Kadischi en détails?

Cette section décrira ce qui se passe lors de l'exécution de Kadischi, de la première ligne de commande jusqu'à l'écriture de "Finished" dans le log. Si vous voulez seulement utiliser Kadischi, vous n'avez besoin de lire cette section, mais si vous voulez souhaitez personnaliser de façon optimale votre Live CD ou si vous voulez comprendre le mécanisme de Kadischi, vous pouvez continuer à lire.

Lorsque vous entrez kadischi dans votre ligne de commande, /usr/bin/kadischi est executd. C'est un simple script bash qui indique à la variable PYTHONPATH d'inclure les libraires de Kadischi et exécute /usr/local/share/kadischi/kadischi.py.

kadischi.py est le script de haut-niveau prenant en charge la coordination d'autres éléments. Il

Comment fonctionne un Live CD créé

Notes de design

Arborescence des sources de Kadischi

C'est presque inexplicable je pense, mais je n'en mourrai pas d'écrire quelques lignes ici. Je ne parlerai que des répertoires, les fichiers sont déjà documentés (enfin, pour la plupart).

kadischi/ conf/ Contient tous les fichiers de configuration. Sur l'installation, ces fichiers se retrouve dans /etc/kadischi/ doc/ Documentation de Kadischi find_live_cd/ Sources pour l'utilitaire find-live-cd. find-live-cd est invoqué par linuxrc et il est chargé de trouver les lecteurs contenant notre live cd et de le monter ks_examples/ Quelques exemples des fichiers kickstart pouvant être utilisés avec Kadischi lib/ Fonctions et modules utilisss par Kadischi linuxrc/ Script linuxrc utliss dans l'image initrd du live CD livecd_generator/ Ce répertoire retient le script principal en charge du processus complet de création du live CD. Certains scripts peuvent être utilises durant ce processus. patches/ Patches conçus pour anaconda afin de fonctionner avec Kadischi po/ Un répertoire où le fichier pot doit être placé. Vide pour le moment. post_install_scripts/ Une collection des scripts exécutés sur le nouveau système (avant d'être compressés et empaquetés dans une image iso) afin de modifier l'exécution à partir du live CD. Certains scripts peuvent être optimisé lors de la personnalisation du système. rc/ Scripts utilisés durant l'initiation du système Live CD scanswap/ Utilitaire qui recherche les partitions swap sur le disque dur local et l'active s'il en trouve une

Appendice

Comment appliquer un patch

Synopsis pour l'utilitaire de patch:


patch [options]  [originalfile [patchfile]  

Ce dont nous avons besoin est


patch -b /usr/sbin/anaconda /usr/local/share/kadischi/patches/anaconda.patch
patch -b /usr/lib/anaconda/flags.py /usr/local/share/kadischi/patches/flags.py.patch

-b signifie backup, donc patch copiera vos fichiers avant d'appliquer les patchs. Les backups seront nommés /usr/sbin/anaconda.orig et /usr/lib/anaconda/flags.py.orig.

Pour plus de détails sur l'utilité de patch, entrez man patch ou consultez Merging with patch (en anglais)

Comment créer un dépôt

Si vous avez un CD d'installation de Fedora, c'est une bonne idée de les copier sur votre disque dur et faire une installation à partir du dépôt de disque dur pour y gagner en rapidité (et vous obtenez plusieurs livecd déjà construits). Voici la marche à suivre :

Vous pouvez utiliser ce dépôt avec Kadischi (la branche du dépôt est /tmp/fc4).

Notez que ceci n'est pas un dépôt régulier et vous ne pouvez pas l'utiliser avec yum. Si vous voulez créer un dépôt régulier, consultez d'autres documents.

Méthodes d'installation d'Anaconda

(extrait de [2] )

Vous pouvez aussi regarder /usr/share/doc/anaconda-${version}/install-methods.txt pour plus d'information.

Fichier buildstamp

Anaconda utilise un fichier buildstamp pour rassembler certaines informations reliées à la distribution. Voici un exemple du fichier buildstamp de Fedora Core 4:

200506062237.i386
Fedora Core
4
Fedora
http://bugzilla.redhat.com/bugzilla/

Comme vous pouvez remarquez, il y a cinq lignes. La première ligne indique l'identité du "build", la seconde le nom du produit, le troisième la version du produit, le quatrième la branche du produit et la dernière est le lien pour les rapports de bogues.

La plus importante est la branche du produit, parce qu'elle est utilisée pour accéder au dépôt. Si votre dépôt est, par exemple, http://mirrors.kernel.org/fedora/core/4/i386/os/, anaconda cherchera les rpms dans http://mirrors.kernel.org/fedora/core/4/i386/os/${productPath}/RPMS, donc pour le dépôt Fedora, la quatrième ligne du buidstamp devrait être "Fedora".

Si vous obtenez une boucle sans fin comme
Reading package information... Unable to read header list.
This may be due to a missing file or bad media.
Press <return> to try again
de la part d'anaconda, il est possible que la branche du produit ait des problèmes.


Anaconda recherche le fichier buildstamp dans /tmp/product/.buildstamp et /.buildstamp (dans cet ordre), donc Kadischi met son fichier buildstamp file dans /tmp/product/.buildstamp où anaconda peut le trouver. Si le fichier /tmp/product/.buildstamp existe déjà, Kadischi le déplacera dans un dossier temporaire, placera son fichier dans /tmp/product/.buildstamp, exécutera anaconda, et dès qu'anaconda aura fait son oeuvre il restaurera le fichier original.