このページは大阪弁化フィルタによって翻訳生成されたんですわ。

翻訳前ページへ


Guide pratique de gravure d'un CD RedHat

Guide pratique de gravure d'un CD RedHat

Adaptation fran?aise du Burning a RedHat CD HOWTO

Morten Kjeldgaard

Peter von der Ah?

V?rification et traduction fran?aise: Guillaume Lelarge

Relecture de la version fran?aise: Guillaume Hatt, Jean-Philippe Gu?rard

Pr?paration de la publication de la v.f.: Jean-Philippe Gu?rard

Version?: 2.1.fr.1.1

2004-11-01

Historique des versions
Version 2.1.fr.1.12004-11-01GL, GH, JPG
Version 2.1.fr.1.02003-12-07GL, GH
Version 2.12003-10-17LB
Ajout de la Redhat?9. Correction de quelques bogues mineurs. Merci ? tous ceux qui ont envoy? des commentaires et des correctifs. (Added RedHat 9. Fixed some minor bugs. Thanks to all the people who have sent in comments and patches.)
Version 2.03.fr.1.02003-08-18GL, GH, JPG
Version 2.032003-03-10LB
Ajout de quelques commentaires et corrections pour le guide pratique. Les mises ? jour anaconda sont maintenant incluses y compris les versions?7.x et plus. (Added some comments and fixes to the howto. The anaconda updates are now included correctly even for versions >= 7.x.)
Version 2.022003-03-06LB
La v?rification de la signature fonctionne maintenant pour les paquets cibl?s pour d'autres versions de la distribution RedHat que celle utilis?e pour lancer les scripts. Correction d'un bogue dans la section de comparaison de version des scripts. (The signature checking now works for packages targeted to versions of RedHat different from the one used to run the scripts. Corrected a bug in the version comparison section of the scripts.)
Version 2.012002-12-04LB
Deuxi?me ?dition de la nouvelle version de ce guide pratique. Tous les scripts ont ?t? revus et nettoy?s. Le script updateDist.sh v?rifie maintenant que toutes les mises ? jour ont ?t? t?l?charg?es avant de v?rifier les signatures. (Second release of the new version of the howto. All the scripts were reviewed and cleaned. The updateDist.sh script now checks that all the updates were downloaded before checking the signatures.)
Version 2.02002-10-28LB
Premi?re ?dition de la version?2 de ce guide pratique. (First release of the new version (2.00) of the HOWTO)

R?sum?

Ce document explique comment cr?er vos propres CD ? partir des diff?rentes versions de la distribution Linux RedHat (jusqu'? la version?9), ?quivalents ? ceux que RedHat commercialise. La structure de la distribution est d?crite, ainsi que la proc?dure d'inclusion de paquets RPM mis ? jour. Il donne quelques conseils et quelques exemples de personnalisation de l'installation par d?faut. Ce document contient ?galement des scripts automatisant autant que possible la (re)g?n?ration des images CD. Cr?er vos propres CD ne demandera qu'une bonne connexion r?seau et un graveur de CD (une connaissance des scripts shells peut aussi ?tre utile).


Table des mati?res

1. Introduction
1.1. Avertissement et licence
2. Anatomie du site FTP de Red Hat
2.1. Organisation des r?pertoires de la distribution Redhat?9
2.2. Le r?pertoire ??RedHat??, le c?ur de la distribution
2.3. Le r?pertoire ??updates??
2.4. Diff?rences avec l'arborescence 8.0
2.5. Diff?rences avec l'arborescence 7.x
2.6. Diff?rences avec l'arborescence de la 6.x
3. Paquets RPM
3.1. Comparer deux versions d'un paquet RPM
4. Obtenir votre copie locale de la distribution
4.1. Utiliser wget et bash
4.2. Utiliser mirror
5. Inclure les mises ? jour
5.1. Corriger les modes de protection des fichiers
5.2. Remplacer les RPM mis ? jour
5.3. Reconstruire l'installateur
6. Graver le ou les CD
6.1. Essayer l'image ou les images
6.2. Graver le ou des disques
7. Le fichier comps
7.1. Format du fichier comps pour RedHat versions < 6.1
7.2. Format du fichier comps pour RedHat version?6.1
7.3. Format du fichier comps dans RedHat version?6.2
7.4. Format d'un fichier comps dans la RedHat version?7.3
7.5. Format du fichier comps ? partir des versions?8.0 et 9 de RedHat
8. Installation ? partir du CD
8.1. D?marrer d'un CD amor?able
9. Autres distributions Linux
10. Ce document…
10.1. Documents connexes
10.2. Remerciements
11. Adaptation fran?aise
11.1. Traduction
11.2. Relecture

1.?Introduction

Il existe de nombreuses raisons de cr?er vos propres CD. Peut-?tre ?tes-vous avare et voulez-vous ?conomiser le prix d'une distribution Red Hat. Ou peut-?tre souhaitez-vous graver des CD contenant la plus r?cente distribution et toutes les derni?res mises ? jour. C'est tr?s pertinent car apr?s chaque version majeure de la distribution RedHat, de nombreuses mises ? jour sont publi?es, dont un certain nombre relatives ? la s?curit?. Jetez juste un ?il sur la page d'errata. Ou peut-?tre voulez-vous personnaliser l'installation par d?faut en ajoutant quelques paquets absents et en en retirant certains autres.

Voici ce que vous apprendrez dans les sections suivantes (je l'esp?re). Les exemples seront bas?s sur les versions?7.3, 8.0 et 9 de la distribution. Les notes relatives aux versions pr?c?dentes (<6.1) proviennent d'une version pr?c?dente et ont ?t? rassembl?es par les auteurs originaux. Les notes relatives ? la version?6.2 sont bas?es sur des essais que je n'ai pas termin?s (et je ne sais pas si je les terminerai) et sur quelques documents que vous trouverez dans la section documents connexes. La proc?dure donn?e dans les sections suivantes pour Redhat?7.3 et 8.0 peut fonctionner sur toutes les plates-formes compatibles avec cette distribution (Alpha, PPC et c?tera), pour toutes les versions?7.x (et peut-?tre les versions?8.x et 9 dans un avenir pas si lointain) mais je l'ai seulement essay?e sur la plate-forme i386 avec le Linux Redhat?7.3, 8.0 et 9 (je serais int?ress? par plus d'informations).

[Note]Note

Les op?rations d?crites ont des implications l?gales, ce qui veut dire que vous ne pouvez pas redistribuer les CD en tant que RedHat Linux si vous les avez modifi?s de fa?on non conforme ? la politique de RedHat. Pour les rendre l?galement redistribuables, vous devez d'abord appliquer les lignes de conduites indiqu?es sur le site web de RedHat.

[Note]Note

Rappelez-vous de toujours mettre en place les variables dans rhcd.conf et d'exporter la variable d'environnement RHCDPATH avant de lancer les scripts que vous trouverez tout au long du reste de ce document et en relation avec les versions sup?rieures ou ?gales ? la 6.2 de la RedHat Linux. Un fichier rhcd.conf d'exemple, qui devrait ?tre bien comment?, est donn? avec les scripts.

1.1.?Avertissement et licence

Ce document est distribu? dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE?; sans m?me la garantie implicite de qualit? loyale et marchande ou d'exactitude pour un usage particulier.

Ni l'auteur ni les distributeurs, ou tout autre contributeur de ce document, ne sont de quelque fa?on que ce soit responsables pour les dommages physiques, financiers, moraux ou de tout autre type, occasionn?s en suivant les suggestions de ce texte.

2.?Anatomie du site FTP de Red Hat

Dans l'esprit de la communaut? Linux, la soci?t? RedHat a rendu disponible ses distributions Linux pour plusieurs plates-formes sur son site FTP. Elles sont toutes disponibles ? partir de la racine du r?pertoire de distribution (pub/redhat/linux/). Jetez donc un ?il sur l'arborescence de la distribution.

2.1.? Organisation des r?pertoires de la distribution Redhat?9

La plus r?cente distribution n'est, ? l'heure o? j'?cris ces lignes, disponible que pour la plate-forme i386. Le r?pertoire de premier niveau semble un peu inutile, ?tant donn?e la pr?sence d'une seule architecture (/pub/redhat/linux/9/en/os/).

i386/

Le r?pertoire de premier niveau des versions un peu ant?rieures ? la version?9 contient les distributions destin?es aux diff?rentes plates-formes. Par exemple, le r?pertoire correspondant de la version?7.1 du Linux RedHat est structur? comme ceci?:

alpha/   i386/   ia64/   ppc/   s390x/

Pour une distribution Redhat?9, la racine du r?pertoire i386 ressemble ? ce qui suit?:

-rwxr-xr-x   2 root   root    248 Mar 14  2003  autorun
drwxr-xr-x   7 root   root   4096 Mar 14  2003  dosutils
-rw-r--r--   3 root   root   6192 Mar 14  2003  EULA
-rw-r--r--   3 root   root  18385 Mar 14  2003  GPL
drwxr-xr-x   3 root   root   2048 Mar 14  2003  images
drwxr-xr-x   2 root   root   2048 Mar 14  2003  isolinux
-rw-r--r--   3 root   root   6127 Mar 14  2003  README
-rw-r--r--   2 root   root  13052 Mar 14  2003  README-Accessibility
-rw-r--r--   2 root   root   6686 Mar 14  2003  README.de
-rw-r--r--   2 root   root   6990 Mar 14  2003  README.es
-rw-r--r--   2 root   root   6492 Mar 14  2003  README.fr
-rw-r--r--   2 root   root   6805 Mar 14  2003  README.it
-rw-r--r--   2 root   root   7995 Mar 14  2003  README.ja
-rw-r--r--   2 root   root   7312 Mar 14  2003  README.ko
-rw-r--r--   2 root   root   5070 Mar 14  2003  README.pt
-rw-r--r--   2 root   root   6613 Mar 14  2003  README.pt_BR
-rw-r--r--   2 root   root   5879 Mar 14  2003  README.zh_CN
-rw-r--r--   2 root   root   5892 Mar 14  2003  README.zh_TW
drwxr-xr-x   4 root   root   2048 Mar 14  2003  RedHat
-rw-r--r--   2 root   root  25824 Mar 14  2003  RELEASE-NOTES
-rw-r--r--   2 root   root  29902 Mar 14  2003  RELEASE-NOTES-de.html
-rw-r--r--   2 root   root  30409 Mar 14  2003  RELEASE-NOTES-es.html
-rw-r--r--   2 root   root  32354 Mar 14  2003  RELEASE-NOTES-fr.html
-rw-r--r--   2 root   root  30064 Mar 14  2003  RELEASE-NOTES.html
-rw-r--r--   2 root   root  29925 Mar 14  2003  RELEASE-NOTES-it.html
-rw-r--r--   2 root   root  34666 Mar 14  2003  RELEASE-NOTES-ja.html
-rw-r--r--   2 root   root  33520 Mar 14  2003  RELEASE-NOTES-ko.html
-rw-r--r--   2 root   root  29496 Mar 14  2003  RELEASE-NOTES-pt_BR.html
-rw-r--r--   2 root   root  22747 Mar 14  2003  RELEASE-NOTES-pt.html
-rw-r--r--   2 root   root  25217 Mar 14  2003  RELEASE-NOTES-zh_CN.html
-rw-r--r--   2 root   root  26645 Mar 14  2003  RELEASE-NOTES-zh_TW.html
-rw-r--r--   3 root   root   1910 Mar 14  2003  RPM-GPG-KEY
-r--r--r--   1 root   root   1823 Mar 14  2003  TRANS.TBL

Le r?pertoire SRPMS contient les paquets RPMS en format source.

Le r?pertoire images contient les images des disquettes de d?marrage et de pilotes. Ces images peuvent ?tre copi?s sur une disquette si n?cessaire. Pour la version?9, il n'existe qu'une seule image de disque de d?marrage. Cette image de d?marrage est appel?e boot.img. Si l'installation n'est pas ex?cut?e depuis un CD-ROM ou un disque dur, il est n?cessaire de pr?parer ?galement une seconde disquette avec les pilotes. Un fichier boot.iso est maintenant ?galement disponible. Il permet de d?marrer une machine ? partir du lecteur de CD-ROM afin de pouvoir plus facilement lancer une installation r?seau (c'est-?-dire sans avoir besoin de manipuler une tonne de disquettes). Reportez-vous ? la section installation et aux r?f?rences qu'elle contient pour plus d'informations. Consultez le fichier README contenu dans ce r?pertoire pour obtenir une explication plus d?taill?e du r?le des diff?rents fichiers.

Le r?pertoire isolinux contient les fichiers n?cessaires au d?marrage depuis le CD (et pour reconstruire des CD de d?marrage qui fonctionnent de la m?me fa?on). Ce processus a ?t? modifi? pour passer d'une ?mulation de disquette ? pas d'?mulation du tout. Ce qui aide ? ?viter les contraintes d'espace et les probl?mes de compatibilit?.

Le r?pertoire dosutils contient diff?rents programmes pour certains autres syst?mes d'exploitation, qui sont parfois utiles pour le bon d?roulement du processus d'installation. Il contient aussi un fichier README explicatif.

La liste est compl?t?e par un grand nombre de fichiers et par le r?pertoire RedHat. Ce dernier est le sujet des sections qui suivent tandis que le contenu des pr?c?dents est clairement indiqu? par leur nom (sauf peut-?tre le fichier EULA dont le nom est l'abr?viation [en anglais] de ??Accord de licence avec l'utilisateur final??).

2.2.? Le r?pertoire ??RedHat??, le c?ur de la distribution

La majeure partie de l'arborescence de la distribution se situe dans le r?pertoire RedHat?:

drwxr-xr-x   2 root   root  53248 Jun 14 03:15  RPMS
drwxr-xr-x   2 root   root   4096 Jun 14 04:15  base

Le r?pertoire RPMS contient la majeure partie de la distribution RedHat, sous la forme d'un ensemble de fichiers RPM (abr?viation de Redhat Package Manager, c'est-?-dire ??gestionnaire de paquets RedHat??). Un paquet RPM contient en g?n?ral des ex?cutables binaires, accompagn?s de leurs fichiers de configuration et de leur documentation. R?f?rez-vous ? la section les paquets RPM pour plus d'informations.

Le r?pertoire base contient diff?rents fichiers n?cessaires lors de l'installation, comme le fichier comps.xml, qui d?finit les composants (groupes de paquets) utilis?s durant la phase ??S?lection des groupes de paquetages[1]??. Reportez-vous ? la section le fichier comps pour plus d'informations sur ce fichier et son utilisation.

Le r?pertoire base contient deux autres fichiers d'importance?: hdlist et hdlist2. Ils contiennent la plupart des informations incluses dans les champs d'en-t?tes de l'ensemble des paquets RPM du r?pertoire RPMS. Il est donc possible de d?terminer les interd?pendances entre paquets RPM par une simple lecture de ces fichiers, sans avoir ? lire chacun des paquets RPM, ce qui est tr?s appr?ciable notamment lors des installations par FTP. Ces fichiers permettent ?galement de d?terminer les fichiers correspondant ? un paquet donn? (par exemple perl renvoie vers le paquet perl-5.004-6.i386.rpm). Ce qui veut dire que si vous ajoutez vos propres paquets ou des mises ? jour RedHat (reportez-vous ? la section inclure les mises ? jour) dans le r?pertoire RPMS, vous aurez besoin de mettre ? jour hdlist et hdlist2. La fa?on de r?aliser cette mise ? jour sera d?crite dans reconstruire l'installateur. En dehors de ces fichiers, on trouve les images ? partir desquelles l'environnement d'installation est lanc? (c'est-?-dire le noyau, l'interpr?teur python, anaconda, et c?tera).

2.3.?Le r?pertoire ??updates??

Le r?pertoire /pub/redhat/linux/updates contient des mises ? jour destin?es ? toutes les versions de la distribution RedHat depuis la 3.0.3. C'est l'endroit o? vous trouverez les paquets qui ont ?t? mis ? jour pour une raison ou une autre. Vous devez tout particuli?rement faire attention aux mises ? jour de s?curit?. Elles sont affich?es sur la page des erreurs de RedHat d?s qu'une correction est disponible. Les fichiers les plus importants trouv?s dans le r?pertoire updates sont?:

drwxrwsr-x   3 root    root    4096 Jul 13 10:13  5.2
drwxrwsr-x   3 root    root    4096 Jul 13 10:13  6.0
drwxrwsr-x   3 root    root    4096 Jul 13 10:13  6.1
drwxrwsr-x   4 root    root    4096 Jul 13 10:14  6.2
drwxrwsr-x   4 root    root    4096 Jul 13 10:14  7.0
drwxrwsr-x   4 root    root    4096 Jul 13 10:14  7.1
drwxrwsr-x   4 root    root    4096 Jul 13 10:13  7.2
drwxrwsr-x   3 root    root    4096 Jul 13 10:14  7.3
drwxrwsr-x   3 root    root    4096 Jul 13 10:14  8.0
drwxrwsr-x   3 root    root    4096 Jul 13 10:14  9

La structure de chacun de ces sous-r?pertoires est similaire ? ce qui est d?crit dans la section l'organisation de la Redhat?9. Donc, pour chaque version, vous trouverez dans le sous-r?pertoire en/os/ une s?rie de sous-r?pertoires repr?sentant les nombreuses architectures ainsi que les sous-r?pertoires noarch et SRPMS, respectivement pour les paquets qui fonctionnent sur toutes les architectures et pour ceux qui sont sous forme de source.

drwxrwsr-x   2 root    root    4096 Sep 23 05:28  SRPMS
drwxrwsr-x   2 root    root    4096 Aug 28 18:25  athlon
drwxrwsr-x   2 root    root    8192 Sep 23 05:28  i386
drwxrwsr-x   2 root    root    4096 Jul 13 10:14  i486
drwxrwsr-x   2 root    root    4096 Aug 28 18:26  i586
drwxrwsr-x   2 root    root    4096 Aug 28 18:26  i686
drwxrwsr-x   2 root    root    4096 Jul 13 10:14  noarch

2.4.?Diff?rences avec l'arborescence 8.0

La disposition de la distribution 8.0 est pratiquement identique ? celle que nous venons de d?crire. Les seules diff?rences majeures, ? cet ?gard, se trouvent dans le r?pertoire images.

Le r?pertoire images contient les images de disquettes de d?marrage et de pilotes, pouvant ?tre copi?es sur une disquette si n?cessaire. La premi?re image de d?marrage est appel?e boot.img et est n?cessaire lorsque l'installation est ex?cut?e directement depuis le CD-ROM. Si vous envisagez une installation via un disque mont? par NFS ou par FTP, l'image disque bootnet.img sera n?cessaire. Les installations via l'adaptateur PCMCIA n?cessitent la disquette pcmcia.img. Reportez-vous ? la section installation et aux r?f?rences qui s'y trouvent pour plus d'informations. Consultez le fichier README contenu dans ce r?pertoire pour obtenir une explication plus d?taill?e du r?le des diff?rents fichiers.

2.5.?Diff?rences avec l'arborescence 7.x

Les deux distributions sont pratiquement similaires sous cet aspect. Les seuls changements int?ressants pour nous (et faciles ? remarquer en regardant l'arborescence de la distribution) sont la disparition du r?pertoire isolinux et quelques modifications affectant le r?pertoire RedHat/base. Le premier changement est d? ? la fa?on dont les CD d'installation sont rendus amor?ables dans les versions ant?rieures ? la 8.0 (le mode ???mulation disquette?? a ?t? chang? en mode ??pas d'?mulation?? pour la version?8.0), alors que le second est un effet du passage en XML du fichier comps pour les distributions Redhat post?rieures ? la 8.0 (ce qui explique pourquoi il a ?t? renomm? comps.xml). Dans les distributions Redhat?7.3 et pr?c?dentes, le fichier Redhat/base/comps est un simple fichier texte dont la syntaxe n'est pas tr?s souple.

2.6.?Diff?rences avec l'arborescence de la 6.x

Pour la version?6.2 (ftp://ftp.redhat.com/pub/redhat/linux/6.2/en/os/), la derni?re de la s?rie des 6, l'organisation est la suivante (celle des pr?c?dentes versions est ? peu pr?s similaire, mais pas compl?tement)?:

alpha/   i386/   sparc/

La racine du r?pertoire i386, quant ? elle, ressemble ? ceci?:

-rw-r--r--   1 root   root  18385 Sep  7  1999  COPYING
-rw-r--r--   1 root   root   3400 Mar  8  2000  README
-rw-r--r--   1 root   root  16300 Mar  8  2000  RELEASE-NOTES
-rw-r--r--   1 root   root   1908 Sep 25  1999  RPM-GPG-KEY
drwxr-xr-x   1 root   root    512 Sep 27 15:22  RedHat
drwxr-xr-x   1 root   root  17408 Sep 27 15:22  SRPMS
-rwxr-xr-x   1 root   root    538 Sep 26  1999  autorun
-rwxr--r--   1 root   root   2048 Mar  9  2000  boot.cat
drwxr-xr-x   1 root   root    512 Sep 27 15:22  doc
drwxr-xr-x   1 root   root    512 Sep 27 15:22  dosutils
drwxr-xr-x   1 root   root    512 Sep 27 15:22  images
drwxr-xr-x   1 root   root    512 Sep 27 15:22  misc

Dans les paragraphes suivants, j'indiquerai uniquement les diff?rences avec les versions plus r?centes?; ce qui ne sera pas explicitement mentionn? ici est rest? (ou est suppos? ?tre rest?) inchang?.

Le r?pertoire doc contient une foule d'informations. En premier lieu, ce r?pertoire contient le manuel d'installation RedHat au format HTML (qui est aussi disponible sur le site de RedHat?: Guide d'installation Redhat?6.2). Il contient ?galement le Guide de r?f?rence et le Guide de d?marrage (Getting started). La documentation des versions?7.x, 8.0 et 9 est distribu?e sur un CD s?par? (dans une arborescence diff?rente sur le site ftp).

Le r?pertoire images contient les images de disquettes de d?marrage. Si n?cessaire, ces images peuvent ?tre recopi?es sur disquette, comme pour les distributions Redhat?9, 8.0 et 7.3. R?f?rez-vous ? la section installation et aux r?f?rences qu'elle contient pour plus d'information. Le r?pertoire misc contient les sources et les ex?cutables d'un certain nombre de programmes n?cessaires ? l'installation.

La plus importante partie de l'arborescence est (encore) situ?e sous le r?pertoire RedHat?:

drwxr-xr-x   2 root   root   28672   Oct 26 09:01  RPMS
drwxr-xr-x   2 root   root    4096   Oct 26 09:01  base
-rw-r--r--   1 root   root       0   Jan 19  1999  i386
drwxr-xr-x   6 root   root    4096   Oct 26 09:01  instimage

Vous devez d?j? conna?tre Le r?pertoire RPMS. R?f?rez-vous ? la section les paquets RPM pour plus d'informations. Le r?pertoire base contient les diff?rents fichiers n?cessaires ? l'installation, comme pour les Redhat?7.3, 8.0 et 9. Les seules diff?rences visibles sont la pr?sence d'un unique fichier hdlist et l'absence du fichier stage2.img dont les fonctionnalit?s devraient ?tre assur?es par les fichiers contenus dans le r?pertoire instimage. Ce r?pertoire contient, en fait, un vrai syst?me de fichiers limit? ? l'essentiel et comportant les programmes et biblioth?ques partag?es n?cessaires ? l'installation.

Le r?pertoire updates est en fait similaire ? celui qui est d?crit pour la version?9, la seule diff?rence ?tant qu'il comporte davantage de r?pertoires relatifs aux diff?rentes architectures.

3.?Paquets RPM

La majeure partie de la distribution RedHat consiste en un ensemble de fichiers RPM ((abr?viation de Redhat Package Manager, c'est-?-dire ??gestionnaire de paquets RedHat??). Un paquet RPM contient en g?n?ral des ex?cutables binaires, accompagn?s de leurs fichiers de configuration et de leur documentation. Le programme rpm est un puissant gestionnaire de paquets, qui peut ?tre utilis? pour installer, interroger, v?rifier, mettre ? jour, effacer et construire des paquets au format RPM. Rpm est tr?s pratique car il g?re une base de donn?es de tous les paquets install?s, ce qui permet de savoir ? tout moment ce qui est install?.

Les fichiers binaires RPM inclus dans la distribution ont ?t? construits sur un syst?me utilisant lui-m?me la distribution. C'est important car la plupart des programmes des paquets d?pendent de biblioth?ques partag?es. La nouvelle version?3 de la biblioth?que C standard GNU (compatible 64?bits) a ?t? utilis?e ? partir de la distribution Redhat?5.0. Cette version de la biblioth?que est commun?ment appel?e glibc ou, sous Linux, libc?6. Tous les ex?cutables de cette distribution ont ?t? li?s ? cette biblioth?que. Si vous tentez d'installer les fichiers binaires d'une distribution diff?rente, il y a beaucoup de chances que cela ne fonctionne pas, sauf si vous installez le paquet libc5 pour obtenir une compatibilit? descendante. Il existe aussi des incompatibilit?s entre les nombreuses versions du RedHat Package Manager lui-m?me qui emp?cheront l'installation de certains paquets m?me sur les machines o? ils sont suppos?s fonctionner.

Les noms des paquets RPM contiennent le suffixe .archi.rpm, o? archi est l'architecture. Celle-ci a habituellement pour valeur i386 pour les binaires destin?s ? la plate-forme Intel. Les paquets que vous installez doivent correspondre aux versions des biblioth?ques partag?es install?es sur la machine. Le programme rpm est habituellement assez bon pour s'en assurer. N?anmoins, il existe des moyens de passer outre cette v?rification. Si vous d?cidez de forcer l'installation d'un paquet de cette fa?on, soyez vraiment s?r de savoir ce que vous faites. N?anmoins, l'utilisation du disque de d?marrage d'installation de RedHat vous garantie qu'un ensemble correct de paquets RPM sera install? sur la machine.

Si vous d?couvrez un paquet RPM qui n'a pas ?t? install? sur votre syst?me durant le processus d'installation, ne d?sesp?rez pas. ? tout moment, vous pourrez (sous le compte root) installer des paquets RPM. Par exemple?:

# rpm --install WindowMaker-0.18-1b.i386.rpm

Vous pouvez m?me installer un paquet RPM directement depuis Internet, si vous connaissez son URL?:

# URL="ftp://rufus.w3.org/redhat-contrib/noarch/mirror-2.9-2.noarch.rpm"
# rpm --install "$URL"

Si vous voulez mettre ? jour un paquet RPM (ou l'installer s'il n'est pas pr?sent sur la machine), utilisez la commande?:

# rpm --update  WindowMaker-0.18-1b.i386.rpm

Si vous voulez mettre ? jour un paquet RPM dont une version pr?c?dente est d?j? install?e, utilisez la commande?:

# rpm --freshen  WindowMaker-0.18-1b.i386.rpm

Il existe un autre type de paquets RPM qui contient les sources originales qui ont servi ? construire les binaires. Ces paquets ont le suffixe .src.rpm et sont situ?s dans le r?pertoire SRPMS. La moiti? du troisi?me CD et les deux derniers des cinq CD de la distribution Redhat?8.0 (ou la 7.3) contiennent des paquets source. Pour la 9, ils sont sur trois CD s?par?s. Pour la 6.2 (et les pr?c?dentes versions, pas trop anciennes), les choses changent un peu puisqu'il n'existe qu'un seul CD d'installation qui ne comporte pas les paquets SRPMS, que vous pouvez graver sur un disque diff?rent si vous le voulez.

Pour obtenir plus d'informations sur le gestionnaire de paquet RedHat, je vous sugg?re de lire les pages de manuel et le tr?s complet Maximum rpm.

Dans la prochaine section, je pr?senterai un programme C qui sera utilis? dans divers scripts tout au long du reste de ce guide pratique. Il indique, entre deux versions du m?me paquet RPM, celui qui est le plus r?cent. Ce programme est bas? sur le code utilis? dans le gestionnaire de paquets RedHat (version?4.1) et est utilis? quand l'option --freshen est ajout?e.

3.1.?Comparer deux versions d'un paquet RPM

Le code C des trois fichiers Makefile, rvc.h, rvc.c a ?t? extrait du code du gestionnaire de paquets RedHat et (l?g?rement) modifi? pour r?pondre ? nos besoins. Ils forment un programme C simple qui, avec deux versions A et B d'un paquet retourne 1, 0 ou -1 si A est respectivement plus r?cent, ?gal ou plus ancien que B et d'autres valeurs en cas d'erreur (vous pouvez lire les commentaires du code pour plus d'informations). Pour compiler le programme, vous aurez besoin du programme make et du compilateur C gcc. Copiez les fichiers dans le m?me r?pertoire et lancez la commande?:

$ make

Ce programme est n?cessaire ? pratiquement tous les scripts utilis?s dans les sections suivantes. Pour que les scripts puissent le retrouver, vous devez d?finir la variable RVC dans le fichier rhcd.conf.

Vous trouverez une copie des sources et de la version pr?compil?e dans l'archive rhcd-scripts.tar.gz situ?e dans le r?pertoire rpmvc.

[Note]Note

Ce programme ?tait utilis? de fa?on incorrecte par les scripts updateDist.sh (ver. < 1.17) et updateCD.sh (ver. < 1.12). Je vous sugg?re fortement d'?viter les versions ant?rieures de ces scripts ant?rieures, m?me si ce probl?me n'est pas fr?quent (du moins en apparence).

4.?Obtenir votre copie locale de la distribution

Vous aurez besoin d'une copie de la distribution sur un disque o? vous pouvez ?crire et accessible ? partir de l'ordinateur poss?dant le graveur (ouah?!). Si vous souhaitez incorporer les derni?res mises ? jour, ce r?pertoire devra (aussi) ?tre accessible ? partir d'une machine Linux, soit ? partir d'un disque local, soit ? partir du disque distant mont? via NFS, soit ? partir d'un disque JAZ. Vous pouvez copier la distribution ? partir des CD de RedHat (recommand?) ou vous pouvez l'obtenir par FTP. Si vous choisissez d'utiliser FTP, il existe deux moyens de le faire. Vous pouvez utiliser un script shell bas? sur wget, script pr?sent? dans la section suivante ou utiliser le paquet mirror comme sugg?r? jusqu'? la version?1.34 de ce guide pratique (consultez la section utiliser mirror).

4.1.?Utiliser wget et bash

Ce n'est pas la plus simple des m?thodes, m?me si elle est probablement la plus exacte. Je l'appr?cie parce qu'elle permet de comparer les versions RPM des fichiers et non plus leur date et heure ou leur nom (comme les paquets classiques de synchronisation ? distance) et qu'elle v?rifie les signatures des mises ? jour ? chaque fois qu'elle en t?l?charge, si la variable CHECKSIG du fichier rhcd.conf lui indique de le faire.

Cr?ez un r?pertoire qui contiendra les fichiers d'installation et placez-vous ? l'int?rieur, puis lancez la commande suivante, qui t?l?chargera environ 3?Go de donn?es sur votre disque dur?:

$ wget -r -c -t0 -l0 --retr-symlinks -nH --cut-dirs=9 \
  ftp://ftp.mirror.ac.uk/sites/ftp.redhat.com/pub/redhat/linux/updates/7.3/en/os/i386

Vous voudrez probablement changer le miroir FTP de t?l?chargement et, en cons?quence, le param?tre indiqu? ? l'option --cut-dirs. Ce param?tre est utilis? conjointement avec l'option -nH pour ?viter la re-cr?ation de la hi?rarchie des r?pertoires du site FTP. Pour plus d'informations sur l'utilisation correcte de cette option, jetez un ?il sur la documentation de wget et les pages de manuel correspondantes.

Si vous voulez exclure un ou plusieurs r?pertoires du t?l?chargement, vous pouvez utiliser l'option -X liste, o? liste repr?sente une liste de r?pertoires s?par?s par des virgules. Par exemple, pour exclure le r?pertoire SRPMS du pr?c?dent t?l?chargement, vous pouvez utiliser?:

$ wget -r -c -t0 -l0 --retr-symlinks -nH --cut-dirs=9 \
   -X /sites/ftp.redhat.com/pub/redhat/linux/updates/7.3/en/os/i386/SRPMS \
   ftp://ftp.mirror.ac.uk/sites/ftp.redhat.com/pub/redhat/linux/updates/7.3/en/os/i386

Cela peut ?tre utile si vous prenez en compte la taille du r?pertoire SRPMS (environ 1,2?Go)?; en tout cas, je le trouve utile.

Si vous voulez v?rifier les signatures GPG pour vous assurer de l'authenticit? des paquets (ce qui est quelque chose que je vous sugg?re), vous devrez installer le paquet gnupg (n?cessaire uniquement pour la RedHat 7.3) et importer la cl? publique security@redhat.com que vous trouverez dans le r?pertoire racine des CD (RPM-GPG-KEY) ou sur le site web RedHat. La cl? est import?e en lan?ant la commande?: gpg?--import?nom_du_fichier pour les versions jusqu'? la 7.3 incluse, ce qui a ?t? remplac? par rpm?--import?nom_du_fichier pour les versions?8.0 et 9 (pour plus d'informations sur ceci, jetez un ?il aux sites web de GNU Privacy Guard et de RPM ― le Gestionnaire de paquets RedHat).

Si vous voulez v?rifier les paquets RPM, vous pouvez le faire en utilisant la commande suivante (que je suppose lanc?e depuis le r?pertoire o? vous avez r?alis? les t?l?chargements)?:

Pour les versions jusqu'? la 7.3 incluse?:

$ find . -name "*.rpm" -exec rpm -K --nopgp {} \; |grep "NOT *OK"

Pour les versions?8.0 et 9 (ainsi que pour les versions futures, je suppose)?:

$ find . -name "*.rpm" -exec rpm -K {} \; |grep "NOT *OK"

Si vous ne voulez pas vous ??ennuyer?? avec toutes ces ?tapes, j'esp?re que vous voudrez au moins v?rifier l'int?grit? des fichiers t?l?charg?s (ce qui ne veut pas dire que personne ne les a modifi?s), ? l'aide des signatures md5. Ceci est fait avec?:

Pour les versions jusqu'? 7.3 (incluse)?:

$ find . -name "*.rpm" -exec rpm -K --nopgp --nogpg {} \; |grep "NOT *OK"

Pour les versions?8.0 et 9 (ainsi que pour les versions ? venir, je suppose)?:

$ find . -name "*.rpm" -exec rpm -K --nosignature {} \; |grep "NOT *OK"

Le contenu d'une distribution RedHat ne change pas entre les versions, donc vous aurez seulement besoin de t?l?charger ces paquets UNE FOIS. Toutes les modifications de la distribution sont contenues dans le r?pertoire updates. Donc, si vous voulez conserver un miroir ? jour de la distribution RedHat, vous aurez seulement besoin de maintenir le r?pertoire updates ? jour. Ceci se fait en utilisant le script updateDist.sh. Avant d'utiliser ce script, vous devrez configurer le fichier rhcd.conf et exporter la variable RHCDPATH pointant vers le r?pertoire o? se trouve ce fichier.

$ export RHCDPATH=/home/luigi/tmp/rhcd-scripts
$ sh updateDist.sh

Ce script va t?l?charger les nouvelles mises ? jour en excluant les sous-r?pertoires indiqu?s dans la variable EXCLUDELIST, en d?pla?ant les plus anciennes (c'est-?-dire celles remplac?es par de nouvelles versions) dans le r?pertoire indiqu? par la variable OLDDIR apr?s avoir r?ussi deux tests. Le premier test compare les fichiers .listing g?n?r?s par wget avec le contenu des r?pertoires locaux pour s'assurer que tous les fichiers ont ?t? t?l?charg?s. Le second test v?rifie les signatures des paquets en fonction des valeurs de deux variables CHECKSIG et USEGPG (positionnez-les ? ??yes?? si vous souhaitez que cette op?ration soit r?alis?e). En cas d'?chec du processus de v?rification de signature, le script d?placera le mauvais paquet dans OLDDIR en lui affectant l'extension ??.UPDcheckfail?? et abandonnera sans d?placer les anciennes mises ? jour dans OLDDIR.

4.2.?Utiliser mirror

Mirror est un script perl sophistiqu? comparant le contenu d'un r?pertoire d'un site distant avec un r?pertoire local. Il utilisera FTP pour r?cup?rer les fichiers qui sont sur le site distant mais pas sur le site local et supprimera sur le site local les fichiers qui ne sont pas sur le site distant. Le programme mirror est param?tr? via un fichier de configuration. Le RPM du paquet est disponible ? partir de rufus.w3.org. Cr?ez une copie locale mirror.redhat du fichier de configuration de mirror et modifiez les champs appropri?s en haut du fichier. Apr?s la section des valeurs par d?faut (default), d?finissez les paquets suivants?:

package=updates
  site=ftp.mirror.ac.uk
  exclude_patt=(SRPMS/)
  remote_dir=/sites/ftp.redhat.com/pub/redhat/linux/updates/7.3/en/os/i386
  local_dir=/home/luigi/tmp/redhat-cd/redhat-7.3-updates

package=dist
  site=ftp.mirror.ac.uk
  exclude_patt=(SRPMS/)
  remote_dir=/sites/ftp.redhat.com/pub/redhat/linux/7.3/en/os/i386
  local_dir=/home/luigi/tmp/redhat-cd/redhat-7.3

La commande suivante va copier l'arborescence RedHat au complet sur votre disque local. **Pensez**, avant de faire cela, que vous allez t?l?charger ? peu pr?s 1,5?Go de donn?es (si vous avez exclu le r?pertoire SRPMS)?!

$ mirror -pdist mirror.redhat 

Ceci va cr?er une copie ? l'identique du site FTP de RedHat sur votre disque local. Le contenu de la distribution RedHat ne change pas entre les versions, donc vous aurez seulement besoin de t?l?charger ces paquets une fois. Tout changement dans la distribution se trouvera dans le r?pertoire updates. Donc, si vous voulez maintenir votre miroir ? jour, vous aurez seulement besoin d'actualiser le r?pertoire updates. Cela se fait avec la commande suivante?:

$ mirror -pupdates mirror.redhat 

Vous pouvez la lancer r?guli?rement, disons une fois par semaine, avec un script cron. La distribution RedHat est disponible sur un grand nombre de serveurs FTP dans le monde entier, mis ? jour quotidiennement ? partir du site de r?f?rence ftp.redhat.com. Vous devriez choisir un site FTP proche de vous, en consultant la liste des sites miroirs RedHat.

[Note]Note

Je n'ai pas test? personnellement cette proc?dure. C'?tait la seule proc?dure propos?e sur les anciennes versions de ce guide pratique (jusqu'? la version?1.34, concernant RedHat <?6.1).

5.?Inclure les mises ? jour

Il y a trois ?tapes, les deux premi?res ?tant (pratiquement) identiques pour toutes les versions, alors que la derni?re change un peu en raison des modifications de l'installateur anaconda?:

  1. Corriger les modes de protection des fichiers

  2. Remplacer les RPM mis ? jour

  3. Reconstruire l'installateur

Pour incorporer les mises ? jour, vous aurez besoin d'avoir un acc?s en ?criture au r?pertoire de la distribution ? partir d'une machine Linux, avec une version fonctionnelle de rpm install?e, alors que pour reconstruire l'installateur anaconda, vous aurez besoin d'utiliser une version du Linux RedHat ?gale ? celle pour laquelle vous reconstruisez l'installateur (sinon la proc?dure ?chouera). Si vous maintenez ? jour un miroir du r?pertoire updates, vous pourrez ? tout moment produire un CD incluant les derni?res mises ? jours en r?p?tant ces ?tapes.

5.1.?Corriger les modes de protection des fichiers

Durant le processus d'installation des versions jusqu'? la 6.2 incluse, certains programmes sont lanc?s directement depuis le CD. Malheureusement, le programme FTP ne pr?serve pas toujours les droits des fichiers et des r?pertoires copi?s. Donc, il est n?cessaire de s'assurer que les droits d'ex?cution sont bien donn?s aux programmes, scripts shells et biblioth?ques partag?es, avant que le r?pertoire ne soit grav? sur le CD. Ceci est fait en lan?ant le script updatePerm.sh sur votre copie locale de la distribution. C'est r?ellement n?cessaire pour les versions?6.2 et pr?c?dentes. La seule partie utile de cette proc?dure pour les versions?7.3, 8.0 et 9 est la mise ? jour des droits des r?pertoires, le reste ne fera aucun mal et cela maintient les choses coh?rentes. Ce script est quasi-identique au script updatePerm inclus dans la version pr?c?dente de ce guide pratique, seuls quelques changements mineurs ont ?t? r?alis?s. Avant d'utiliser ce script, vous devez param?trer le fichier rhcd.conf et exporter la variable RHCDPATH pointant vers le r?pertoire o? se trouve ce fichier.

$ export RHCDPATH=/home/luigi/tmp/rhcd-scripts
$ sh updatePerm.sh

5.2.?Remplacer les RPM mis ? jour

Le script updateCD.sh copie tous les nouveaux fichiers du r?pertoire update vers le r?pertoire RPMS (et SRPMS). Le script utilise le programme rvc qui a ?t? pr?sent? dans la section comparer les versions des RPM pour d?terminer quels sont les paquets du r?pertoire update qui sont plus r?cents. Les paquets plus anciens sont d?plac?s dans le r?pertoire ${OLDDIR}. Si la variable CHECKSIG est positionn?e ? ??yes??, tous les paquets de l'arborescence principale verront leur signature v?rifi?e. Si la v?rification de signature d'un paquet ?choue (le type de v?rification d?pend de la variable USEGPG du fichier rhcd.conf), celui-ci est d?plac? dans le r?pertoire OLDDIR avec une extension ajout?e, ??CDcheckfail??.

Avant d'utiliser ce script, vous devrez param?trer le fichier de configuration rhcd.conf et exporter la variable RHCDPATH pointant vers le r?pertoire o? se trouve ce fichier.

$ export RHCDPATH=/home/luigi/tmp/rhcd-scripts
$ sh updateCD.sh
[Note]Note

Apr?s avoir incorpor? les mises ? jour dans le r?pertoire principal RedHat/RPMS, votre copie de la distribution n'est plus un miroir du site de la distribution RedHat. En fait, elle est plus ? jour?! Donc, si vous essayez de resynchroniser votre distribution en utilisant mirror, les anciennes versions des paquets RPM qui ont ?t? mis ? jour seront t?l?charg?es une nouvelle fois et les mises ? jour supprim?es. La proc?dure bas?e sur bash et wget ne souffre pas de ce probl?me, mais laissera l'arborescence principale dans un ?tat incoh?rent. Les anciens et les nouveaux paquets seront dans ce cas m?lang?s ensembles. Cependant, vous pourrez les trouver et les supprimer en int?grant l'ex?cutable rvc ? un script shell simple (que je laisserai comme exercice pour le lecteur…).

5.3.?Reconstruire l'installateur

Les choses ont bien chang? dans cette section avec l'arriv?e de l'installateur anaconda (version?6.1) et la consid?rable augmentation de taille (et… du nombre de CD) que les distributions 7.x et 8.0 ont connue. Jusqu'? la version?6.2, la seule ?tape composant cette section ?tait la g?n?ration d'un nouveau fichier hdlist. Avec la version?6.2, cela ne reste vrai que jusqu'? un certain point, en raison des changements dans l'installateur anaconda, dans le logiciel rpm lui-m?me (qui est pass? des versions?3.x aux versions?4.x) et de la migration des paquets mis ? jour vers cette nouvelle version (les mises ? jour de la version?6.2 sont en fait empaquet?es pour les deux versions majeures du logiciel rpm). Nous envisagerons trois proc?dures diff?rentes en essayant de couvrir toutes les versions.

5.3.1.?RedHat ? 6.1

5.3.1.1.?R?g?n?rer le fichier hdlist

Lors de l'installation ? partir du CD, le programme d'installation du CD se base sur le fichier RedHat/base/hdlist qui d?crit quels sont les paquets RPM disponibles sur le CD. Le fichier hdlist peut ?tre g?n?r? par le programme misc/src/install/genhdlist. Ce programme doit ?tre lanc? avec comme seul argument le chemin absolu vers la racine de la distribution. Voici le script updateHdlist qui appelle ce programme (depuis la version?1.34 de ce guide pratique)?:

#!/bin/bash

RHVERSION=6.1
ARCH=i386

echo "G?n?ration de hdlist..."
RACINERH=/home/luigi/tmp/redhat-${RHVERSION}
GENHDDIR=${RACINERH}/${ARCH}/misc/src/anaconda/utils
          
chmod u+x ${GENHDDIR}/genhdlist
chmod 644 ${RACINERH}/${ARCH}/RedHat/base/hdlist
${GENHDDIR}/genhdlist ${RACINERH}/${ARCH} || echo "*** ?CHEC DE GENHDLIST ***"

exit 0
[Note]Note importante pour les RedHat <?6.1

L'installation de la Redhat?6.1 est compl?tement diff?rente de celle des versions pr?c?dentes car RedHat a introduit anaconda. Le programme genhdlist est maintenant situ? ? un autre endroit, donc dans le script ci-dessus, nous utiliserons?:

GENHDDIR=${RHROOT}/${ARCH}/misc/src/anaconda/utils

alors que pour les versions jusqu'? 6.0 (comprise), cette ligne doit ?tre?:

GENHDDIR=${RHROOT}/${ARCH}/misc/src/install

Dans certains cas, genhdlist n'arrive pas ? d?marrer, car l'ex?cutable n'est pas li? statiquement. Dans un tel cas, vous pouvez ajouter la ligne?:

${RHROOT}/${ARCH}/RedHat/instimage/usr/lib

dans le fichier /etc/ld.so.conf et lancer la commande ldconfig -v.

Une autre solution est de recompiler genhdlist. La modification suivante du script updateHdlist fonctionnait sous Redhat?5.2?:

#!/bin/bash

RHVERSION=6.1
ARCH=i386

RACINERH=/misc/redhat/redhat-${RHVERSION}
GENHDDIR=${RACINERH}/${ARCH}/misc/src/anaconda/utils

echo "Compilation de hdlist..."
sed -e 's/FD_t/int/' \
    -e 's/fdOpen/open/' \
    -e 's/fdClose/close/' \
    -e 's/fdFileno//' < ${GENHDDIR}/genhdlist.c > /tmp/genhdlist.c
cc -o /tmp/genhdlist -I/usr/include/rpm /tmp/genhdlist.c -lrpm -lz

echo "G?n?ration de hdlist..."
chmod 644 ${RACINERH}/${ARCH}/RedHat/base/hdlist
/tmp/genhdlist ${RACINERH}/${ARCH} || echo "*** ?CHEC DE GENHDLIST ***"

exit 0

Dans cette version du script, une copie du source C de genhdlist.c, compilable sous RedHat?5.2, est cr??e dans /tmp. Cette copie est r?alis?e en filtrant le source C original avec sed via un tube. Cette version de genhdlist est alors utilis?e pour cr?er le fichier hdlist.

[Note]Note importante pour la Redhat?5.2

Tel qu'il est distribu? avec les RedHat versions?5.2 et pr?c?dentes, genhdlist PLANTE si le r?pertoire RedHat/RPMS contient des fichiers qui ne sont pas des fichiers RPM?! Cela pose probl?me car dans la distribution 5.2, il y a des fichiers non-RPM nomm?s ls-lR et ls-lR.gz situ?s dans RedHat/RPMS. Donc, vous devez supprimer tous les fichiers non-RPM de ce r?pertoire. Sinon, vous pouvez appliquer le correctif genhdlist.c.diff au fichier misc/src/install/genhdlist.c et faire un make. Ce correctif fait ignorer ? genhdlist tout fichier non-RPM.

5.3.1.2.?Cr?er l'image iso du CD

Vous aurez besoin de cr?er un fichier image qui sera ?crit sur le CD. Ce fichier fera au moins 500?Mo, donc trouvez une partition avec assez d'espace libre. Vous aurez peut-?tre besoin d'utiliser le compte root pour lancer les commandes mount et cdrecord. Ici, vous allez pr?parer l'image iso du CD amor?able que vous allez graver. Il n'est pas strictement n?cessaire de cr?er un CD amor?able, car vous pourriez utiliser une disquette de d?marrage ? la place, mais c'est une fonctionnalit? vraiment sympathique (et elle rend le comportement de votre disque plus similaire ? celui du disque original). Voici les commandes que j'utilise pour r?aliser cette t?che?:

$ mkdir /repertoire-destination-images
$ mkisofs  -r  -J  -T  -v  -V "Red Hat 6.1 (Hedwig)" \
   -c boot.cat  -b images/boot.img \
   -o /repertoire-destination-images/i386-disc.iso .

C'est n?cessaire pour graver le disque (amor?able) et cela doit ?tre lanc? ? partir du r?pertoire de niveau sup?rieur de la distribution. Le r?pertoire /repertoire-destination-images est le r?ceptacle de l'image iso que vous allez g?n?rez et il doit (obligatoirement) exister avant de lancer la proc?dure. Dans la table suivante, vous pourrez lire une br?ve explication des nombreuses options et de leur signification (la plupart ont ?t? extraites de la page de manuel de mkisofs).

Tableau?1.?Options et param?tres de mkisofs

-r Extensions Rock Ridge, indiquant des valeurs utiles pour les droits.
-J Extensions Joliet pour utiliser le CD sous quelques autres syst?mes d'exploitation.
-T G?n?re un fichier TRANS.TBL dans chaque r?pertoire afin que, m?me sur des syst?mes non compatibles avec les extensions Rock Ridge, la correspondance des noms de fichier soit correcte.
-vMode bavard
-V?identifiant Indique l'identifiant du volume (nom ou label du volume) qui devra ?tre ?crit dans le bloc ma?tre.
-c?catalogue_de_d?marrage Indique le chemin et le nom du fichier contenant le catalogue de d?marrage, qui sera utilis? lors de la cr?ation d'un CD amor?able ??El Torito??. Le chemin doit ?tre relatif au chemin source indiqu? ? mkisofs.
-b?image_eltorito Indique le chemin et le nom du fichier contenant l'image de d?marrage ? utiliser lors de la cr?ation du CD amor?able ??El Torito??. Le chemin doit ?tre relatif au chemin source indiqu? ? mkisofs. L'image doit ?tre une image de disquette (ce qui explique pourquoi nous utilisons une des images de disquette trouv?es sur le CD original). Vous pourrez choisir d'utiliser l'image pcmcia.img ? la place si vous voulez r?aliser une installation en utilisant des p?riph?riques PCMCIA tels que des cartes r?seau ou des lecteurs CDROM.
-o?nom_du_fichierNom du fichier contenant l'image iso g?n?r?e
. Ceci est le r?pertoire racine de notre image iso (nous travaillons ? partir du r?pertoire racine de chaque CD, donc un point est suffisant).

Vous trouverez plus d'informations sur la fa?on de graver une image sur un support dans graver le CD. Les ?tapes mkisofs et cdrecord peuvent ?tre ex?cut?es en utilisant une application graphique comme X-CD-Roast qui devrait actuellement permettre la cr?ation de CD amor?ables (je ne l'ai jamais utilis?, donc ne vous attendez pas ? ce que je vous donne des explications).

5.3.2.?Redhat?6.2

Apparemment, c'est l'enfant difficile des distributions RedHat lorsque vient le moment de graver un CD ? jour. L'arriv?e de la version?4 du gestionnaire de paquets RedHat (RPM) a cass? la proc?dure de mise ? jour de l'installateur anaconda. Les proc?dures que j'indique fonctionneront uniquement si les paquets mis ? jour sont construits en utilisant une version du logiciel RPM post?rieure ou ?gale ? la version?3.0.4 (donc, en pratique, la version?3.0.4 ou 3.0.5).

Si vous utilisez les paquets originaux de RedHat, il faudra ?viter d'utiliser les mises ? jour publi?es apr?s le 28?mars?2001 (ce qui est un peu inutile selon moi). Une autre solution est de reconstruire les paquets en utilisant l'ancien format rpm. Vous trouverez des informations sur cette proc?dure et les outils n?cessaires sur la page ??rpmhack??. Je n'ai pas personnellement essay? cette proc?dure, mais, d'apr?s les listes de discussion anaconda-devel et kickstart[2], elle semble fonctionner.

Si vous d?cidez de rester sur les anciens paquets originaux et de compl?ter la mise ? jour (en utilisant les paquets rpm 4.0.2 apr?s la fin de l'installation), il existe deux fa?ons de le faire, en fonction du type de mise ? jour que vous souhaitez effectuer. Si certaines des mises ? jour d?pendent directement du processus d'installation (c'est-?-dire le noyau, python, kudzu), vous devrez utiliser la proc?dure de reconstruction de l'installateur expliqu?e dans le document Construire un CDROM Red Hat Linux 6.2. Sinon vous pourrez utiliser l'ancienne proc?dure (celle pour les versions pr?c?dentes jusqu'? la 6.1 incluse, telle qu'elle est expliqu?e dans la section pr?c?dente). Les deux derni?res ?tapes, qui sont la cr?ation de l'image iso et la gravure du support, sont d?crites respectivement dans cr?er des images iso et graver le CD.

5.3.3.?Redhat?9, 8.0 et 7.3

Une fois encore, beaucoup de choses ont ?t? chang?es avec la sortie de la s?rie 7.x. Il faut maintenant r?aliser un plus grand nombre d'op?rations pour obtenir une s?rie de CD frais et ? jour. En r?alit?, le CD a cess? d'?tre unique avec la version 7.0. L'arborescence doit maintenant ?tre divis? pour tenir sur le support. Ce qui est fait en utilisant le script splitdistro, qui est ?crit en python comme beaucoup d'?l?ments de l'installateur anaconda. Pour terminer cette partie, vous devrez utiliser une machine Linux utilisant la distribution Redhat?7.3, 8.0 ou 9 sur laquelle soit install? le paquet anaconda-runtime (il aura probablement la version?7.3.7, 8.0.4 ou 9.0.4), en fonction de la version que vous voulez reconstruire. La proc?dure est compos?e de sept ?tapes?:

  1. R?g?n?rer les fichiers hdlist et hdlist2

  2. Mettre ? jour le fichier comps.xml (ou comps)

  3. Reconstruire l'installateur

  4. Diviser la distribution en plusieurs parties de la taille d'un CD

  5. R?g?n?rer (encore) les fichiers hdlist et hdlist2

  6. G?n?rer les images iso

  7. Ajouter et v?rifier les signatures md5 dans les images iso

Toutes ces ?tapes sont regroup?es en un seul script qui sera pr?sent? dans la section ??le script updateBuild.sh??.

5.3.3.1.?Op?rations pr?liminaires sur l'arborescence principale

Quelques-uns des scripts inclus dans le paquet anaconda-runtime ont besoin de l'arborescence principale, qui doit ?tre d?plac?e dans un sous-r?pertoire nomm? comme l'architecture que nous allons construire (donc i386/ chez moi). Nous d?placerons tout vers ce r?pertoire avant de lancer la proc?dure. Nous corrigerons ?galement les appels des scripts qui n'ont pas besoin de cette modification.

Pour la Redhat?9 et 8.0?:

$ chmod  -R  u+w  /chemin-absolu-de-la-racine
$ mkdir  -p  /chemin-absolu-de-la-racine/i386
$ cd /chemin-absolu-de-la-racine
$ /bin/mv  *  i386

Vous devrez remplacer /chemin-absolu-de-la-racine par le chemin absolu du r?pertoire o? la racine de votre copie locale de la distribution est plac?e (peut-?tre quelque part sur l'un des disques durs). Vous obtiendrez une erreur, lors de l'ex?cution de la derni?re commande, car le r?pertoire i386/ ne peut ?tre d?plac? sous lui-m?me, mais vous ne devez pas en tenir compte.

Pour Redhat?7.3?:

$ chmod  -R  u+w /chemin-absolu-de-la-racine
$ mkdir  -p  /chemin-absolu-de-la-racine/i386
$ cd /chemin-absolu-de-la-racine
$ for i in `ls` ; do [ $i != "SRPMS" -a $i != i386 ] && \
  /bin/mv $i i386 ; done

Cette fois-ci (je l'esp?re) la derni?re commande ne devrait produire aucune erreur.

5.3.3.2.?R?g?n?rer les fichiers hdlist et hdlist2

Ceci est fait au moyen des deux commandes suivantes et avec l'aide du programme genhdlist.

$ /usr/lib/anaconda-runtime/genhdlist
/chemin-absolu-de-la-racine/i386
$ chmod  644
/chemin-absolu-de-la-racine/i386/RedHat/base/hdlist{,
2}

Une fois encore /chemin-absolu-de-la-racine est le chemin absolu du r?pertoire o? la racine de votre copie locale de la distribution est plac?e. La seconde commande est n?cessaire pour vous assurer que les droits de ce fichier sont corrects. Vous devez d?j? avoir une id?e de ce que sont ces fichiers si vous avez lu la section ??le r?pertoire RedHat??.

5.3.3.3.?Mettre ? jour le fichier comps.xml

Avec la distribution Linux RedHat?8.0, le format du fichier comps a compl?tement chang? et il est maintenant bas? sur XML. Ce nouveau format apporte une plus grande flexibilit? et facilit? de personnalisation. La section ??le fichier comps?? vous donnera plus d'informations sur le sujet. Si vous avez modifi? ou si vous souhaitez modifier la liste des paquets install?s, vous aurez besoin de r?aliser cette ?tape. Ce qui implique alors d'avoir install? une version modifi?e du paquet comps-9.tar.gz (l'original ne fonctionne pas pour moi) ou comps-8.0.tar.gz (suivant la version que vous construisez) qui contient le fichier ma?tre comps trouv? sur le site web de RedHat, ainsi que le paquet comps-extras. Suivez alors ces ?tapes pour la Redhat?9 et 8.0?:

$ cd /r?pertoire-de-votre-choix
$ tar xzvf
/chemin-vers-comps-9.tar.gz/comps-9.tar.gz 
$ cd comps
$ make
$ cat comps-milan.xml |sed 's!</comps>!!g' >comps-tmp.xml
$ /usr/share/comps-extras/getfullcomps.py  comps.xml \
   /chemin-absolu-de-la-racine i386 >>
comps-tmp.xml
$ echo '</comps>' >> comps-tmp.xml
$ cp comps-tmp.xml
/chemin-absolu-de-la-racine/i386/RedHat/base/comps.
xml

En plus de /chemin-absolu-de-la-racine , vous devrez prendre soin d'indiquer des noms valides pour /r?pertoire-de-votre-choix et /chemin-vers-comps-9.tar.gz . Le reste des commandes pourra simplement ?tre recopi?. Et vous devrez ?videmment changer 9 en 8.0 si vous construisez une version?8.0.

De nouveau, avant de lancer la commande make, vous devrez modifier le fichier comps-milan.xml.in en utilisant votre ?diteur de texte favori et en suivant les lignes de conduite et suggestions de la section ??le fichier comps?? et de la page ??anaconda comps?? du site web RedHat.

Toutes les ?tapes n?cessaires apr?s la commande make seront r?alis?es par le script de la section ??le script updateBuild.sh??. Ce script utilise la variable COMPSFILE, pour trouver le fichier comps-milan.xml (il n'a pas besoin d'avoir ce nom, j'utilise juste le nom original, mais vous pouvez le changer si vous le voulez).

Si vous utilisez la distribution Redhat?7.3, le fichier comps (avez-vous remarqu? la diff?rence de nom??) est un fichier de texte avec une syntaxe compl?tement diff?rente. Cette syntaxe est d?crite plus pr?cis?ment dans le fichier comps. Pour cette distribution, les seules op?rations n?cessaires sont l'adaptation du fichier pour correspondre ? vos besoins et la recopie du fichier RedHat/base/comps dans l'arborescence principale en remplacement de l'original.

5.3.3.4.?Reconstruire l'installateur

Cette ?tape consiste ? reconstruire l'installateur anaconda dans votre copie locale de la distribution en utilisant les paquets mis ? jour. Pour la Redhat?9, lancez?:

$ /usr/lib/anaconda-runtime/buildinstall  \
  --pkgorder /chemin-absolu-de-la-racine/pkgorder.txt
 \
  --comp dist-9 --product "Red Hat Linux" --version 9  \
  --release "Redhat 9 (Shrike)"
/chemin-absolu-de-la-racine/i386

O?, une fois encore, /chemin-absolu-de-la-racine est le r?pertoire o? est plac?e la racine de votre copie locale de la distribution.

Pour la distribution Redhat?8.0, la proc?dure est pratiquement identique (l'option --product en moins)?:

$ /usr/lib/anaconda-runtime/buildinstall  \
  --pkgorder /chemin-absolu-de-la-racine/pkgorder.txt
 \
  --comp dist-8.0 --version 8.0  --release "Redhat 8.0 (Psyche)" \
  /chemin-absolu-de-la-racine/i386  

Ou si, comme moi, vous utilisez toujours une Redhat?7.3?:

$ /usr/lib/anaconda-runtime/buildinstall  \
   --pkgorder
/chemin-absolu-de-la-racine/pkgorder.txt  \
   --comp dist-7.3 --version 7.3
/chemin-absolu-de-la-racine/i386  

L'absence de l'option (obligatoire pour la 8.0) --release est la seule diff?rence notable.

5.3.3.5.?Diviser la distribution

Dans cette ?tape, nous allons cr?er cinq r?pertoires, chacun correspondant ? un CD diff?rent et y placer des liens physiques vers les fichiers r?els contenus dans votre copie locale de la distribution.

[Note]Note

Cette ?tape ne marchera pas du tout avec la distribution RedHat?7.3 si vous n'utilisez pas la version modifi?e du script splitdistro pr?sent?e dans le prochain paragraphe. Pour les distribution RedHat?8.0 et?9, une version modifi?e de splitdistro est propos?e principalement parce que, m?me si les probl?mes du script pr?c?dent ont ?t? corrig?s, l'ex?cution ?chouait syst?matiquement s'il n'existait pas suffisamment de paquets pour remplir tous les CD (les quatre premiers compl?tement et le dernier m?me seulement partiellement).

$ /usr/lib/anaconda-runtime/splitdistro  \
  --fileorder
/chemin-absolu-de-la-racine/pkgorder.txt  --release \
  "Redhat 9.0 (Shrike)"  /chemin-absolu-de-la-racine 
i386 

La seule chose que vous ayez besoin de changer pour les versions?8.0 et la 7.3 est le texte indiqu? ? l'option --release (qui doit ?tre ??Redhat 8.0 (Psyche)?? ou ??Redhat?7.3 (Valhalla)??).

Pour la distribution Redhat?7.3, la version du script (python) splitdistro7.3 utilis?e a ?t? extraite du paquet anaconda-runtime 7.3.7 et modifi?e par moi. Vous pouvez le substituer ? l'original, nomm? /usr/lib/anaconda-runtime/splitdistro, apr?s avoir ?ventuellement sauvegard? ce dernier.

La seule modification (en dehors de quelques petites corrections) que ce script aie subie est un changement de son comportement si le r?pertoire SRPMS n'est pas trouv? (il n'?choue pas, mais g?n?re les CD sans paquets source).

Pour la distribution Redhat?8.0, la version du script (python) splitdistro8.0 utilis?e a ?t? extraite du paquet anaconda-runtime?8.0.4 et modifi?e une nouvelle fois par moi pour obtenir quelques am?liorations dont je ressentais le besoin. Vous devez le substituer au fichier original (peut-?tre apr?s avoir sauvegard? ce dernier) nomm? /usr/lib/anaconda-runtime/splitdistro. N?anmoins, l'original fonctionnera bien pour construire une distribution qui comprend tous les paquets SRPMS (et ainsi remplir les cinq CD, car sinon le script ?chouera).

La seule modification apport?e au script est un changement dans son comportement s'il ne trouve pas le r?pertoire SRPMS (il n'?choue plus, mais g?n?re les CD sans paquets source) ou s'il y a un CD sans paquet (le script g?n?rera un r?pertoire vide un lieu d'?chouer).

Pour la distribution Redhat?9, vous trouverez une copie du script incluant les m?mes modifications que le script de la?8.0 ici?: splitdistro9. Tout ce qui a ?t? dit dans le paragraphe pr?c?dent pour la distribution Redhat?8.0 s'applique ? la version?9.

5.3.3.6.?R?g?n?rer les fichiers hdlist et hdlist2

Il est n?cessaire de recr?er les fichiers hdlist et hdlist2, en utilisant certaines des informations obtenues dans les ?tapes pr?c?dentes. Il n'y a pas de diff?rences entre 7.3, 8.0 et 9 pour l'ex?cution de ce programme. La commande ? utiliser est la suivante?:

$ /usr/lib/anaconda-runtime/genhdlist  \
  --fileorder
/chemin-absolu-de-la-racine/pkgorder.txt 
--withnumbers \
  /chemin-absolu-de-la-racine/i386-disc[1-3]

Comme vous pouvez le voir, compar? ? la premi?re utilisation de genhdlist, deux nouvelles options sont pass?es au programme. La premi?re, --fileorder, indique ? genhdlist d'utiliser le fichier pkgorder.txt que nous avons g?n?r? ? la seconde ?tape (reconstruire l'installateur). Ce fichier contient la r?partition des paquets sur les diff?rents CD et est utilis? par l'installateur pour d?terminer dans quel ordre les paquets doivent ?tre install?s. De mani?re simple, si vous ne l'utilisez pas, vous finirez probablement par changer tr?s souvent de CD lors de l'installation. L'option --withnumbers est n?cessaire pour associer un num?ro de CD ? chaque paquet (comme vous le voyez, un joker indiquant les trois premi?res images iso est utilis?).

5.3.3.7.?G?n?rer les images iso

Dans cette ?tape, vous allez pr?parer les images iso ? graver sur les CD r?els. Il y a deux commandes distinctes ? utiliser, l'une pour le premier disque et l'autre pour le reste des CD. Ceci est d? au besoin de rendre amor?able le premier CD. Ce n'est pas strictement n?cessaire car vous pouvez utiliser ? la place une disquette de d?marrage mais il s'agit d'une fonctionnalit? int?ressante (et elle rend le comportement de vos disques plus similaire aux originaux). Voici les commandes que j'utilise pour r?aliser cette t?che?:

$ mkdir /repertoire-destination-images
$ mkisofs  -r  -J  -T  -v  -V "Red Hat 9 (Shrike) disque 1" \
   -c isolinux/boot.cat  -b isolinux/isolinux.bin -no-emul-boot \
   -boot-load-size 4 -boot-info-table \
   -o /repertoire-destination-images/i386-disc1.iso .

Cela est n?cessaire pour graver le premier disque (amor?able) pour les distributions Redhat?8.0 et 9 (sans ?mulation de disquette) et c'est ex?cut? ? partir du r?pertoire racine de la distribution. Le r?pertoire /repertoire-destination-images est le contenant pour les cinq images iso que vous avez g?n?r?es et il doit exister avant de pouvoir lancer la proc?dure. La seule modification ? effectuer pour la distribution Redhat?8 est le nom du volume, qui devrait ?tre ??Red Hat 8.0 (Psyche) disque 1??.

$ mkdir /repertoire-destination-images
$ mkisofs  -r  -J  -T  -v  -V "Red Hat 7.3 (Valhalla) disc 1" \
   -c boot.cat  -b dosutils/autoboot/boot.img \
   -o /repertoire-destination-images/i386-disc1.iso .

C'est n?cessaire pour graver le premier disque (amor?able) sur la?7.3. Cette commande doit ?tre ex?cut?e ? partir du r?pertoire racine de la distribution (cette fois-ci nous utilisons l'?mulation de disquette).

Le reste des images peut ?tre ?crit au moyen d'une boucle ??for???:

$ for i in `echo 2 3 4 5` ; do mkisofs  -r  -J  -T  -v  \
   -V "Red Hat 9 (Shrike) disc ${i}"  \
   -o /repertoire-destination-images/i386-disc${i}.iso . ; done

La boucle pr?sent?e va pr?parer les quatre derni?res images en leur donnant les bons num?ros. Comme vous pouvez le voir, il y a deux options manquantes par rapport ? la commande pr?c?dente et, comme vous pouvez le deviner, ces commandes ne sont utiles que pour cr?er un CD amor?able. Dans cr?er des images iso, vous pourrez lire une br?ve explication sur des diff?rentes options et de leurs significations (la plupart ont ?t? extraites de la page de manuel). De nouveau, si vous construisez une distribution Redhat?8.0, vous devriez changer le nom du volume par ??Red Hat 8.0 (Psyche) disc1??.

5.3.3.8.? Implanter et v?rifier les signatures md5 dans les images iso

C'est une ?tape optionnelle mais elle permet l'utilisation de l'option ??checkmedia?? pour v?rifier les signatures des CD avant de les installer et donc de garantir leur int?grit?.

Les commandes suivantes permettent d'injecter ou de v?rifier une signature md5 sur une image iso?:

$ /usr/lib/anaconda-runtime/implantisomd5 image-iso
$ /usr/lib/anaconda-runtime/checkisomd5 image-iso

Apr?s avoir fini toutes ces ?tapes, nous aurons obtenu les cinq images CD ? graver. Consid?rant que saisir tout ceci est un peu long, la prochaine section pr?sentera un script qui r?alise toutes ces op?rations en une seule fois (n'oubliez pas de configurer correctement les param?tres).

5.3.3.9.?R?unir toutes ces ?tapes

Le script updateBuild.sh ex?cutera toutes les ?tapes n?cessaires ? la reconstruction des CD des distributions Redhat?7.3, 8.0 et 9 en un seul lancement (sous le compte root). Avant d'utiliser ce script, vous devrez d?finir une variable RHCDPATH pointant vers le r?pertoire o? se trouve le fichier rhcd.conf et param?trer ce fichier. Si vous voulez inclure un fichier comps.xml modifi? (ou comps) dans vos CD, comme expliqu? dans le fichier comps, vous devrez le copier ? l'emplacement d?fini par la variable COMPSFILE avant d'ex?cuter le script. Si vous en avez besoin, n'oubliez pas d'ajouter le script modifi? splitdistro dans le r?pertoire /usr/lib/anaconda-runtime.

# export RHCDPATH=/home/luigi/tmp/rhcd-scripts
# sh updateBuild.sh

6.?Graver le ou les CD

Cette ?tape est compos?e d'une partie optionnelle et d'une partie obligatoire. Rappelez-vous que vous aurez probablement besoin d'?tre connect? sous le compte ??root?? de votre machine pour lancer cdrecord.

6.1.?Essayer l'image ou les images

Si vous ?tes parano?aque, vous pouvez tester votre nouvelle image disque en la montant. Si vous oubliez de corriger les droits des fichiers ou de mettre en place les extensions rock ridge, alors l'erreur sera ?vidente puisque les noms de fichier et la structure des r?pertoires seront erron?s. Le test (optionnel) peut ?tre r?alis? en entrant la commande suivante?:

# mount -t iso9660 -o ro,loop=/dev/loop0 image-iso /mnt/cdrom

O? image-iso est le nom que vous aurez donn? ? l'image iso ? monter (qui doit ?tre seule pour les versions sup?rieures ou ?gales ? la 6.2). Quand vous avez termin?, n'oubliez pas de la d?monter?:

# umount /mnt/cdrom

6.2.?Graver le ou des disques

Assurez-vous que vous avez d?fini les bons param?tres pour votre p?riph?rique. Par exemple, la commande suivante est destin?e ? un graveur 4x, ce qui est assez lent. De plus, on suppose que le graveur de CD est ici sur le bus SCSI num?ro 0, avec l'ID 0 et le LUN 0. Vous pourrez obtenir ces valeurs en lan?ant un cdrecord?-scanbus et en les assignant au param?tre ??-dev=??.

# cdrecord -v speed=4 dev=0,0,0 /repertoire-destination-images/disc1.img

7.?Le fichier comps

Le fichier comps d?finit la fa?on dont les paquets seront regroup?s durant l'installation. Dans la distribution RedHat, ceci est fait selon les fonctionnalit?s qu'ils offrent, par exemple?:

  • Utilisation d'imprimantes

  • Syst?me X Window

  • GNOME

  • KDE

  • Outils courrier, web et forums

  • D?veloppement du noyau

  • Documentation suppl?mentaire

Quelquefois durant le processus d'installation, l'utilisateur se trouve face ? une fen?tre appel?e ??Composants ? installer??. Quelques-uns des composants ont ?t? pr?s?lectionn?s, d'autres non. Le dernier point sur la liste des composants est appel? ??Tout??. Sur la fen?tre, il existe aussi une option de personnalisation qui permet ? l'utilisateur de choisir tr?s pr?cis?ment la liste des paquets qui seront install?s. Personnaliser l'installation ou s?lectionner ??Tout?? dans la liste des composants est le seul moyen d'obtenir que votre propre s?lection de paquets soit install?e, sauf si vous modifiez le fichier RedHat/base/comps.

7.1.? Format du fichier comps pour RedHat versions < 6.1

Le fichier comps commence avec un en-t?te indiquant la version du format du fichier comps, suivie d'une ligne vide.

0.1
<empty line>

Puis, il dresse la liste des composants, s?par?s par des lignes vides?:

<composant 1>
<ligne vide>
<composant 2>
<ligne vide>
...
<composant n>
<ligne vide>
EOF

Chaque composant est d?fini comme suit?:

(0|1) (--hide)? <name>
<RPM 1>
<RPM 2>
...
<RPM n>
end

Avant le nom de chaque composant est plac? un 0 ou un 1. Une valeur de 1 ? cet endroit indique que le composant est choisi par d?faut alors qu'un 0 signifie le contraire. L'option --hide veut dire que l'entr?e ne sera pas affich?e, sauf si vous choisissez l'installation ??en mode expert??. Le premier composant est appel? ??Base?? et il est sp?cial, dans le sens o? il doit ?tre pr?sent et qu'il n'appara?tra pas dans le dialogue (vous ne pouvez pas d?s?lectionner l'installation de la base, ce qui est sens?). Suit une liste de paquets RPM appartenant ? ce composant. Notez qu'il s'agit du nom du paquet stock? dans le fichier rpm et non d'une partie du nom de fichier du paquet (bien qu'il soient sens?s, par convention, ?tre identiques).

En ajoutant vos paquets au fichier comps, vous pourrez personnaliser votre propre distribution et vous assurer que vos paquets seront install?s par d?faut. Une chose ? laquelle vous devez faire attention est l'interd?pendance entre vos paquets, mais ici c'est ? vous de jouer :-) Un mot pour vous pr?venir?: faites attention de ne pas ajouter ou supprimer des espaces blancs suppl?mentaires dans le fichier. Examinez le fichier comps existant (faites une copie de l'original) pour voir comment il est fait (ou v?rifiez i386/misc/src/install/pkgs.c si vous voulez comprendre comment le fichier est analys?).

7.2.?Format du fichier comps pour RedHat version?6.1

Avec la version?6.1 de la distribution RedHat, le format du fichier comps a chang?. Le d?codage s'effectue dans ${RHROOT}/${ARCH}/misc/src/anaconda/comps.py. Je n'ai pas encore analys? ce script python et les r?gles suivantes ont ?t? obtenues seulement en ?tudiant le fichier comps et en essayant quelques param?trages.

Dans la version?6.1, la d?finition du composant est ?tendue pour inclure quelques ?l?ments optionnels suppl?mentaires avant les <RPM>. Ces ?l?ments sont?:

<RPM-d?pendant-de-l-architecture 1>
...
<RPM-d?pendant-de-l-architecture n>
<composant-requis 1>
...
<composant-requis n>
<RPM-d?pendant-d-un-composant 1> 
...
<RPM-d?pendant-d-un-composant n>

Un <RPM-d?pendant-de-l-architecture> d?finit une d?pendance entre un paquet et une architecture sp?cifique et a pour d?finition?:

(!)?arch: <RPM>

Donc, il peut, par exemple, se pr?senter dans le monde r?el comme?:

!alpha: kernelcfg

ce qui veut dire?: si l'architecture n'est pas alpha alors il faut installer le paquet kernelcfg.

Ou comme?:

i386: mkbootdisk

Ce qui veut dire?: si l'architecture est i386 alors il faut installer le paquet mkbootdisk.

Un <composant-requis> renforce la d?pendance avec un autre composant et il est d?fini comme?:

@ <composant>

Donc, par exemple, si ? l'int?rieur de la d?finition d'un composant, vous trouvez la ligne suivante?:

@ Station r?seau

cela veut dire que le composant lui-m?me a besoin de l'installation d'un autre composant nomm? Station r?seau.

Un <RPM-d?pendant-d-un-composant> est utilis? pour s?lectionner l'installation de quelques paquets additionnels pour un composant, ?tant donn? la pr?sence d'un autre composant. Sa d?finition est la suivante?:

? <composant> { 
  <RPM 1>
  ...
  <RPM n>
}

Donc si, par exemple, dans la d?finition d'un composant, il vous arrive de lire les lignes suivantes?:

? KDE { 
  kpppload
}

alors si le composant KDE est install?, le paquet kpppload sera install? en m?me temps que les paquets inclus dans le composant o? se trouve cette d?finition.

7.3.?Format du fichier comps dans RedHat version?6.2

Avec RedHat version?6.2, le format du fichier comps a apparemment tr?s l?g?rement chang?. Le d?codage se fait toujours dans ${RHROOT}/${ARCH}/misc/src/anaconda/comps.py. Encore une fois, je n'ai pas analys? ce script python et les r?gles suivantes ont ?t? obtenues uniquement en ?tudiant le fichier et en essayant quelques param?trages.

Dans la version?6.2, la d?finition du composant est ?tendue pour inclure deux ?l?ments optionnels suppl?mentaires?:

<RPM-d?pendant-de-la-langue 1>
...
<RPM-d?pendant-de-la-langue n>
<composant-d?pendant-de-l-architecture 1>
...
<composant-d?pendant-de-l-architecture n>

Un <RPM-d?pendant-de-la-langue> est n?cessaire pour demander l'installation d'un paquet lorsqu'une langue sp?cifique a ?t? s?lectionn?e. C'est d?fini ainsi?:

(lang <langue>): <RPM>

Par exemple, la ligne suivante

(lang ja_JP): locale-ja

veut dire?: si la langue japonaise est s?lectionn?e, alors il faudra installer le paquet locale-ja en plus des autres paquets install?s pour ce composant.

Un <composant-d?pendant-de-l-architecture> ?tend le concept du <RPM-d?pendant-de-l-architecture>, introduit pour la version?6.1, au composant entier, comme vous pouvez le voir ? la lecture de sa d?finition?:

(!)?arch: <composant>

7.4.?Format d'un fichier comps dans la RedHat version?7.3

Avec la version?7.3 de la distribution RedHat, le format du fichier comps poss?de une syntaxe plus puissante. Le d?codage prend place (encore) dans le script comps.py, que vous trouverez dans le r?pertoire /usr/lib/anaconda/ si vous avez install? le paquet anaconda. Les d?pendances d'un composant ou d'un paquet envers une langue ou une architecture donn?es peuvent maintenant ?tre li?es par l'op?rateur logique and (et logique). Par exemple?:

(arch !s390 and arch !s390x and arch !ia64): readline2.2.1

ce qui veut dire que si l'architecture n'est ni s390, ni s390x, ni ia64, alors il faudra installer le paquet readline2.2.1. Ceci peut ?tre fait avec des composants au lieu des paquets et avec des langues ? la place des architectures. Tout ceci est sans aucun doute plus qu'assez pour les exemples simples de personnalisation de l'installation par d?faut qui seront pr?sent?s dans la section suivante.

7.4.1.?Personnaliser l'installation par d?faut de la RedHat version?7.3

L'exemple que nous allons suivre dans cette section implique de modifier le fichier comps pour changer les valeurs par d?faut concernant l'installation des paquets. Je pr?f?re habituellement (en fait sp?cialement dans certaines situations) une installation par d?faut incluant seulement les paquets de base, avec quelques l?g?res modifications pour certains d'entre eux. Dans le premier des exemples pr?sent?s, nous construirons une installation par d?faut qui ajoute libsafe au composant ??Base??, dont la plupart des paquets, qui sont g?n?ralement install?s par d?faut, seront d?s?lectionn?s dans le but de construire une installation minimale. Dans le second des exemples, nous modifierons quelques-uns des composants pour construire une autre installation minimale qui r?ponde ? nos besoins (cette fois, pratiquement parfaitement?; ce sont, en fait, mes besoins, les v?tres pouvant varier). Si vous voulez inclure un fichier comps modifi? dans vos CD, vous devrez le copier dans l'arborescence principale juste avant de lancer les op?rations d?crites dans reconstruire l'installateur 7.3 ou 8.0.

7.4.1.1.?Ajouter des RPMS et d?s?lectionner les composants par d?faut

Pour personnaliser votre installation de cette fa?on, vous devrez ?diter le fichier comps avec votre ?diteur de texte favori (faites attention ? ne pas laisser d'espaces ou de tabulations dans ce fichier) et le d?placer dans le r?pertoire Redhat/base en ?crasant l'original.

Dans le premier fichier comps inclus, le paquet libsafe est ajout? au composant ??Base?? (syst?me de base) et presque tous les composants sont d?s?lectionn?s pour obtenir une installation par d?faut comportant seulement 200 paquets (je sais qu'ils peuvent ?tre encore trop nombreux).

7.4.1.2.?Modifier quelques-uns des composants standards

Nous avons construit le deuxi?me fichier comps ci-joint ? partir de la configuration pr?c?dente en r?duisant un peu plus l'installation par d?faut (cette fois, elle ne contient plus que 154 paquets). Quelques-uns des groupes ont ?t? divis? pour donner ? l'installation une meilleure granularit?. Toutes les modifications que vous faites doivent prendre en compte les interd?pendances entre paquets et les applications utilis?es durant les phases d'installation (par exemple, vous ne pouvez pas supprimer kudzu du composant Base, bien que vous puissiez le faire apr?s installation). Je dois aussi vous pr?ciser que des r?sultats similaires peuvent ?tre obtenus en utilisant kickstart. Pour plus d'informations ? ce propos, vous pourrez lire le Guide de Personnalisation du Linux RedHat.

7.5.? Format du fichier comps ? partir des versions?8.0 et 9 de RedHat

Avec les versions?8.0 et 9, le format du fichier comps a compl?tement chang? et on utilise maintenant un fichier XML, nomm? comps.xml. Les d?tails de la syntaxe de ce fichier sont pr?sent?s dans la section Les comps d'Anaconda du site web de RedHat.

7.5.1.? Personnaliser l'installation par d?faut de la RedHat version?8.0

Nous allons maintenant reprendre les exemples pr?sent?s pour la version?7.3 en prenant en compte les modifications qu'ont subi les diff?rents groupes. Le groupe le plus important (le groupe ??Base??) est ici divis? en deux groupes nomm?s ??Base?? et ??Core??. Le groupe ??Base?? devrait repr?senter la plus petite installation possible.

7.5.1.1.?Notre premier exemple revisit? pour Redhat?8.0

Cette fois, pour personnaliser votre installation, vous devrez ?diter le fichier comps-milan.xml.in avec votre ?diteur de texte favori. Ce fichier se trouve dans l'archive comps-8.0.tar.gz disponible sur le site web de RedHat. Pour ajouter les informations relatives aux paquets au fichier que vous cr?ez, vous aurez besoin d'avoir install? le paquet rpm comps-extras. Les commandes ? lancer pour terminer les op?rations sont indiqu?es dans mettre ? jour comps.xml et dans la documentation. Apr?s avoir cr?? le fichier, vous devrez le copier dans le r?pertoire Redhat/base en ?crasant l'original. Si vous utilisez le script updateBuild.sh, vous devrez seulement copier comps-milan.xml (apr?s avoir modifi? le comps-milan.xml.in qui se trouve dans le paquet tar/gzip comps-8.0.tar.gz et lancer la commande make), ? l'emplacement que vous avez d?j? indiqu? dans la variable COMPSFILE (dans rhcd.conf).

Dans le premier fichier comps ci-joint, le paquet libsafe a ?t? ajout? au groupe (composant) ??Base?? et pratiquement tous les groupes (composants) ont ?t? d?s?lectionn?s, sauf ??Base?? et ??Core??, pour avoir une installation par d?faut de seulement 220 paquets environ (probablement trop nombreux, encore une fois).

7.5.1.2.?Notre deuxi?me exemple revisit? pour Redhat?8.0

Nous avons construit le deuxi?me fichier comps ci-joint en partant de la configuration pr?c?dente et en r?duisant un peu plus l'installation par d?faut (cette fois, il ne restera que 158 paquets dans l'installation par d?faut). Encore une fois, des r?sultats similaires peuvent ?tre obtenus en utilisant kickstart, pour plus d'informations ? ce propos, vous pourrez lire le Guide de personnalisation du Linux RedHat. Dans cet exemple, je n'ai pas compl?tement d?s?lectionn? l'installation du groupe ??Base??, parce qu'il contient trop de paquets que j'utilise d'habitude. J'ai donc juste d?s?lectionn? l'installation par d?faut pour ces paquets en les rendant optionnels. Comme vous pouvez le voir, m?me le paquet redhat-logos du groupe ??Core?? a ?t? rendu optionnel. Sachant que tous les paquets de ce groupe doivent repr?senter, ensembles, la plus petite installation possible, vous ne voudrez sans doute pas le faire (mes CD fonctionnent m?me m?me comme cela?; cependant, il doit y avoir quelques probl?mes que je n'ai pas encore d?tect?s). Le paquet tripwire a aussi ?t? ajout? au groupe ??Base??. La derni?re modification visible a ?t? faite au groupe ??dialup??, qui sera install? m?me s'il est d?s?lectionn?, parce que le groupe ??Base?? en d?pend (ce qui est indiqu? dans la d?finition du groupe lui-m?me). J'ai seulement s?lectionn? pour installation certains paquets de ce groupe dont j'ai habituellement besoin et laiss? le reste d?s?lectionn?.

7.5.2.? Personnaliser l'installation par d?faut de la RedHat version?9

Nous allons de nouveau reproduire les exemples pr?sent?s pour les versions?7.3 et 8 en prenant en compte les modifications qu'ont subies les diff?rents groupes.

7.5.2.1.?Notre premier exemple revisit? pour la Redhat?9

Comme dans le cas de la 8.0, pour personnaliser votre installation, vous devrez modifier le fichier comps-milan.xml.in avec votre ?diteur de texte favori. Ce fichier est disponible dans le fichier comps-9.tar.gz avec les scripts (comme je l'ai d?j? dit, vous ne trouverez pas la m?me chose sur le site web de Redhat). Pour ajouter les informations relatives aux paquets au fichier que vous cr?ez, vous aurez besoin d'avoir install? le paquet rpm comps-extras. Les commandes ? utiliser sont indiqu?es dans mettre ? jour comps.xml et dans la documentation. Apr?s avoir cr?? le fichier, vous devrez le copier dans le r?pertoire Redhat/base en ?crasant l'original. Si vous utilisez le script updateBuild.sh, vous devrez seulement copier comps-milan.xml, (apr?s avoir modifi? comps-milan.xml.in trouv? dans le paquet tar/gzip comps-9.tar.gz et avoir lanc? la commande make), vers la destination que vous avez d?j? indiqu?e dans la variable COMPSFILE (rhcd.conf).

Dans le premier fichier comps inclus, le paquet libsafe a ?t? ajout? au groupe (composant) ??Base?? et pratiquement chaque groupe (composant) a ?t? d?s?lectionn?, mis ? part ??Base?? et ??Core??, de fa?on ? avoir une installation par d?faut comprenant seulement environ 240 paquets (hummm, la complexit? augmente beaucoup…).

7.5.2.2.?Notre second exemple revisit? pour Redhat?9

Dans le second fichier comps ci-joint, nous partons de la configuration pr?c?dente et nous r?duisons un peu plus l'installation par d?faut (cette fois, il n'y aura qu'environ 175 paquets dans l'installation par d?faut). Ceci ressemble beaucoup ? l'exemple pr?sent? pour la Redhat?8.0, donc je vais ?viter de vous ennuyer avec les m?mes explications. Encore une fois, des r?sultats identiques peuvent ?tre obtenus en utilisant kickstart. Vous trouverez plus d'informations sur le sujet en lisant le Guide de personnalisation du Linux RedHat.

8.?Installation ? partir du CD

Lors de l'installation ? partir du nouveau CD, vous pourriez avoir tout d'abord besoin de cr?er une disquette d'installation amor?able. IMPORTANT?: utilisez une disquette neuve, tout juste format?e en format MS-DOS?!. Utiliser une vieille disquette peut entra?ner des probl?mes ?tranges lors de l'installation?! Sur un syst?me Linux, vous pourrez cr?er la disquette en utilisant la commande dd?:

$ dd if=/mnt/cdrom/images/boot.img of=/dev/fd0 bs=1440k 

Sur un syst?me tournant sous DOS ou Windows-9x, vous aurez besoin d'utiliser le programme rawrite.exe, disponible dans le r?pertoire dosutils du CD. Sur une machine sous Windows-9x/Me/NT/2k, vous pourrez utiliser rawritewin.exe situ? dans le r?pertoire dosutils/rawritewin.

Arr?tez la machine sur laquelle vous voulez installer votre CD (ou faire une mise ? jour du syst?me), ins?rez la disquette de d?marrage et votre CD fra?chement grav?, et laissez la machine d?marrer ? partir de la disquette. Pour plus d'informations sur le processus d'installation, voir les documents ainsi que le Guide pratique Installation ou le Guide pratique des disques d'amor?age.

8.1.?D?marrer d'un CD amor?able

La plupart des machines modernes sont capables de d?marrer ? partir d'un CD, ? condition qu'il soit rendu amor?able par proc?dure indiqu?e dans la section cr?er des images iso. Souvent, n?anmoins, vous aurez besoin de changer le param?trage du BIOS pour permettre le d?marrage ? partir du lecteur de CD. R?f?rez-vous ? la documentation de votre carte-m?re pour savoir comment le faire.

9.?Autres distributions Linux

Les informations concernant les versions inf?rieures ou ?gales ? la version?6.1, pr?sentes dans les pr?c?dentes versions de ce guide pratique (??1.34) et reprises dans le pr?sent document, sont suppos?es s'appliquer ? toutes les distributions clones de la RedHat, telle que la distribution Mandrake. Malgr? tout, cette proc?dure n'a pas ?t? v?rifi?e [pour d'autres distributions] (comme vous pouvez le lire dans le guide pratique lui-m?me).

C'est en gros la m?me chose pour la distribution LinuxPPC pour les PowerMac d'Apple. Pour cr?er une distribution pour la plate-forme PowerMac, vous devrez utiliser mkhybrid ? la place de mkisofs et ce devrait ?tre la seule diff?rence.

Les informations concernant les nouvelles versions de RedHat (>?6.1) ne devraient pas fonctionner avec la distribution Mandrake, qui dispose maintenant d'un installateur assez diff?rent de celui de RedHat. Je ne sais absolument pas s'il est possible de mettre ? jour les CD d'autres distributions clones de la distribution RedHat de la m?me fa?on, mais je serais heureux d'en ?tre inform?.

10.?Ce document…

Le code source SGML de la plus r?cente version originale de ce document est disponible ici.

Le code source XML de la derni?re version fran?aise de ce document est disponible sur le site du projet Traduc.org?: ftp://ftp.traduc.org/pub/traduc.org/doc-vf/HOWTO/telechargement/sgml/.

10.1.?Documents connexes

10.1.1.? Documentation relatifs ? la version actuelle

Les documents suivants ont ?t? utiles pour la cr?ation de ce guide pratique?:

Le ??Petit guide (non officiel) de personnalisation de l'installateur de la Redhat?7?? de Tony Nugent. Ce document est tr?s int?ressant et utile. Donc, si vous pensez s?rieusement construire des CD personnalis?s, je vous sugg?re fortement de le lire. Vous le trouverez sur www.linuxworks.com.au.

Miguel Freitas a ?crit le ??Petit guide des CD RedHat?7??, que vous pourrez lire sur ce site web.

Ron Yorston a ?crit le document rpmhack, qui est int?ressant pour la version?6.2 du Linux RedHat.

Quelqu'un (je n'ai pas trouv? son nom) a ?crit le document Construire un CDROM Linux Red Hat 6.2, utile pour la version?6.2.

10.1.2.?Documentation relative ? l'?dition pr?c?dente

Avec le sens des bonnes choses de la vie, Jussi Torhonen de Finlande nous dit comment cr?er un CD-ROM RedHat Linux 5.2 amor?able fait-?-la-maison.

Consultez aussi le ??Guide pratique de la gravure de CD?? du projet de documentation Linux (LDP).

10.2.?Remerciements

? part les personnes mentionn?es ci-dessus, je remercie les personnes suivantes pour leurs informations pr?cieuses, commentaires, discussions et c?tera?:

10.2.1.?Remerciement pour la version actuelle

11.?Adaptation fran?aise

11.1.?Traduction

La traduction fran?aise de ce document a ?t? r?alis?e par Guillaume Lelarge .

11.2.?Relecture

La relecture de ce document a ?t? r?alis?e par Guillaume Hatt .

Une relecture compl?mentaire de ce document a ?t? r?alis?e par Jean-Philippe Gu?rard .



[1] ??Paquetages?? est le terme utilis? par RedHat pour parler des ??paquets??, c'est-?-dire des formats d'archive utilis?s pour distribuer des applications et incluant tout ce qui est n?cessaire ? l'installation, ? la d?sinstallation et au fonctionnement de cette application.

[2] Vous pourrez trouver ces listes dans la section des listes de discussion du site web de RedHat.