Page suivante - Page précédente - Table des matières

4. Installation de la RedHat 4.2Dans l'univers de l'informatique, tout ce qui a plus de 3 mois estconsidéré comme obsolète et nécessite une mise à jour. Comme je n'aurai pas le temps de retoucher ce document à chaque mise à jour, je feraide mon mieux pour le faire à chaque nouvelle version majeure. Commepour les autres distributions, à moins que les auteurs désirent envoyerdes corrections, celà restera en l'état.

4.1 Ma configuration

Pour mon installation, j'ai utilisé :

  • noyau 2.0.30
  • Lecteur ZIP Iomega sur port parallèle
  • RedHat 4.2

4.2 Installation des paquetages

La première fois que j'ai tenté d'installer la Red Hat sur un disque ZIP, j'ai pensé qu'il aurait été plus simple de juste utiliser un disque de démarrage (boot disk) de la Red Hat. Je me suis alors réveillé. Je suis presque arrivé à créer un disque de démarrage, mais même avec l'aide par e-mail de plusieurs personnes de chez Red Hat, j'ai commencé à renoncer à tout ce projet lorsque j'ai découvert l'option --root du rpm.

Quels paquetages installer?

J'ai trouvé quels étaient les paquetages nécessaires en compulsant un fichier que j'ai trouvé sur un miroir RedHat. Ce fichier peut être trouvé sur n'importe quel miroir RedHat dans :

redhat/redhat4.2/i386/RedHat/base/comps

Pour cette installation, j'ai voulut inclure le support du réseau, mais, à cause de la La configuration du réseau sous X de la RedHat, j'ai du configurer à la main, ou plutot, tenter de configurer, les scripts qui se trouvent dans le /etc/sysconfig (cf section 4.3.3.). J'ai décidé de ne pas installer de paquetage de développement, car le lecteur ZIP, en tout cas avec un noyau non patché, est plutot lent pour compiler quoi que ce soit. J'ai aussi choisit de ne pas installer X, surtout pour des raisons d'espace disque disponible. Plus tard, j'essaierai de monter mon disque dur et de créer un lien symbolique avec /usr pour voir si j'arrive à faire fonctionner X.

Voici une liste des paquetages que j'ai installés, dans l'ordre de leur installation. Ceux marqués d'une * ont été mis à jour suit à des errata de RedHat. Entre parenthèse, j'ai indiqué le numéro du paquet de mise à jour.

Par exemple NetKit-B-0.09-6 a été mis à jour par NetKit-B-0.99-8, et
 apparait donc comme: *91) NetKit-B-0.99-6 (-8)

 (Liste créée par la commande rpm --root /iomega -qa)
 1) setup-1.7-2                   2) pamconfig-0.51-2
 3) filesystem-1.3-1              4) MAKEDEV-2.2-9
 5) adduser-1.7-1                 6) libc-5.3.12-18
 7) SysVinit-2.64-8               8) ash-0.2-8
 9) at-2.9b-2                    10) libtermcap-2.0.8-4
 11) bash-1.14.7-1                12) bc-1.03-6
 13) bdflush-1.5-5                14) cpio-2.4.2-4
 15) cracklib-dicts-2.5-1         16) tmpwatch-1.2-1
 17) crontabs-1.5-1              *18) db-1.85-10 (-11)
 19) dev-2.5.1-1                  20) diffutils-2.7-5
 21) etcskel-1.3-1                22) file-3.22-5
 23) fileutils-3.16-1             24) findutils-4.1-11
 25) grep-2.0-5                   26) groff-1.10-8
 *27) ld.so-1.7.14-4 (-5)          28) getty_ps-2.0.7h-4
 29) gzip-1.2.4-7                 30) mingetty-0.9.4-3
 *31) initscripts-2.92-1 (93-1)    32) ed-0.2-5
 33) info-3.9-1                   34) ncurses-1.9.9e-4
 35) libg++-2.7.1.4-5            *36) pwdb-0.54-3 (-4)
 37) rootfiles-1.5-1             *38) pam-0.57-2 (-4)
 39) redhat-release-4.2-1         40) less-321-3
 41) mount-2.5l-2                 42) zlib-1.0.4-1
 43) rpm-2.3.11-1                 44) e2fsprogs-1.10-0
 45) sysklogd-1.3-15              46) tar-1.11.8-11
 47) passwd-0.50-7                48) gawk-3.0.2-1
 49) gdbm-1.7.3-8                 50) gpm-1.10-8
 51) hdparm-3.1-2                 52) kbd-0.91-9
 53) slang-0.99.37-2              54) newt-0.8-1
 55) kbdconfig-1.4-1              56) ncompress-4.2.4-7
 *57) sh-utils-1.16-4 (-5)         58) procinfo-0.9-1
 *59) logrotate-2.3-3 (4-1)        60) lilo-0.19-1
 61) losetup-2.5l-2               62) linuxthreads-0.5-1
 *63) mkinitrd-1.6-1 (7-1)         64) mailcap-1.0-3
 *65) man-1.4h-5 (j-1)             66) mt-st-0.4-2
 67) modules-2.0.0-5              68) mailx-5.5.kw-6
 69) net-tools-1.32.alpha-2       70) procmail-3.10-10
 71) procps-1.01-11               72) psmisc-11-4
 73) quota-1.55-4                 74) readline-2.0-10
 75) sed-2.05-6                   76) setconsole-1.0-1
 77) sendmail-8.8.5-4             78) shadow-utils-960530-6
 79) stat-1.5-5                   80) tcsh-6.06-10
 81) termcap-9.12.6-5             82) textutils-1.22-1
 83) time-1.7-1                   84) timeconfig-1.8-1
 85) util-linux-2.5-38            86) vim-4.5-2
 87) vixie-cron-3.0.1-14          88) which-1.0-5
 89) zoneinfo-96i-4               90) tcp_wrappers-7.5-1
 *91) NetKit-B-0.09-6 (-8)        *92) lpr-0.18-1 (19-1)
 *93) bind-4.9.5p1-2 (9.6-1)      *94) bind-utils-4.9.5p1-2 (9.6-1)
 *95) wu-ftpd-2.4.2b12-6 (b15-1)   96) anonftp-2.3-3
 97) zip-2.1-1                    98) unzip-5.12-5
 99) statserial-1.1-7            100) minicom-1.75-2
 101) lrzsz-0.12.14-1             102) dip-3.3.7o-9
 103) ppp-2.2.0f-3                104) portmap-4.0-3
 105) perl-5.003-8               *106) traceroute-1.0.4.4bsd-2 (1.4a5-1)
 *107) elm-2.4.25-7 (-8)           108) lynx-2.6-2
 109) ncftp-2.3.0-5               110) pine-3.95-2
 111) rdate-0.960923-1            112) apache-1.1.3-3
 *113) nfs-server-2.2beta16-7     *114) nfs-server-clients-2.2beta16-7
 (2.2beta16-8)                    (2.2beta16-8)

Et avec tout ça, j'ai encore 32Mo de libre!

Mises à jour; errata

Comme beaucoup d'utilisateurs de la RedHat (j'espère) le savent, certains paquetages peuvent présenter des trous de sécurité ou quelque chose d'autre qui pose problème. Pour cette raison, RedHat diffuse des mises à jour pour certains paquetages. J'ai installé ceux que j'ai signalé comme mis à jour ci-dessus. Veuillez vous référer à la page web RedHat qui concerne les mises à jour sur: http://www.redhat.com/support/docs/rhl/rh42-errata-general.html


 NOTE: avant les mises à jour de paquetages, il faut
 lancer ldconfig comme décrit à la section 3.3.1.1.

Comment installer les paquetages en utilisant rpm; sans glint

Avec rpm, utiliser l'option --root pour spécifier le dossier monté comme la racine pour l'installation. J'ai découvert que plusieurs paquetages ne pouvaient pas être installés, en raison de scripts de préinstallation et/ou postinstallation qui ne s'exécutaient pas correctement à cause du répertoire racine différent. En conséquence, utiliser l'option --noscript :

==> rpm --root /iomega -i --noscripts PAQUETAGE.i386.rpm

Comme, j'en suis sur, beaucoup vont le voir, vous devriez avoir une erreur du style :


 failed to open /iomega/var/lib/rpm/packages.rpm
 error: cannot open /iomega/var/lib/rpm/packages.rpm

Bon, ben, il suffit de créer le répertoire /var/lib/rpm

==> mkdir /iomega/var; mkdir /iomega/var/lib; mkdir /iomega/var/lib/rpm

Lequel est arrivé en premier, pamconfig ou pam?

Si quelqu'un a déjà essayé d'installer pamconfig, celui-ci se plaint de dépendre de pam; alors, si l'on essaie d'installer pam, celui-ci se plaint d'avoir besoin de pamconfig! Ceci étant une nouvelle version de l'histoire de la poule et de l'oeuf, m'a laissé perplexe quelques temps, mais grâce à l'option --nodeps, on peut forcer l'installation de pamconfig; en outre, pam a plus de dépendances en échec que pamconfig.

==> rpm --root /iomega -i --nodeps --noscripts pamconfig-0.51-2

4.3 Problèmes après l'installation des paquetages

Une fois que le dernier paquetage a été parfaitement installé, malheureusement, le disque n'est pas entièrement fonctionnel, pour ainsi dire. Ce que je veux dire, c'est que, si vous essayez de démarrer maintenant avec la disquette, vous n'irez pas très loin. Dès qu'init essaie de démarrer, vous aurez deux adorables petites erreurs; chacune se plaignant de quelques fichiers qui auraient été là si les scripts avaient été lancés.

L'absence de ld.so.cache et libc.so.5

Si vous essayez de démarrer, vous avez donc deux messages d'erreurs. Le premier concerne l'absence du fichier /etc/ld/so.cache. Le second râle à propos de libc.so.5.

/etc/ld.so.cache

Comme me l'ont signalé pas mal de lecteurs, mes précédentes instructions ne fonctionnaient pas comme prévu. Pour créer ce fichier, il faut lancer ldconfig lorsque le ZIP est encore monté.

==> chroot /iomega /sbin/ldconfig

Merci à Javier Rodriguez pour cette solution.

libc.so.5

Pour résoudre le cas de l'absence de cette librairie, il faut créer un lien symbolique qui aurait du être créé par les scripts d'installation.

==> cd /iomega/lib; ln -s libc.so.5.3.12 libc.so.5

Merci à Darcy Boese pour cette solution.

Configurer le mot de passe de root

De même qu'il a fallut lancer ldconfig en 4.3.1.1, il faudrait changer, créer le mot de passe de root pour ce nouveau système :

==> chroot /iomega passwd root

Ce que le programme d'installation a créé


 NOTE: Ceci est just une configuration rapide, que je n'ai pas
 été capable de tester pour voir si elle marche. En théorie, elle
 devrait, mais ne venez pas pleurer si
 elle ne fonctionne pas.

En parcourant mon CD Red Hat 4.2, je suis tombé sur quelque-chose de plutôt intéressant; le code source du programme d'installation. Je l'ai trouvé dans /misc/src/install et une chose que j'ai trouvé utile a été le fichier net.c. Là-dedans, j'ai trouvé quels autres fichiers devaient être créés au lancement du programme d'installation. La plupart participent au support du réseau (d'où le nom net.c) mais, même si vous n'avez pas de carte réseau, vous pouvez avoir à utiliser le localhost en réseau (en plus, apache va râler s'il ne peut pas déterminer de hostname). Ces fichiers comprennent :

 /etc/hosts
 /etc/HOSTNAME
 /etc/resolv.conf
 /etc/sysconfig/network
 /etc/sysconfig/network-scripts/ifcfg-eth0
 (ou tout autre périphérique réseau que vous auriez.)

Configuration du réseau

Pour rédiger ce document, il m'a fallut le support réseau pour ma carte fast-ethernet 3Com 3c595 (qui avait été utilisée ces derniers mois sur une autre machine).

D'abord, il me fallait un nom, et comme j'entretiens mon propre serveur de noms (ce qui est une autre et longue histoire), j'ai moi-même donné le nom : dash-dot.wig.org (J'aime bien comme ça sonne). Avoir un nom sans adresse IP est un peu vain, donc j'ai utilisé un numéro réseau réservé hors internet 192.168.10.0, que mon serveur de nom utilise aussi. Même si le nom de machine est logiquement indiqué dans /etc/HOSTNAME, Red Hat cherche ce nom dans /etc/sysconfig/network; alors allons-y : Extrait de mon /etc/sysconfig/network  :


 NETWORKING=yes
 HOSTNAME=dash-dot
 DOMAINNAME=wig.org
 GATEWAY=
 GATEWAYDEV=eth0
 NS1=192.168.10.7

Ensuite, simplement, il faut recopier la même information, ici dans /etc/HOSTNAME, /etc/resolv.conf, et /etc/hosts:

/etc/HOSTNAME:


dash-dot.wig.org

/etc/resolv.conf:


search wig.org
nameserver ns.wig.org

/etc/hosts:


127.0.0.1 localhost
192.168.10.99 dash-dot.wig.org dash-dot
192.168.10.7  ns.wig.org ns

Red Hat configure tous les periphériques réseau à partir des scripts trouvés dans /etc/sysconfig/network-scripts. La configuration de chaque périphérique est habituellement créée une première fois par le programme d'installation, j'ai donc du créer ces fichiers de config à la main. Ils commencent tous par ifcfg-XXX où XXX est l'interface réseau qu'ifconfig va activer; par exemple ppp0, eth0, etc. Dans cet exemple, j'ai du créer un fichier ifcfg-eth0 qui contient ceci :;

 DEVICE=eth0
 ONBOOT=yes
 BOOTPROTO=none
 BROADCAST=192.168.10.255
 NETWORK=192.168.10.0
 NETMASK=255.255.255.0
 IPADDR=192.168.10.99

Et pour finir, afin que tout aille bien après ça, tant que l'on est dans /etc/sysconfig/network-scripts, lancer juste :

==> ./ifup ifcfg-eth0 boot

Ceci va lancer le script qui configure l'interface réseau, si cette interface est configurée pour être lancée au démarrage.

Pour plus d'informations, prière de se reporter au NET-3-HOWTO.


Page suivante - Page précédente - Table des matières