Il existe un document (en anglais) dressant liste des matériels pris en charge.
Installation proprement dite : placer, pour commencer, le CD-ROM dans le lecteur.
Formater une disquette MS-DOS 3,5 pouces/1,44 Mo. Elle doit être sans défauts (« secteurs défectueux »)) et s'avèrera utile en fin d'installation, pour créer une disquette de démarrage.
À partir de MS-DOS on peut démarrer l'installation proprement dite en
invoquant l'exécutable autoboot qui se trouve dans le répertoire
dosutils.
Il faudra en ce cas créer une paire de disquettes afin de pouvoir démarrer les système et lancer l'installation. Pour cela :
RHSTART et DOSUTILS du CD-ROM.RAWRITE
puis introduire supp.img et A: (attention : l'une des
disquettes formatées en 1/ doit à ce moment s'y trouver). Attendre la fin
du processus de copie sur la disquetteboot.img (et non plus supp.img)boot)Utiliser dd if=NOM_DU_FICHIER of=/dev/fd0 bs=1440k pour créer une
paire de disquettes à partir des fichiers boot.img et
supp.img du répertoire RHstart.
Employer le cas échéant fdformat afin de préparer les disquettes
totalement vierges.
Laisser la disquette boot dans le lecteur puis relancer le
système.
Allumez tous les périphériques connectés à l'unité centrale (surtout SCSI).
Lors du démarrage (boot) le message « boot: » apparaît sur
l'écran. Il est alors possible d'introduire des paramètres grâce auxquels
Linux pourra prendre en charge un périphérique inhabituel. Lire à ce propos
le « BootPrompt HOWTO » (voir section « Documents en français »). Les
options les plus fréquemment employées relèvent de la géométrie du disque,
d'un CD-ROM exotique ou d'une interface (carte) Ethernet (en particulier de
type NE2000). La plupart des nouveaux utilisateurs n'ont pas besoin d'un
quelconque paramètre.
Linux doit disposer d'au moins une partition sur l'un de vos disques. Mieux vaut lui en offrir deux (une pour le système, l'autre dévolue à la mémoire virtuelle, dite « swap »). Sur une machine personnelle on réservera une quantité de swap à peu près équivalente à la mémoire vive mais jamais inférieure à 16 Mo.
On pourra employer l'utilitaire FIPS (se trouve dans le répertoire
dosutils) afin de pouvoir repartitionner le disque dur de façon
non destructive. Lire au préalable sa documentation.
Le partitionnement est une opération DANGEREUSE, mettant les données en péril. Ne pas négliger de SAUVEGARDER au préalable les données importantes.
Certains produits commerciaux rendent le repartitionnement moins dangereux et plus facile.
Dans le pire des cas il faudra sauvegarder les partitions existantes, afin de pouvoir les détruire, repartitionner le disque de façon adéquate puis restaurer.
Replacer, dans le « SETUP » de la machine, les paramètres par défaut, ou même les plus « sages ». Noter au préalable les paramètres utilisés jusqu'alors. Interdire au BIOS de gérer les fonctions spéciales et évoluées : économie d'énergie (APM, DPMS ...)
Retirer temporairement toutes les cartes d'extension non nécessaires (par exemple réseau, son, interface SCSI de disques non concernés par l'installation ...).
Linux offre des « consoles virtuelles » grâce auxquelles un simple tandem clavier-écran (celui de votre micro !) peut profiter de plusieurs « sessions » (contextes de travail) bien distinctes. Chaque console virtuelle peut abriter une session et la combinaison de touches Alt-Fx (où 'x' est numérique) permet de gagner une session donnée.
Durant tout le processus d'installation les consoles virtuelles (« CV ») offrent divers services :
La combinaison de touches Alt-F2, par exemple, « connectera » l'écran et le clavier de votre poste à la console virtuelle numéro 2, restaurant donc la session correspondante qui, durant l'installation, est réservée à une ligne de commande..
Il est à tout moment possible de changer de CV, ne pas hésiter à le faire.
Si Linux ne parvient pas à reconnaître le CD-ROM relancer le système en laissant un CD inséré avant de réessayer. Vérifier (si IDE/ATAPI) la configuration maître/esclave du CD-ROM : en cas de doute le laisser en mode esclave sur la première chaîne EIDE et s'assurer qu'aucun autre périphérique (disque, lecteur de bandes) ne s'y trouve déjà.
Sur certains disques copiés (non industriellement, par exemple grâce à un «
graveur ») le programme d'installation monte bien le CD mais ne parvient
pas à y trouver de distribution Red Hat car ne la cherche que dans un
répertoire RedHat directement placé sous racine, tandis que
certaines copies le stockent dans un sous-répertoire. Il faut en ce cas
utiliser la combinaison Alt F2 afin de monter le CD, revenir sous
le programme d'installation pour choisir « Installation à partir d'un
système de fichiers monté » puis saisir le chemin complet (par exemple
/mnt/cdrom/blabla/bleble/RedHat). (merci à P. Saratxaga).
Si le problème persiste il ne sera pas possible d'installer à partir du
CD-ROM, nous devons donc bricoler de sorte que le programme d'installation
puisse lire sur le disque MS-DOS les fichiers d'installation de
Linux. Copier pour cela le contenu du répertoire RedHat du CD sur
une partition MS-DOS, dans un répertoire nommé REDHAT, grâce à la commande
« xcopy ». Puis relancer l'installation et indiquer au programme d'opter
pour une installation en mode « Hard Drive » et non « CD-ROM ». Note :
cela ne fonctionnera pas si la partition MS-DOS est de type FAT32.
Circuler parmi les options offertes par le programme d'installation Red Hat
grâce aux touches fléchées et TABulation. Valider en gagnant l'option
OK avant d'appuyer sur la barre d'espacement (ou bien utiliser la
touche F12). Sélectionner un élément dans une liste à un seul choix en
plaçant le curseur sur lui avant d'appuyer sur Entrée. La barre
d'espacement permet de cocher un élément de liste de sélection.
La première question posée par le programme d'installation est « Are you using a color monitor? ». Ne répondre « No » que si le moniteur (écran) est monochrome.
Sélection du type de clavier à gérer.
fr-latin1cfbech
Ne répondre « Yes » que si la machine utilisera un périphérique PCMCIA lors de l'installation. Refuser en cas de doute.
Sélectionner un mode d'installation :
Choisir :
Si vous souhaitez mettre à jour le contenu d'une partition stockant déjà une distribution Red hat installée choisir « Upgrading ». Opter pour « Installing » dans tous les autres cas.
Choisir « Yes » si la machine dispose d'une interface (carte) SCSI.
Le programme d'installation présente la liste des disques durs qu'il a pu
découvrir. L'installation ne pourra se poursuivre que si une partition est
dévolue à Red Hat. Pour créer une nouvelle partition sélectionner le disque
dur concerné et appuyer sur Entrée afin d'invoquer le programme
fdisk.
Linux (et donc fdisk) manipule les noms des disques sous la forme
/dev/PÉRIPHÉRIQUE où PÉRIPHÉRIQUE (les majuscules n'ont ici pas
d'autre propos que d'isoler un composant de nom) remplace hd dans
le cas des disques IDE et sd pour les disques SCSI suivi de
l'identificateur de disque : a pour le premier,
b pour le suivant ... (et ainsi de suite).
Exemples : le premier disque SCSI se nomme donc /dev/sda tandis
que le deuxième disque EIDE est /dev/hdb.
Le nom du répertoire "dev" signifie "devices" ("périphérique"). Les "fichiers spéciaux" qu'il abrite permettent en fait de communiquer avec les pilotes de périphériques.
Linux (et donc fdisk) manipule les noms des partitions sous la
forme /dev/PériphériquePARTITION où PARTITION (les majuscules
n'ont ici pas d'autre propos que d'isoler un composant de nom) remplace
1 dans le cas de la première partition, 2 pour la
suivante ... (et ainsi de suite jusqu'à quatre).
Les partitions logiques (créées grâce aux partitions étendues) sont
numérotées à partir de 5. Sous fdisk leurs noms apparaissent entre
crochets ('<').
Exemples : la première partition du deuxième disque EIDE se nomme donc
/dev/hdb1, la troisième partition du quatrième disque SCSI est
/dev/sdd3.
Si Linux ne parvient pas à reconnaître correctement un disque dur il ne
pourra pas y accéder. Le démarrage s'avèrera impossible ou bien le logiciel
fdisk employé par la procédure chargé du partitionnement ne
fonctionnera pas correctement. Il faut en ce cas, juste avant le démarrage
de l'installation, lui fournir les informations nécessaires.
Introduire pour cela, en réponse au message d'accueil "boot: " de la disquette de démarrage, le nom du "fichier spécial" correspondant au disque suivi d'un signe égal puis de sa géométrie.
Le nom du fichier spécial
Géométrie : exprimée sous forme de trio de nombres séparés par des virgules. Le premier corresdond aux nombre de cylindres, le deuxième de têtes et le troisième de secteurs.
Exemple :
hda=7992,32,63
Voici les commandes de fdisk utiles à ce stade :
fdisk, les modifications
effectuées ne sont pas automatiquement écrites par cette commandeNotes importantes :
fdisk ne modifiera réellement la table des partitions que
lorsque la commande w sera requise. Utiliser q pour
quitter sans sauvegarder.n du fdisk Linux crée par défaut des
partitions de type Linux native, destinées à accueillir des
systèmes de fichiers. Pour créer une partition de type swap il faut donc
la créer puis employer la commande t afin de changer le type de la
nouvelle partition (de 83 à 82, donc). Utiliser la commande L pour
obtenir la liste des types de partitions.a. Si MS-Windows est installé le laisser sa
partition 'active'.Tout système Linux doit disposer d'une partition root, dont le nom de point
de montage (« mount point ») est une simple barre oblique. Il vous faut
donc faire correspondre, sur l'écran « Partition disk », le nom de la
partition réservée à cet effet au « Mount point » /.
Sélectionner les noms des partitions à formater en appuyant sur la barre d'espacement. Attention : la manoeuvre est dangereuse, ne pas requérir ainsi le formatage des partitions abritant des données.
L'option « Check for bad blocks during format » permet de vérifier le support magnétique durant le formatage. Cela ralentit l'opération mais nous vous conseillons de la cocher car si cela révèle un problème il sera inutile d'aller plus loin. Les tous derniers cylindres (numéros les plus élevés) de certains disques EIDE ne sont pas utilisables (le formatage « patine », réduire la taille de la dernière partition en cas de problème.
Sélectionner les éléments (des fichiers d'extension ".rpm", aussi appelés « paquets ») à installer grâce à la barre d'espacement.
Ne pas cocher « Selecting Individual Packages » si vous ne connaissez pas bien Linux.
Notes :
Opter pour le type de souris adéquat. Toutes les souris connectées à un port auxiliaire de type « PS/2 » doivent être déclarées comme reliées à un « PS/2 mouse port ». Cas des souris munies de deux boutons : cocher « Emulate 3 Buttons ».
Se munir de la documentation technique du moniteur de la carte graphique avant de commencer la configuration, afin de répondre correctement aux questions posées. En lire les feuillets consacrés aux « caractéristiques techniques » ou "specifications".
Moniteur : les fréquence horizontales min et max doivent s'y trouver (exprimées en kHz), ainsi que les fréquences verticales min et max (en Hz). Ou bien, s'il s'agit d'un vieux moniteur, la liste des fréquences fixes tolérées.
Carte vidéo : la fréquence max du RAMDAC (parfois appelé « DAC »), exprimée en MHz.
Si la procédure de configuration de X Window échoue durant l'installation
de Linux ne pas avorter cette dernière, continuer tranquillement car Linux
fonctionne fort bien sans X Window, il sera donc toujours temps de
configurer ce dernier. Utiliser pour cela, sous Linux et en tant que root,
le programme "Xconfigurator" livré dans le paquet rpm du même
nom. En cas de problème essayer XF86Setup (paquet
XFree86-XF86SetupQUELQUECHOSE.rpm).
Ne modifier directement (grâce à un éditeur) le fichier de configuration,
appelé XF86Config, qu'en dernier recours ou afin de peaufiner les
réglages. Éviter de modifier les réglages du moniteur, surtout sur une
machine où plusieurs systèmes d'exploitation résident.
En cas de problèmes persistants lire les HOWTO adéquats (XFree86,
Video-Timings).
Un
script CGI de C. Nahaboo facilite le calcul des Modelines.
Dès que X Window fonctionne de façon satisfaisante invoquer (sous X !)
xvidtune afin de peaufiner sa configuration.
Ne pas perdre de temps avec cela lors de l'installation. Mieux vaut
utiliser, après installation, le programme printtool.
France métropolitaine : timezone MET DST
Introduire un mot de passe associé au compte root. Il doit compter plus de six caractères et être assez compliqué. Ne l'oubliez pas mais ne le notez pas ! Attention : majuscules et minuscules ne sont pas équivalentes.
Sélectionner « First sector of a floppy diskette ». Insérer une disquette vierge (formatée) et valider. Cette disquette vous permettra de démarrer Linux.
Pour en réaliser une copie sous Linux vous pourrez, plus tard :
dd if=/dev/fd0 of=/tmp/bootdiskfdformat /dev/fd0dd if=/tmp/bootdisk of=/dev/fd0Lorsque vous serez plus aguerri il sera temps d'installer LILO sur le secteur de boot (dit « MBR » : Master Boot Record) de votre disque dur. Lire à ce propos le mini-HOWTO LILO.
Toujours conserver le (ou les) CD de la distribution près de la machine, afin de pouvoir, si nécessaire (ré)installer un programme.
Linux démarrera seul, mais il nous faut tout d'abord apprendre à l'arrêter
correctement. Ne JAMAIS éteindre brutalement une machine sous
Linux mais utiliser la commande shutdown, généralement placée
dans /sbin, par exemple ainsi :
/sbin/shutdown -rf now
La plupart des distributions paramètrent par défaut le système de sorte que
la combinaison de touches Control Alt Suppr stoppe de façon
adéquate Linux et relance le PC.
Le fichier texte /tmp/upgrade.log contiendra une trace complète de
l'activité du logiciel d'installation.
Sauvegarder la table des partitions afin de pouvoir la restaurer en cas
d'incident (« incident » : parce qu'elle est sauvegardée, « accident »
sinon). Pour effectuer cette sauvegarde sans risque utiliser autant de
fois que nécessaire fdisk ainsi :
fdisk FICHIER-SPÉCIAL
en remplaçant à chaque fois FICHIER-SPÉCIAL par le nom du fichier
spécial correspondant à l'un des disques en ligne (par exemple
/dev/hda, /dev/hdb ...) puis en consignant « à la main »
les valeurs obtenues grâce à la commanque 'p'.
Consulter ensuite le document d' errata.
Pour installer de nouveaux paquets il faudra probablement pouvoir accéder
au CD ROM. Pour cela le placer dans le lecteur puis introduire mount
/mnt/cdrom. Le réperoire /mnt/cdrom permettra de profiter de
son contenu. Invoquer umount /mnt/cdrom avant d'essayer de
changer de CD.
En tant que root (sous X, avec une variable d'environnement « DISPLAY »
adéquate : commande export DISPLAY=:0.0) :
netcfg
Toujours placer le nom d'hôte « FQDN » (complet, avec nom de domaine) et le
nom de domaine complet.
Par exemple :
Hostname: toto.mondomaine.fr
Domain: mondomaine.fr
control-panel (éviter d'utiliser Kernel daemon
configuration et Runlevel editor si vous n'en saisissez pas
toutes les implications)
/usr/sbin/mouseconfig
/usr/sbin/timeconfig
Le control-panel offre un accès simplifié à ces divers éléments.
Pour l'employer :
Pour lancer le control-panel :
su -)setenv DISPLAY :0.0)/usr/bin/control-panel
Quelques conseils de Nat :-)
Certains logiciels Unix (non adaptés à Linux) furent développés en fonction
d'une installation de X Window effectuée sous /usr/X11 et non,
comme c'est à présent le cas sous Linux, sous /usr/X11R6. Nous
pouvons tirer un lien symbolique grâce auquel ces deux noms correspondront
au même répertoire physique :
cd /usr
ln -s X11R6 X11
lockCertaines versions de Linux n'attribuent pas aux répertoires abritant les fichiers de verrouillage des droits adéquats :
chmod a+w /var/lock
chmod +t /var/lock
joeL'éditeur joe n'affiche par défaut pas les caractères
accentués. Modifier, pour l'y contraindre, le fichier
/usr/lib/joe/joerc de sorte que la ligne commençant par « -asis »
soit calée à gauche (il suffit de détruire l'espace placé au début).
Mon conseil : adopter Emacs le plus vite possible !
Afin de pouvoir utiliser des caractères accentués sur la ligne de commande
créer un fichier .inputrc dans votre répertoire home :
set meta-flag on
set convert-meta off
set output-meta on
set input-meta on
Le recopier dans tous les répertoires home, ainsi que dans
/etc/skel (afin qu'il soit recopié lors de chaque déclaration de
nouvel utilisateur dans le nouveau home créé).
Voici quelques déclarations de variables d'environnement à placer dans
/etc/profile :
# locales
LANG=fr
LANGUAGE=fr
LC_CTYPE=C
# explications dans la page de manuel de 'less'
LESS="-C -M -i -x2"
LESSCHARSET=latin1
# explications dans la page de manuel de 'metamail'
MM_CHARSET=iso-8859-1
# nom du fichier spécial associé au port série desservant le modem
RZSZLINE=/dev/ttyS0
# nom du fichier spécial du streamer (utilisé, par exemple, par tar)
TAPE=/dev/nst0
# man bash
HISTCONTROL=ignoredups
# nom de la queue d'impression par défaut
PRINTER=lj1
PRINTDEST=lj1
# nom du 'présentateur' de fichiers texte
PAGER=less
Modifier les valeurs proposées en fonction de vos préférences et besoins et en s'inspirant de ce qui s'y trouve déjà.
Voici quelques déclarations d'aliases à placer à la fois dans
/etc/profile et dans /etc/bashrc:
# sécurité : ne démarrer X Window _que_ grâce à la commande 'x'
alias x='{ startx >/dev/null & } ; clear ; logout'
#sous Bash version 1 : alias x='(startx >/dev/null &);clear;logout'
# ls -N : caractères accentués visibles
alias ll='ls -NlF --color=tty'
alias ls='ls -NF --color=tty'
Dans le cas le plus commun Linux démarre, l'utilisateur se loge puis
invoque startx et sa session en mode console demeure disponible (y
compris pour un pirate) via une combinaison Control-Alt-touche de
fonction (le plus souvent Control-Alt-F1). L'alias
x ici proposé lance X Window puis « déloge » l'utilisateur afin de
ne pas laisser la session en mode console disponible.
La déclaration des fonctions peut prendre place dans divers fichiers, en
fonction de l'interpréteur de commandes ("shell") employé. bash,
par exemple, interprète lors de son démarrage le contenu du fichier
~/.bashrc. Ce dernier, sous Red Hat, oblige bash à prendre en
compte ce que le fichier /etc/bashrc abrite.
Monter le CD abritant la distribution Red Hat (mount /mnt/cdrom
devrait suffire) puis accéder au répertoire
updates/ARCHITECTURE. Remplacer ARCHITECTURE par
i386 si vous employez une machine à processeur compatible
Intel. Ce répertoire n'existe que sur les disques pressés après la
date de mise à disposition officielle de la distribution (par exemple
LINDIS 2) et abrite un certain nombre de paquets mis à jour. Si le
répertoire n'existe pas examiner le contenu de l'arborescence réservée à
Red Hat (souvent /pub/linux/distributions/redhat/updates) du
serveur FTP public le plus proche afin d'y repérer le répertoire « update »
correspondant à la version utilisée.
Installer, grâce à l'option -U de rpm, tous les rpm de
cette zone « update » qui mettent à jour des paquetages que vous employez.
La section intitulée « rpm » du présent document propose un court mode
d'emploi de cet outil.
Ceux pour lesquels le mot-clé « cron » n'a pas de sens peuvent négliger cette sous-section.
La Red Hat installe par défaut un fichier /etc/crontab, pris en
compte par cron, au format un peu particulier car le nom de
l'utilisateur s'y trouve intercalé entre la date et la commande. Examiner
cette table et comprendre son rôle (en particulier ceux de
run-parts et des arborescences /etc/cron.*) avant de
mettre au point une politique de gestion des travaux périodiques.
Ceux pour lesquels le terme « fichier de trace » (logfile) n'a pas de sens peuvent négliger cette sous-section.
Invoquer man logrotate et configurer cet utilitaire.
Certaines installations Linux engendrent des fichiers spéciaux associés aux
lecteurs de disquettes (/dev/fd*) dont les attributs permettent à
tous d'y lire (voire d'écrire) directement. Nous pouvons limiter l'accès
aux lecteurs à un ensemble d'utilisateurs donné. Créer le groupe « floppy »
grâce à la commande groupadd, puis modifier /etc/group
afin que seuls les utilisateurs locaux sérieux appartiennent à ce groupe.
Limiter ensuite l'accès aux fichiers spéciaux :
chgrp floppy /dev/fd*
chmod g=rw,o= /dev/fd*
Sur un poste non totalement isolé, ne serait-ce que grâce à une connexion
PPP, modifier /etc/host.conf afin d'améliorer la sécurité :
order hosts,bind
multi on
nospoof on
alert on
Créer les fichiers spéciaux liés à la gestion de la carte son (sauvegarder
à part puis exécuter le script proposé à la fin de
/usr/src/linux/drivers/sound/Readme.linux).
Risque : espionnage, via le réseau, par simple lecture d'un fichier spécial lié au microphone, ou bien gags (émissions intempestives de sons divers).
Solution : créer un utilisateur et un groupe « sound » puis leur attribuer tous les fichiers spéciaux liés au son.
Modifier /etc/group afin que seuls les utilisateurs locaux sérieux
appartiennent à ce groupe.
Modifier les attributs des fichiers spéciaux de sorte que seuls les membres du groupe « sound » puissent y accéder :
cd /dev
chgrp sound audio* dsp* dsp* midi* mixer* music* sequencer*
chmod o= audio* dsp* dsp* midi* mixer* music* sequencer*
Lire le « Linux Shadow Password HOWTO » pour comprendre l'intérêt des mots de passe ombrés.
Sous Red Hat : installer shadow-utils-970601-1.
Sitôt les mots de passe ombrés installés créer un groupe « shadow » puis :
chown root.root /etc/passwd
chmod o=rw,g=r,o=r /etc/passwd
chmod u=rw,g=r,o= /etc/shadow
chown root.shadow /etc/shadow
Ne pas invoquer /usr/sbin.pwconv5 directement mais au travers d'un
script rétablissant les attributs de fichiers comme ci-dessus.
Vérification : utiliser /usr/sbin/pwck.
Ajouter ou modifier une ligne dans
/usr/X11R6/lib/X11/config/linux.cf de sorte qu'elle devienne :
#define HasShadowPasswd YES
S'assurer que xlockmore fonctionne bien.
Le cas échéant :
chgrp shadow /usr/X11/bin/xlock
chmod u=rxw,g=xs,o=x /usr/X11/bin/xlock
S'assurer aussi, le cas échéant, de ftpd, xdm et
fetchmail.
Rappel : Ne JAMAIS éteindre brutalement une machine sous Linux
mais utiliser la commande shutdown, généralement placée dans
/sbin, par exemple ainsi :
/sbin/shutdown -rf now
La plupart des distributions paramètrent par défaut le système (dans
/etc/inittab) de sorte que la combinaison de touches Control
Alt Suppr stoppe de façon adéquate Linux et relance le PC.
Ne jamais travailler en tant que root mais créer autant de comptes que
nécessaire grâce à /usr/bin/usercfg.
Ce programme permet de gérer les logiciels installés. Il faut toujours employer en tant que root.
Les logiciels sont livrés sous forme de « paquets », fichiers aux noms rappelant celui du logiciel contenu ainsi décomposable : NOM_LOGICIEL-VERSION_LOGICIEL-NUMÉRO_DE_PAQUET.rpm
Exemple : le fichier logi-2.7-3.rpm est la troisième version d'un
paquet rpm abritant le logiciel nommé logi version 2.7.
« troisième version » signifie ici, le plus souvent, que les deux
précédentes ne fonctionnaient pas parfaitement.
rpm -qip
nom_du_fichier.rpm
Pour l'examiner en détail ajouter l'option l.rpm -i nom_du_fichier.rpm
(rpm -U pour mettre à jour ("upgrade"))rpm -qarpm -qf nom_du_fichierrpm -V
nom_du_paquet (tous les paquets : rpm -Va)rpm -e nom_du_paquetL'interface graphique du programme rpm se nomme glint
(option « Package Management » du control-panel).
Pour employer le logiciel installé : explorer le contenu du rpm par rpm
-qpl nom_fichier.rpm, lire son man (fichiers contenus dans le
paquet rpm aux noms terminés par .1, .2, .3 ... il suffit d'introduire
man nom_de_fichier_sans_extension) et aussi explorer le contenu du
répertoire /usr/doc/nom_du_logiciel*.
Sur une machine de production :
rpm (liste
incomplète : nodeps, force, noscripts ...)
/tmp /lib /usr/lib
/bin /usr/bin /sbin /etc ...)
rpm
contrib, par exemple, ne sont pas toutes parfaites.
Ne pas hésiter à installer une « contrib » applicative en prenant soin, le
cas échéant, de sauvegarder vos fichiers de configuration de l'ancienne
version. Mais ÉVITER les paquets de mise à jour d'éléments du
système (par exemple libc, ld, pam,
NetKit, SysVinit, les "utils" ...) non édités par Red
Hat. Ils dépendent parfois de divers éléments (en particulier un contexte
d'exploitation, par exemple des bibliothèques partagées) sans que cela soit
défini (donc sans que « rpm » puisse le gérer) et peuvent déstabiliser le
système.
Les mécanismes de rpm ne pourront prendre en charge l'évolution et la bonne "coopération" des logiciels non mis en place par lui.
Cela n'entraîne que rarement un problème majeur dans le cas d'une
application, surtout installée sous /usr/local/. Mais c'est
beaucoup plus fâcheux dans le cas d'une bibliothèque, surtout de la libc,
car une installation hors rpm implique que ce dernier croit disposer d'une
version donnée alors qu'une autre est installée.
Après quelques installations hors rpm l'administrateur du système risque de :
Note : avant déploiement du paquet rpm correspondant à une application déjà installée "à la main" ne pas oublier de détruire tous les fichiers de cette dernière.
Mieux vaut donc éviter d'installer un paquet non rpm. Si l'on souhaite profiter d'un logiciel il faut d'abord cherche un paquet rpm existant, par exemple dans ftp://ftp.lip6.fr/pub/linux/distributions/redhat-contrib Utiliser aussi FTPSearch, en particulier la recherche par expression rationnelle ("regexp") afin de pouvoir soumettre (par exemple) « nom_du_logiciel.*\.i386\.rpm ».
Certains paquets rpm contiennent des descriptions d'installation incomplètes car dépendantes d'un contexte précis. C'est surtout le cas des « contributions ».
Le problème le plus fréquent concerne les attributs (« permissions ») des
fichiers déployés si l'auteur du paquet rpm n'a pas pris la peine de forcer
le programme d'installation à les mettre en place correctement. Lors de la
création des fichiers le système utilise la valeur d'umask afin de
mettre en place leurs attributs mais celui de root, sur un système
administré par un parano :-), sera probablement u=rwx,g=rx,o=
Si l'umask de root est trop restrictif les utilisateurs ne
pourront pas accéder à certains fichiers installés par ces rpm réalisés de
façon peu soigneuse (ou lors d'un make install, la commande
traditionnellement utilisée pour installer un programme compilé sur la
machine même). Il faut alors, en tant que root, sauvegarder les fichiers de
configuration de ce paquet modifiés puis le désinstaller, saisir
umask 022 et réinstaller. Éviter de réinstaller sans désinstaller
au préalable, grâce à l'option force.
Pour procéder à la mise à jour d'un système Red Hat existant
choisir l'option upgrade au début de la procédure d'installation.
Examiner, lors du redémarrage après mise à jour, tous les fichiers nommés
rpmorig ou rpmsave car, lors de l'installation d'une
nouvelle version d'un logiciel, rpm ne supprime pas les fichiers
de configuration modifiés par vous mais les renomme, de façon à faciliter
la restauration de vos paramètres tout en permettant de disposer des plus
récentes options du logiciel (ce qui serait impossible en conservant un
vieux fichier de configuration).
Pour les rechercher : find / -name rpmorig -or -name rpmsave.
On peut aussi mettre à jour grâce à aux outils rhupgrade et
freshrpm.
L'administrateur avisé, répétons-le, n'installe PAS les paquets de « contributions » mais uniquement ceux que la société Red Hat diffuse. L'immense majorité des problèmes constatés après une mise à jour relèvent de l'installation d'une « contrib ».
En cas de problème très grave, par exemple un blocage durant le processus de démarrage, ne réinstaller que la « base » Red Hat remettra en place les versions correctes des programmes nécessaires tout en ménageant les applications et données installées, y compris la base des rpm.
J'ai réalisé l'expérience avec un CD Red Hat 4.2 (LINDIS 2.0) et tout fonctionna parfaitement. Il faut disposer d'au moins une machine utilisable.
Pour cela :
system/recovery) afin de créer une disquette de lancement
/etc/dev, par exemple grâce à
ls -l /dev > fichier-a-conserver-dev.txt
Si l'on souhaite pouvoir compiler et mettre en ligne un nouveau
« noyau » (version du 'kernel') via make zlilo (lire à
ce propos le
Kernel HOWTO) il faut décommenter la ligne :
#INSTALL_PATH=/boot
Makefile des sources du noyau, placés sous
/usr/src/linux(numéro de version) par le paquet kernel-(numéro
de version).rpm).
Pour arrêter un démon utiliser /etc/rc.d/init.d/SONNOM stop
Pour le démarrer : /etc/rc.d/init.d/SONNOM start.
Il est parfois nécessaire ou souhaitable de compiler et d'installer une nouvelle version du noyau, par exemple afin de disposer d'un nouveau logiciel pilote.
Il faut pour cela disposer de l'archive des sources d'une version donnée du
noyau, par exemple appelée linux-2.0.31.tar.gz. Ces fichiers
sources prendront place dans un sous-répertoire de /usr/src/,
souvent /usr/src/linux/.
Des fichiers appelés 'patch' contiennent les différences entre versions du
noyau, par exemple patch-2.0.32 (à appliquer aux sources d'un
noyau version 2.0.31 afin de les transformer en sources de la version
2.0.32).
Les patchs sont applicables successivement, mais il faut en respecter le
séquencement. Exemple : appliquer successivement aux sources de la version
2.0.33 du noyau les patchs patch-2.0.34, patch-2.0.35 et
patch-2.0.36 les transformera en sources de la version 2.0.36.
Les archives des sources et patch se trouvent sur de nombreux serveurs publics (par exemple kernel.org et, en France métropolitaine, sous un répertoire du serveur du LIP6.
Attention :
kernel-source, kernel-headers) ne correspondent donc pas
toujours aux sources officielles, les fichiers 'patch' ne s'y appliqueront
donc le plus souvent pas (cf. la section
Patch impossible).
patch-2.2.10-ac10.bz2)
abritent des modifications proposées par Alan Cox. Ils sont en général fort
bons, mais posent parfois divers problèmes aux utilisateurs peu aguerris.Les documents Kernel HOWTO et Compilation kernel 2.2.x contiennent toutes les informations nécessaires, je me contenterai donc ici d'un survol (et d'une astuce facilitant la compilation d'une nouvelle version lorsqu'un autre noyau a déjà été engendré sur la machine).
La plupart des opérations décrites ci-après ne sont pas réservées à root, il est conseillé de les mener à bien en tant que simple utilisateur et de ne 'passer root' que lorsque cela devient nécessaire (par exemple lors de l'installation des fichiers abritant le binaire du noyau et les modules, ou bien lors de la mise au point de la configuration de LILO).
Gagner le répertoire des sources du noyau :
cd /usr/src
Vérifier si les sources du noyau sont déjà installés :
file linux
(la commande file permet d'obtenir le type d'une entité stockée
sur un système de fichiers : un fichier, un répertoire, un lien ...)
Si la réponse de file est 'symbolic link to (quelque chose)' il
s'agit d'un lien symbolique, nous allons le supprimer :
rm linux
S'il s'agit d'un répertoire ('directory') nous le renommerons :
mv linux linux.old-`date +%Y%m%d%H%M%S`
S'il n'existe pas : passer au paragraphe suivant (décompactage de l'archive) !
Puis décompacter l'archive du noyau grâce à une commande de la forme
tar xvzf TAR-DE-NOYAU-COMPLET-STABLE
Exemple :
tar xvzf /tmp/linux-2.0.31.tar.gz
Cette commande crée un répertoire linux. Le renommer
linux-NUMÉRO-DERNIÈRE-VERSION-DISPO (en tenant compte des patches). Le
répertoire de la version 2.0.31 de notre exemple sera ainsi renommé 2.0.36
puisque nous disposons des fichiers patch-... nécessaires.
Exemple :
mv linux linux-2.0.36
Créer un lien symbolique appelé linux pointant vers ce nouveau
répertoire.
Exemple :
ln -s linux-2.0.36 linux
Se placer dans le répertoire.
cd linux
Appliquer les patches grâce au script patch-kernel fourni avec les
sources du noyau. Il faut lui passer deux arguments : le nom du répertoire
contenant les sources à patcher, et celui qui abrite les fichiers patch.
Exemple (fichiers de patch dans le répertoire ~/tmp) :
scripts/patch-kernel . ~/tmp
Si le message failed. Clean up yourself. apparaît passer à la
section du présent document intitulée
Patch impossible.
Vérifier l'application (en théorie inutile, car assuré par le script
patch-kernel/). Mais, comme nul ne l'ignore, en matière
d'informatique AUSSI la parano sauve !). Bref. La commande suivante cherche
des fichiers d'extension '.rej' produits lorsqu'un patch échoue. Elle ne
doit produire aucun message :
find | grep -i '\.rej'
Si elle en produit passer à la section du présent document intitulée Patch impossible.
Si un noyau a déjà été engendré sur la machine locale sur la machine
un fichier .config contenant toutes les options de compilation se
trouve dans le répertoire principal des sources du noyau.
Le copier dans le répertoire des nouveaux sources puis invoquer
make oldconfig :
cd /usr/src/linux
cp /ANCIENS-SOURCES-DU-NOYAU/.config .
make oldconfig
Si la commande make n'existe pas le message bash: make:
command not found apparaîtra : il faut chercher le paquet (rpm, deb,
tgz ...) appelé 'make' et l'installer.
Configurer le noyau.
make xconfig
Si X Window n'est pas actif utiliser make menuconfig (il faut
installer le paquetage ncurses, voire make config).
Configurer le noyau (lire le Kernel HOWTO).
Configurer les "Codepage"s du menu 'filesystems' : 437 et 850, "NLS ISO 8859-1".
Le compiler :
make dep clean zImage modules
Cette commande ne doit produire aucune erreur.
En cas d'erreur :
make[1]: as86: Command not found
installer le paquet bin86.
En cas de message 'PAGE_OFFSET_RAW ...' invoquer 'make oldconfig'
On peut ensuite supprimer les modules déjà installés qui correspondent à la
version de noyau en cours d'installation, afin de s'épargner quelques
'warnings' (avertissements) lors du redémarrage. Mais ce n'est pas
obligatoire. Si la version du noyau en cours d'installation est égale à
celle de la version active cette suppression peut interdire d'employer sur
le moment certains modules (il faudra redémarrer en chargeant le nouveau
noyau pour en bénéficer à nouveau). Exemple de commande supprimant les
modules d'un noyau donné : rm -rf /lib/modules/2.0.36.
Il est souvent plus sage de les détruire après avoir redémarré le système
grâce au nouveau noyau, par exemple en les sélectionnant en fonction de
leur âge :
find /lib/modules/2.0.36/ -type f -mtime +1 | xargs -r rm
Puis invoquer make modules_install afin d'installer les modules.
Il faut se trouver dans le répertoire des sources du noyau
(/usr/src/linux) et effectuer cela en tant que root.
Ces fichiers d'extention .o contiennent le code exécutable de
certaines sections du noyau compilé, que ce dernier pourra ensuite charger
et décharger en fonction des besoins. Ils seront installés dans
/lib/modules/NUMÉRO-VERSION-NOYAU/. Ceux qui résident déjà à cet
endroit demeurent en place, des messages étranges apparaissent donc parfois
(souvent lors de l'amorçage) car depmod -a trouve des modules
inutilisables. Lire à ce propos la
FAQ fcol (rubrique 'insmod').
Copier le nouveau noyau compilé dans la zone réservée aux fichiers de ce
type.
Exemple :
cp arch/i386/boot/zImage /boot/zImage-2.0.36
ATTENTION : (sauf dispositions particulières) seul root peut effectuer
cela !
Supprimer les fichiers devenus inutiles et autoriser tous les utilisateurs à lire les fichiers des sources du noyau (afin qu'ils puissent employer gcc).
make clean
find . -type d | xargs chmod a+x
chmod -R a+r *
Éditer /etc/lilo.conf et y ajouter une section
image, placée juste avant la première de ce type qui s'y trouve
déjà.
Exemple (attention : modifier si nécessaire le paramètre root,
s'inspirer pour cela des autres déclarations présentes dans ce fichier) :
image=/boot/zImage-2.0.36
label=l2036
root=/dev/hda1
read-only
Invoquer lilo et lire ses messages. Utiliser le paramètres
-v afin de mieux diagnostiquer un éventuel problème.
Redémarrer la machine.
Pour obtenir la liste des modules (telle que présentée dans
/etc/modules.conf : /sbin/modprobe -c | grep -v '^path'.
T. Quinot propose un script de shell qui recopie un fichier de noyau
fraîchement compilé à l'endroit idoine, puis lance lilo. Cela
permet de tester un nouveau noyau sans devoir éditer lilo.conf.
Il accepte un nom de répertoire fourni en option de ligne de commande. Ce
répertoire doit contenir un noyau, et le script installe
System.map sous le nom /boot/System.map-VERSION, de façon
à ce que procps puisse le trouver automatiquement.
#! /bin/sh
# 1998-03-25 thomas@Cuivre.FR.EU.ORG
KERNEL_SOURCES=${1:-/users/operator/src/linux-2.1}
VERSION=`grep UTS_RELEASE $KERNEL_SOURCES/include/linux/version.h |
sed 's,^.*"\(.*\)".*$,\1,'`
cp -pf $KERNEL_SOURCES/arch/i386/boot/zImage /boot
cp -pf $KERNEL_SOURCES/System.map /boot/System.map-$VERSION
# ajout Nat
cd /boot
ln -sf System.map-$VERSION System.map
#fin ajout Nat
/sbin/lilo -v
echo Syncing
sync;sleep 1;sync;sleep 1;sync
echo Synced.
Voici l'entrée correspondante du lilo.conf :
image = /boot/zImage
label = test