mini-HOWTO Comment graver un CD-ROM RedHat
 Morten Kjeldgaard, [email protected] et Peter von der Ah�,
 [email protected] Traduction fran�aise : Thierry Danis
 [email protected]
 v.00, 9 septembre 1998, traduction fran�aise du 12 d�cembre
 1998

 Ce document explique comment fabriquer un CD-ROM de la distribution
 RedHat �quivalent � ceux que vous pouvez vous procurer directement
 aupr�s de Red Hat.  Vous y trouverez une description de la structure
 des fichiers de la distribution, ainsi que la fa�on de proc�der pour
 inclure dans celle-ci des RPM � jour. Les pr�requis sont une solide
 connexion � l'internet et un graveur de CD.
 ______________________________________________________________________

 Table des mati�res


 1. Introduction

 2. Structure du site FTP de RedHat

    2.1 La racine
    2.2 Le r�pertoire "RedHat" -- corps principal de la distribution

 3. Les paquets RPM

 4. Comment faire une copie locale d'une distribution ?

 5. Mettre � jour des paquets

    5.1 V�rifier les modes d'acc�s aux fichiers
    5.2 Remplacer les RPM mis � jour
    5.3 Reg�n�rer le fichier hdlist

 6. Enfin : gravage du CD

 7. Installation depuis le CD-ROM

 8. AVERTISSEMENT



 ______________________________________________________________________

 11..  IInnttrroodduuccttiioonn


 Vous pouvez avoir plusieurs raisons de faire vos propres CD-ROM. Vos
 poches sont peut-�tre perc�es et vous ne voulez pas d�bourser les 50
 dollars de la distribution RedHat <http://www.redhat.com/>.  Vous
 pouvez aussi avoir besoin d'un CD-ROM avec les mises � jour les plus
 r�centes pour la derni�re distribution. C'est d'autant plus vrai
 qu'apr�s chaque version importante de la RedHat, de nombreuses mises �
 jour sont sorties, la plupart d'entre elles �tant li�es � des
 probl�mes de s�curit�. Allez jeter un oeil au fichier
 updates/00README.errata
 <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/updates/00README.errata>.
 Il existe un errata sp�cifique � chaque plate-forme support�e. Allez
 faire un tour par exemple sur la page d'errata pour Intel
 <ftp://ftp.redhat.com/pub/redhat/updates/5.1/i386/00README.errata>.





 22..  SSttrruuccttuurree dduu ssiittee FFTTPP ddee RReeddHHaatt


 Dans l'esprit de la communaut� linuxienne, Red Hat Software a mis �
 disposition sur son site FTP ses distributions de Linux pour plusieurs
 plate-formes. Elles sont toutes accessibles depuis la racine de
 l'arborescence.


 22..11..  LLaa rraacciinnee


 Le r�pertoire de plus haut niveau pour la RedHat 5.1
 (pub/redhat/redhat-5.1 <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/>)
 contient les distributions pour les diff�rentes plate-formes ainsi
 qu'un r�pertoire de mises � jour et de corrections pour des paquets
 sortis depuis cette version 5.1.



      SRPMS/     alpha/     i386/      sparc/     updates/




 Nous allons baser notre discours sur la distribution i386. La d�marche
 expliqu�e dans ce document devrait �tre la m�me pour toutes les
 architectures support�es par Red Hat (Alpha, SPARC, ppc, etc.) ; elle
 n'a cependant �t� test�e que sur architecture i386 (les auteurs
 seraient int�ress�s par tout compl�ment d'information). La racine de
 l'arborescence i386 ressemble � ce qui suit :



      -rw-r--r--   8 ftpuser  ftpusers     19686 May 27  1997 COPYING
      -rw-r--r--   1 ftpuser  ftpusers      3023 May  7 09:58 README
      -rw-r--r--  10 ftpuser  ftpusers      2751 Sep 18  1997 RPM-PGP-KEY
      drwxr-xr-x   5 ftpuser  ftpusers        96 Jul 15 08:34 RedHat/
      drwxr-xr-x   5 ftpuser  ftpusers      8192 Jul 15 08:35 doc/
      drwxr-xr-x   5 ftpuser  ftpusers      8192 Jul 15 08:35 dosutils/
      drwxr-xr-x   5 ftpuser  ftpusers      8192 Jul 15 08:33 gnome/
      drwxr-xr-x   2 ftpuser  ftpusers        96 Jun  7 02:47 images/
      drwxr-xr-x   4 ftpuser  ftpusers        96 Jun  5 12:24 misc/




 Le r�pertoire doc est une mine d'information. Point important, le
 manuel d'installation de la RedHat au format HTML se trouve dans le
 r�pertoire doc/rhmanual/manual/
 <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/i386/doc/rhmanual/manual/doc000.htm>.
 On y trouvera aussi de nombreuses FAQ (Foire Aux Questions) ainsi que
 tous les HOWTO et mini-HOWTO.

 Le r�pertoire images contient les images binaires des disquettes de
 d�marrage. Dans les derni�res distributions (5.1 et au-del�), deux
 images sont disponibles. L'image de d�marrage s'appelle boot.img. Elle
 est n�cessaire lorsque l'installation se fait directement depuis le
 CD-ROM. L'utilisateur pourra �tre amen� � fournir une disquette sur
 laquelle l'image suppl�mentaire (supp.img) aura �t� recopi�e si
 l'installation est lanc�e depuis un disque dur local, via NFS ou par
 FTP. Reportez-vous � la section ``Installation depuis le CD-ROM'' pour
 plus de d�tails.

 Le r�pertoire misc contient les sources et les ex�cutables d'un
 certain nombre de programmes utilis�s lors de l'installation.
 22..22..  LLee rr��ppeerrttooiirree ""RReeddHHaatt"" ---- ccoorrppss pprriinncciippaall ddee llaa ddiissttrriibbuuttiioonn


 La partie la plus importante de l'arborescence se trouve dans le
 r�pertoire RedHat :



      drwxr-xr-x   2 ftpuser  ftpusers     24576 Jul 15 08:35 RPMS/
      drwxr-xr-x   2 ftpuser  ftpusers      8192 Jul 15 08:32 base/
      -rw-rw-rw-  59 ftpuser  ftpusers         0 Aug 15 14:21 i386
      drwxr-xr-x   4 ftpuser  ftpusers        96 Jun  5 12:24 instimage/




 Les constituants principaux de la distribution sont situ�s dans le
 r�pertoire RPMS. Ils sont form�s d'un ensemble de fichiers au format
 RPM (Redhat Package Manager). Un paquet RPM est typiquement constitu�
 d'ex�cutables binaires, accompagn�s de leur documentation et de
 fichiers de configuration. Reportez-vous � la section ``Les paquets
 RPM'' pour plus de renseignements.

 Le r�pertoire base regroupe plusieurs fichiers 'pr�compil�s' utilis�s
 lors de l'installation (par exemple, le fichier comps d�crit les
 _c_o_m_p_o_s_a_n_t_s (groupes de paquets) utilis�s pendant la phase "Choix des
 paquets � installer" ("Choose packages to install").  Le fichier
 hdlist est un autre de ces fichiers : il contient la plupart des
 champs d'en-t�te de chacun des paquets RPM du r�pertoire RPMS).

 Cela signifie que le processus d'installation peut conna�tre les
 inter-d�pendances entre paquets simplement en consultant le fichier
 hdlist plut�t que de parcourir tous les paquets pr�sents ; c'est
 particuli�rement pratique dans le cas d'une installation par FTP.

 Une autre utilit� du fichier hdlist est de pouvoir associer aux noms
 des paquets des noms de fichiers (perl � perl-5.004-6.i386.rpm par
 exemple). Cela signifie que si vous d�sirez effectuer des mises � jour
 (voir section ``Mettre � jour des paquets'') ou ajouter vos propres
 paquets au r�pertoire RPMS, vous devrez reconstruire le fichier
 hdlist.  La fa�on de proc�der est d�crite plus loin dans le chapitre
 ``Reg�n�rer le fichier hdlist''.

 Le r�pertoire instimage contient une arborescence "live" n�cessaire �
 la proc�dure d'installation (on y trouve un certain nombre de
 programmes et de librairies dynamiques).


 33..  LLeess ppaaqquueettss RRPPMM


 La plus grande partie de la distribution est constitu�e de paquets RPM
 (Redhat Package Manager). Classiquement, un paquet RPM est form�
 d'ex�cutables binaires, de leur documentation associ�e et de fichiers
 de configuration.  Le programme rpm <http://www.rpm.org> est un
 gestionnaire de paquets tr�s puissant, qui peut �tre utilis� pour
 installer, consulter, v�rifier, mettre � jour, effacer ou construire
 des paquets (logiciels) au format RPM. rpm maintient une base de
 donn�es des paquets manipul�s ; de cette mani�re, les informations
 relatives aux logiciels install�s sont toujours disponibles.

 Les fichiers RPM pr�sents dans une distribution ont �t� construits sur
 un syst�me fonctionnant sous cette distribution. C'est un point
 important dans la mesure o� la plupart des programmes compil�s
 s'appuyent sur les librairies dynamiques (shared libraries). A partir
 de la version 5.0, Red Hat se base sur la nouvelle librairie C du GNU
 (version 2, g�rant proprement les donn�es en 64 bits). La version de
 cette librairie est commun�ment appel�e glibc, ou, sous Linux, libc 6.
 L'�dition de liens de tous les ex�cutables de la distribution a �t�
 faite en utilisant cette librairie.  Si vous essayez d'installer des
 programmes d'autres distributions, vous courez le risque que rien ne
 marche, � moins d'avoir pris la pr�caution d'installer le paquet libc5
 pour compatibilit� ascendante.

 Les noms des paquets RPM contiennent le suffixe ._a_r_c_h.rpm ; _a_r_c_h est
 l'architecture (i386 pour les binaires Intel). Les paquets que vous
 installez doivent correspondre aux versions des librairies dynamiques
 pr�sentes sur votre machine. Le programme rpm <http://www.rpm.org>
 s'assure en g�n�ral que c'est le cas. Il y a cependant moyen d'outre-
 passer ses v�rifications, mais vous devez avoir bien conscience de ce
 que vous risquez si vous d�cidez d'agir ainsi. N�anmoins, si vous
 utilisez le disque d'installation RedHat, les paquets corrects seront
 install�s sur votre machine.

 Si vous vous apercevez qu'un paquet n'est pas pr�sent au terme de
 l'installation, ne d�sesp�rez pas. Vous pouvez � tout moment installer
 (en tant que root) des paquets RPM :



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




 Vous pouvez aussi faire l'installation directement depuis l'internet,
 si vous connaissez l'URL du paquet :



      rpm --install ftp://rufus.w3.org/redhat-contrib/noarch/mirror-2.9-2.noarch.rpm




 Une variante des paquets RPM contient les sources d'origine qui ont
 servi � fabriquer un paquet binaire. Ces paquets poss�dent le suffixe
 .src.rpm et sont situ�s dans le r�pertoire SRPMS. Il n'est pas
 n�cessaire qu'ils se trouvent sur le CD-ROM d'installation. De toute
 fa�on, il n'y a pas suffisamment de place pour les y faire tenir.
 Bien entendu, vous pourrez graver un second CD-ROM avec les SRPMS.


 44..  CCoommmmeenntt ffaaiirree uunnee ccooppiiee llooccaallee dd''uunnee ddiissttrriibbuuttiioonn ??


 Vous devez recopier la distribution sur un disque inscriptible
 accessible par la machine poss�dant le graveur de CD (�tonnant non ?).
 Si vous voulez y mettre les derni�res mises � jour, l'arborescence
 devra aussi �tre accessible en �criture depuis votre machine Linux
 (disque local, partition NFS, disque JAZ...).

 Vous pouvez ou bien recopier le contenu d'un CD-ROM RedHat, ou bien
 r�cup�rer la distribution par FTP. Si vous choisissez cette seconde
 solution, le meilleur moyen pour avoir une copie correcte est
 d'utiliser le paquet mirror.

 mirror est un script �volu� en perl qui compare le contenu d'une
 arborescence avec celui d'une r�f�rence sur une autre machine. Il
 utilise FTP pour r�cup�rer les fichiers qui sont sur le site distant
 et qui sont absents du site local, il supprime les fichiers locaux qui
 n'apparaissent pas dans l'arborescence distante. Le programme mirror
 est configurable.  Le paquet peut �tre r�cup�r� au format RPM �
 l'adresse rufus.w3.org <http://rufus.w3.org/linux/RPM/mirror.html>.

 Faites votre copie locale du fichier de configuration de mirror
 (mirror.redhat) et modifiez les champs vous concernant au d�but du
 fichier. Apr�s la section par d�faut, d�finissez les paquets
 suivants :



      package=updates
             site=ftp.sunsite.auc.dk
             exclude_patt=(alpha/|sparc/)
             remote_dir=/disk1/ftp.redhat.com/pub/redhat/redhat-5.1/updates
             local_dir=/jaz/redhat-5.1/updates

      package=dist
             site=ftp.sunsite.auc.dk
             exclude_patt=(alpha/|sparc/)
             remote_dir=/disk1/ftp.redhat.com/pub/redhat/redhat-5.1/i386
             local_dir=/jaz/redhat-5.1/i386




 La commande qui suit va recopier toute l'arborescence RedHat sur votre
 disque local. _*_R_�_f_l_�_c_h_i_s_s_e_z_* avant de la lancer, car vous �tes sur le
 point de r�cup�rer pr�s de 350 Mo de donn�es.



      mirror -pdist mirror.redhat




 Cela va dupliquer le site FTP de Red Hat sur votre disque local. Le
 contenu de la distribution ne change pas entre deux versions ; vous
 n'aurez donc � t�l�charger l'arborescence qu'_U_N_E _S_E_U_L_E fois.  Toutes
 les modifications par rapport � la distribution se trouvent dans le
 r�pertoire updates. En cons�quence, si vous d�sirez maintenir un site
 miroir � jour de la distribution RedHat, la seule chose que vous aurez
 � consid�rer est le r�pertoire updates. Cela pourra �tre fait par la
 commande :



      mirror -pupdates mirror.redhat




 Vous pouvez le faire r�guli�rement - disons une fois par semaine - par
 un script cron. La distribution RedHat est disponible un peu partout
 sur le globe � travers un grand nombre de serveurs FTP mis � jour
 quotidiennement depuis le site primaire ( <ftp://ftp.redhat.com/pub>).
 Essayez de choisir un site proche de vous (consultez l'URL RedHat FAQ
 <http://www.redhat.com/support/docs/rhl/RedHat-FAQ/RedHat-
 FAQ-12.html#ss12.1>).


 55..  MMeettttrree �� jjoouurr ddeess ppaaqquueettss


 Afin de pouvoir faire des mises � jour, vous devez avoir acc�s en
 �criture au r�pertoire contenant la distribution. Vous devez aussi
 avoir install� une version du programme rpm <http://www.rpm.org>.

 Vous proc�derez ensuite en trois �tapes :


 1. V�rifiez les modes d'acc�s aux fichiers.

 2. Remplacez les RPM mis � jour.

 3. Reg�n�rez le fichier hdlist.

 Si vous maintenez un miroir du r�pertoire updates, vous pourrez
 produire � tout moment un CD-ROM incluant les derni�res mises � jour
 en r�p�tant ces trois �tapes.


 55..11..  VV��rriiffiieerr lleess mmooddeess dd''aacccc��ss aauuxx ffiicchhiieerrss


 Durant l'installation, certains programmes sont directement ex�cut�s
 depuis le CD-ROM. Malheureusement, le programme FTP ne pr�serve pas
 toujours les modes d'acc�s des fichiers et des arborescences copi�s.
 En cons�quence, il est n�cessaire de s'assurer que les programmes, les
 scripts shell et les librairies dynamiques ont les droits d'ex�cution
 idoines, avant que l'arborescence soit claqu�e sur le CD. Lancez
 simplement le script updatePerm sur la copie locale de la
 distribution :


 ______________________________________________________________________
 #!/bin/bash

 LIST=/tmp/er3hd3w25
 CDDIR=/jaz/redhat-${RHVERSION}

 # Recherche tous les r�pertoires et s'assure qu'ils ont le bit +x
 find $CDDIR -type d -exec chmod -c 755 {} \;

 # Recherche les ex�cutables et les scripts shell ou perl
 find $CDDIR -type f | file -f - | grep -v RPM \
    | egrep -i 'executable|perl|bourne|shell' | cut -f1 -d: > $LIST

 # Recherche les biblioth�ques dynamiques
 find $CDDIR -name \*.so >> $LIST

 # Rend tout ce petit monde ex�cutable
 while read file
 do
    if [ ! -x $file ] ; then
       chmod -c 755 $file
    fi
 done < $LIST

 /bin/rm $LIST

 exit 0
 ______________________________________________________________________




 55..22..  RReemmppllaacceerr lleess RRPPMM mmiiss �� jjoouurr


 Le script suivant, appel� updateCD, copie tous les fichiers depuis le
 r�pertoire de mise � jour vers l'arborescence des RPM.  Le script
 utilise quelques commandes magiques de rpm pour d�terminer quels
 paquets de la mise � jour sont plus r�cents que ceux de la
 distribution. Les anciens paquets correspondants sont d�plac�s vers le
 r�pertoire ${OLD}.


 ______________________________________________________________________
 #! /bin/bash
 # Ce script met � jour les RPM d'une distribution plac�e dans $RPMDIR.
 # Les anciens RPM sont d�plac�s vers $OLDDIR.
 # Les nouveaux RPM doivent se trouver dans $UPDDIR.
 # L'architecture est $ARCH.

 RHVERSION=5.1

 ARCH=i386
 CDDIR=/jaz/redhat-${RHVERSION}
 RPMDIR=${CDDIR}/${ARCH}/RedHat/RPMS
 UPDDIR=${CDDIR}/updates/${ARCH}
 OLDDIR=${CDDIR}/old

 if [ ! -d $OLDDIR ] ; then
    echo making directory $OLDDIR
    mkdir $OLDDIR
 fi

 allow_null_glob_expansion=1

 for rpm in ${UPDDIR}/*.rpm ; do
   NAME=`rpm --queryformat "%{NAME}" -qp $rpm`
   unset OLDNAME
   for oldrpm in ${RPMDIR}/${NAME}*.rpm ; do
     if [ `rpm --queryformat "%{NAME}" -qp $oldrpm` = "$NAME" ]; then
       OLDNAME=$oldrpm;
       break
     fi
   done
   if [ -z "$OLDNAME" ]; then
     echo $NAME is new
     cp -pv $rpm $RPMDIR
   else
     if [ `basename $rpm` != `basename $OLDNAME` ]; then
       mv $OLDNAME $OLDDIR
       cp -pv $rpm $RPMDIR
     fi
   fi
 done


 # Copie les images de d�marrage au bon endroit...
 for newfile in ${UPDDIR}/images/* ; do
   file=${CDDIR}$/${ARCH}/images/$(basename ${newfile})
   if [ $newfile -nt $file ] ; then
      cp -pv $newfile $file
   fi
 done

 exit 0
 ______________________________________________________________________







 55..33..  RReegg��nn��rreerr llee ffiicchhiieerr hhddlliisstt


 Lors d'une installation par CD-ROM, le programme d'installation qui se
 trouve sur le CD-ROM (misc/src/install/genhdlist) s'appuie sur le
 fichier RedHat/base/hdlist d�crivant les paquets disponibles sur le
 CD-ROM. Ce programme doit �tre lanc� avec pour unique argument le nom
 de la racine de la distribution. Voici le script updateHdlist :


 ______________________________________________________________________
 #!/bin/bash

 echo G�n�ration du fichier hdlist...

 RHVERSION=5.1   # Ajout du traducteur par rapport � la version anglaise

 CDDIR=/jaz/redhat-${RHVERSION}
 ARCH=i386
 GENHDDIR=${CDDIR}/${ARCH}/misc/src/install

 chmod u+x ${GENHDDIR}/genhdlist
 chmod 644 ${CDDIR}/${ARCH}/RedHat/base/hdlist
 ${GENHDDIR}/genhdlist ${CDDIR}/${ARCH}

 exit 0
 ______________________________________________________________________



 Remarque : 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 Red Hat. En fait, elle est plus � jour ! Par contre, si
 vous en refaites un miroir, les anciens paquets RPM qui ont �t� mis �
 jour vont �tre de nouveau t�l�charg�s et les mises � jour seront
 supprim�es.


 66..  EEnnffiinn :: ggrraavvaaggee dduu CCDD


 Puisque nous supposons que vous avez un graveur de CD en �tat de
 marche sur votre syst�me et que vous savez vous en servir, nous
 n'allons pas entrer dans les d�tails sur la fa�on de graver le CD. Si
 vous voulez claquer le CD depuis Linux, nous ne saurions trop
 recommander l'excellent programme xcdroast <http://www.fh-
 muenchen.de/rz/xcdroast>.  Sous xcdroast, validez les extensions Rock
 Ridge ainsi que la cr�ation du fichier TRANS.TBL.

 Assurez-vous alors simplement que _l_a _r_a_c_i_n_e de votre CD contient au
 moins les fichiers et r�pertoires suivants :



      COPYING      RPM-PGP-KEY README       RedHat/




 Les arborescences suivantes peuvent �galement se r�v�ler pratiques :



      doc/         gnome/      misc/        dosutils/    images/


 77..  IInnssttaallllaattiioonn ddeeppuuiiss llee CCDD--RROOMM


 Lorsque vous faites l'installation depuis le CD-ROM, vous devez tout
 d'abord cr�er une disquette bootable. IMPORTANT : employez une
 disquette neuve, fra�chement format�e DOS ! L'utilisation d'une
 vieille disquette, fatigu�e et au bout du rouleau, peut conduire �
 d'�tranges probl�mes durant l'installation.

 Sous Linux, vous pouvez cr�er une disquette � l'aide de la commande
 dd :



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




 Sous DOS ou Windows-9x, utilisez le programme RAWRITE.EXE qui se
 trouve sur le CD-ROM dans le r�pertoire dosutils.

 Arr�tez la machine sur laquelle vous voulez faire l'installation ou la
 mise � jour, ins�rez la disquette de d�marrage et votre CD-ROM encore
 tout chaud, et laissez le syst�me d�marrer sur la disquette.  Pour
 plus d'information sur la proc�dure d'installation, r�f�rez-vous aux
 documents et aux HOWTO Installation-HOWTO et Bootdisk-HOWTO qui se
 trouvent sur le CD-ROM dans le r�pertoire doc/HOWTO.


 88..  AAVVEERRTTIISSSSEEMMEENNTT


 LLee ccoonntteennuu ddee ccee ddooccuummeenntt eesstt ssuuppppooss�� ccoorrrreecctt.. CCeeppeennddaanntt,, sseess aauutteeuurrss
 eett llee ttrraadduucctteeuurr ssee dd��ggaaggeenntt ddee ttoouuttee rreessppoonnssaabbiilliitt�� qquuaanntt �� uunnee
 dd��ggrraaddaattiioonn qquueellccoonnqquuee mmaatt��rriieellllee eett//oouu llooggiicciieellllee oouu �� uunnee ppeerrttee ddee
 ddoonnnn��eess ssuuiittee �� ll''aapppplliiccaattiioonn ddeess pprroocc��dduurreess dd��ccrriitteess ddaannss llee
 ddooccuummeenntt..