Version : 2.1.fr.1.1
Copyright © 2000 Morten Kjeldgaard, Peter von der Ahé
Copyright © 2002, 2003 Luigi Bitonti
Copyright © 2003, 2004 Guillaume Lelarge, Guillaume Hatt, Jean-Philippe Guérard
2004-11-01
Historique des versions | ||
---|---|---|
Version 2.1.fr.1.1 | 2004-11-01 | GL, GH, JPG |
Version 2.1.fr.1.0 | 2003-12-07 | GL, GH |
Version 2.1 | 2003-10-17 | LB |
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.0 | 2003-08-18 | GL, GH, JPG |
Version 2.03 | 2003-03-10 | LB |
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.02 | 2003-03-06 | LB |
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.01 | 2002-12-04 | LB |
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.0 | 2002-10-28 | LB |
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
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 |
---|---|
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 |
---|---|
Rappelez-vous de toujours mettre en place les variables dans
|
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.
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 »).
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).
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
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.
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.
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
.
, où
archi
.rpmarchi
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.
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 |
---|---|
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). |
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).
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
, où
liste
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
pour les versions jusqu'à la 7.3 incluse, ce qui a
été remplacé par nom_du_fichier
rpm --import
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).
nom_du_fichier
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
.
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 |
---|---|
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). |
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.
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
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 |
---|---|
Après avoir incorporé les mises à jour dans le répertoire
principal |
#!/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 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
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 |
${RHROOT}/${ARCH}/RedHat/instimage/usr/lib
dans le fichier /etc/ld.so.conf
et lancer
la commande ldconfig -v
.
#!/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
![]() | Note importante pour la Redhat 5.2 |
---|---|
Tel qu'il est distribué avec les RedHat versions 5.2 et
précédentes, |
$ 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 .
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).
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.
Toutes ces étapes sont regroupées en un seul script qui sera présenté dans la section « le script updateBuild.sh ».
$ 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
$ 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.
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
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 ».
/chemin-absolu-de-la-racine
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
, vous devrez prendre soin d'indiquer des noms
valides pour /chemin-absolu-de-la-racine
et /répertoire-de-votre-choix
. Le reste des commandes pourra simplement être
recopié. Et vous devrez évidemment changer 9 en 8.0 si vous
construisez une version 8.0.
/chemin-vers-comps-9.tar.gz
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.
$ /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
$ /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.
![]() | 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 |
$ /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.
$ /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é).
$ 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 .
$ 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 .
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 ».
Les commandes suivantes permettent d'injecter ou de vérifier une signature md5 sur une image iso :
$ /usr/lib/anaconda-runtime/implantisomd5image-iso
$ /usr/lib/anaconda-runtime/checkisomd5image-iso
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
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
<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>
(!)?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.
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>
@ Station réseau
? <composant> { <RPM 1> ... <RPM n> }
? KDE { kpppload }
<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>
(lang <langue>): <RPM>
Par exemple, la ligne suivante
(lang ja_JP): locale-ja
(!)?arch: <composant>
(arch !s390 and arch !s390x and arch !ia64): readline2.2.1
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.
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).
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.
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.
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).
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é.
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…).
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.
$ dd if=/mnt/cdrom/images/boot.img of=/dev/fd0 bs=1440k
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.
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.
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é.
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/.
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.
Avec le sens des bonnes choses de la vie, Jussi Torhonen de
Finlande
<
jussi POINT torhonen CHEZ tietosavo POINT fi>
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).
Peter von der Ahé,
<pahe+rhcd CHEZ daimi POINT au POINT dk>
Giulia Tomaselli
Jacinta Conneely
Filippo Carcaci
Guillaume Lelarge
<gleu CHEZ wanadoo POINT fr>
Alain Portal
<aportal CHEZ univ-montp2 POINT fr>
Toutes les personnes des listes de discussion anaconda-devel et kickstart
Thomas Duffy
<tbd CHEZ cs POINT brown POINT edu>
Dawn Endico
<dawn CHEZ math POINT wayne POINT edu>
Michael Thomas Cope
<mcope CHEZ orion POINT ac POINT hmc POINT edu>
Charles J. Fisher
<charles_fisher CHEZ bigfoot POINT com>
Eric Thomas
<eric POINT thomas CHEZ ericsson POINT com>
Gordon Yuen
<gdccyuen CHEZ yahoo POINT com>
Dave Morse
<morse CHEZ nichimen POINT com>
La traduction française de ce document a été réalisée
par Guillaume Lelarge
<
gleu CHEZ wanadoo POINT fr>
.
La relecture de ce document a été réalisée par Guillaume Hatt
<
ghatt CHEZ netcourrier POINT com>
.
Une relecture complémentaire de ce document a été réalisée par
Jean-Philippe Guérard
<fevrier CHEZ tigreraye POINT org>
.
[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.