Accueil

Linux From Slack

Par mushroom.

Version 13.1.0.

Ce document est placé dans le Domaine Public.

Slackware est une marque déposée par Patrick Volkerding et Slackware Linux, Inc. Ce document et les informations qu'il contient n'émanent pas du projet Linux Slackware et n'ont donc aucun caractère officiel.

Sommaire

Avant-propos

Cette version de Linux from Slack est la réécriture de celle publiée sur léa-linux, le maintien de cette dernière étant laissé aux wikistes du lieu.

Pour la numérotation de la présente version, nous avons choisi de reprendre le numéro de la dernière Slackware stable avec laquelle elle a été testée, en ajoutant simplement un troisième nombre indiquant le nombre de révisions subies par une même version.

Beaucoup de personnes seraient à remercier pour l'élaboration de ce document, à commencer par toutes celles qui créent, traduisent ou diffusent de la documentation Linux et/ou donnent des coups de main sur les forums, partout sur la Toile. Néanmoins des remerciements particuliers sont à donner à fraaaz qui a fourni l'indispensable matière pour la sous-partie sur la connexion ADSL, ainsi qu'à l'ensemble des actifs du feu groupe Slackware pour lea-linux qui ont assisté la naissance de la première version de Linux From Slack. Merci également à Pat pour son excellente distribution et pour sa méthode tout-terrain de configuration d'ALSA.

Introduction

L'objectif de Linux From Slack est de vous faire bâtir un système Linux Slackware couche par couche, en dégageant pour chaque fonctionnalité le lot de paquets nécessaires et en détaillant le rôle respectif de ceux-ci.

Au delà de l'intérêt pédagogique de la démarche, ce document peut aussi servir de guide aux vieux routards slackeux souhaitant constituer une bonne base minimaliste pour personnaliser leur système. Pour ces derniers (et pour les flemmards), à qui nous n'apprendrons pas grand chose, nous avons mis en place un Appendice pour le Slackeux pressé où ils trouveront le nécessaire pour accélérer sensiblement les choses.

Pour les autres, ce qui va suivre n'est pas particulièrement compliqué à réaliser, néanmoins par soucis de concision (plus c'est petit, mieux c'est maintenable) et eu égard à notre objet, nous ne traiterons pas outre-mesure de l'installation Slackware à proprement parler. Il est donc conseillé d'être à l'aise avec les menus de setup ou de s'armer d'une bonne documentation avant de poursuivre.

Concernant l'aspect matériel de la mise en oeuvre, nous partirons du principe que vous avez une machine mono-poste utilisant un bon vieux système de fichier ext3, sans besoins particuliers (RAID, LVM, etc. ) et bootant à partir du noyau d'installation par défaut. Si vous avez des raisons de penser que vous n'entrez pas dans ce cadre, jetez un oeil sur les fichiers slack-desc de la série A et repérez ceux susceptibles de vous servir.

A présent, vous pouvez booter sur le premier CD d'installation de notre Slackware (le seul nécessaire si vous n'escomptez pas installer d'interface graphique) : three, two, one, let's jam!

Éclosion

Dans cette partie, nous allons limiter notre ambition à un objectif bien basique : obtenir un système bootable.

Comme indiqué précédemment, nous vous laisserons à vous même pour l'installation jusqu'à ce que vous ayez à choisir les séries de paquets à installer (entrée SELECT).

Une fois parvenu à cette étape, déselectionnez toutes les séries à l'exception de A et AP, validez votre choix puis, lorsqu'on proposera divers modes d'installation, indiquez expert. Setup vous demandera alors de choisir individuellemnt chaque paquet à installer dans A puis dans AP. Voici la liste commentée des paquets à demander pour chaque série (déselectionnez tout ce qui n'y figure pas).

Quand nous parlons du « pingouin standard », nous voulons dire que la plupart des développeurs (en particulier de scripts) s'attendront à ce que votre système possède au moins une des commandes contenu dans le paquet décrit (l'absence de less n'empêchera bien sûr pas votre système de booter).

Comme vous l'aurez peut-être compris, par la suite nous supposerons pour les éditions de fichiers que vous savez utiliser vi. Si donc vous n'êtes pas à l'aise avec les éditeurs de texte en console ou si vous détestez vi, pensez à ajouter un éditeur à votre main (dans AP, nano est sans doute le plus simple pour ceux qui manquent de pratique).

À noter également que les utilisateurs de vim peuvent tout à fait installer celui-ci à la place d'elvis ; vi se référera alors à vim.

Une fois cela effectué, laissez-vous tranquillement porter jusqu'au bout du processus d'instllation. Pour les habitués, pas de panique si rien n'est demandé sur la configuration du réseau, nous verrons tout cela plus tard. Pour l'heure, il est temps de rebooter afin d'assister à l'éclosion de votre nouveau pingouin, nous croisons les doigts avec vous...

Mon pingouin est un manchot !

Théoriquement, à cette ligne vous devez être devant l'invite login: de votre bestiole tout frais sortie de sa coquille. Connectez-vous en root, le seul utilisateur disponible pour le moment.

Bon, c'est pas qu'en l'état il est pas mignon votre pingouinet, mais côté fonctionnalités c'est un peu le désert : il est incapable de faire trois pas dehors, il est muet et il n'entend rien au français. Nous allons prendre les problèmes un à un.

Pointer le bec dehors

Pour commencer, nous allons mettre en place la connexion internet, ce qui vous permettra au moins de faire des recherches si tout ne se déroule pas comme escompté. Commencez par installer les paquets suivants (pour toutes les listes de paquets, la lettre entre parenthèses indique la série dans laquelle vous les trouverez):

La base du réseau

À présent, nous allons pouvoir configurer la base du réseau en tapant netconfig. Une interface graphique de type ncurses apparaîtra alors, vous demandant d'entrer divers renseignements, dans l'ordre :

À ce stade, nous avons normalement une base de réseau fonctionnelle. Pour vous en assurer, activez-la en exécutant /etc/rc.d/rc.inet1 puis tapez netstat -i. Une ligne commençant par lo doit apparaître, indiquant que l'interface réseau interne à votre machine est active.

La connexion internet

Reste à configurer la connexion internet proprement dite. Pour cela, nous allons passer par PPPD (Point-to-Point Protocol Daemon), qui permet d'aller sur internet directement à partir du modem (si vous vous connectez en DHCP ou avec une IP fixe, à l'exception du passage sur le pare-feu, vous pouvez sauter cette section car normalement votre connexion est prête). Deux cas sont présentés ici : la connexion 56K et la connexion ADSL.

Le 56K

Pour ce type de connexion, c'est avec pppsetup que ça se passe. L'exécution de la command fera apparaître une autre série de menus ncurses qui vous réclameront respectivement les informations suivantes :

Une fois que vous aurez entré tout ça, un rapport de configuration vous sera donné. Sachez que vous pouvez tout recommencer en cas d'erreur, une nouvelle configuration écrasant la précédente, il suffit de réexécuter pppconfig.

L'ADSL

Il n'y a pas d'interface pour configurer simplement l'ADSL (enfin si, il y a pppoe-setup dans le paquet rp-pppoe situé dans N, mais comme il n'est pas nécessaire on va s'en passer), nous allons donc devoir plonger légèrement dans les entrailles de PPPD.

Nous ne parlerons ici que du cas des modems branchés en ethernet, ceux branchés en USB requiérant un pilote (souvent conçu pour les produits Microsoft(tm) puis « encapsulés » pour s'interfacer avec Linux) et pouvant s'avérer de véritables plaies à configurer. Bref, si vous avez le choix de brancher votre modem en ethernet, faites-le.

Tout d'abord, il faut indiquer à notre cher démon que nous allons avoir besoin de son plugin rp-pppoe (Roaring Penguin - Point-to-Point Protocol Over Ethernet). Pour ce, éditez le fichier /etc/ppp/options avec votre éditeur de texte (vi, par défaut), puis modifiez-le comme suit (entre <> sont indiquées les informations à insérer) :

plugin rp-pppoe.so
name <votre login>
noipdefault
defaultroute
mtu 1492
mru 1492
lock

Ensuite, éditez /etc/ppp/chap-secrets et/ou /etc/ppp/pap-secrets (selon la méthode d'authentification utilisée par votre FAI), et remplissez-le(s) ainsi :

<votre login> * <votre mot de passe>

Ces fichiers contenant vos login et mot de passe, seul le superutilisateur devrait pouvoir les lire, assurez-vous donc que c'est le cas en tapant chmod 600 /etc/ppp/chap-secrets /etc/ppp/pap-secrets.

Après cela, c'est au tour de /etc/resolv.conf d'être renseigné sur les serveurs de noms de domaines de votre FAI (sauf si vous êtes d'humeur badine et comptez n'utiliser que des adresses IP par la suite) :

search <nom de domaine votre fai, par ex. "free.fr">
nameserver <une des adresses DNS de votre FAI>

Puis précisez dans /etc/host.conf l'ordre dans lequel se résolvent les noms d'hôtes :

order hosts, bind
multi on

Pour finir, ne reste plus qu'à activer le support de votre carte réseau dans un fichier /etc/modprobe.d/ethernet que nous créerons pour l'occasion :

alias <nom de votre interface réseau, 'ethx', où X vaut en général 0> via-rhine

Vous voici paré à vous connecter, quoique...

Le pare-feu

Comme il est là, votre pingouin peut certes aller sur le réseau, mais demeurre sans défense contre les agresseurs de tous acabits. C'est pourquoi il est conseillé de mettre en place un pare-feu, ou plus précisément un script iptables.

Si vous en avez un sous la main c'est tant mieux pour vous, autrement vous pouvez toujours essayer liquette qui devrait parfaitement faire l'affaire. Dans tous les cas, copiez le fichier en tant que /etc/rc.d/rc.firewall, rendez-le exécutable, puis exécutez-le en tapant la séquence de commandes suivante :

cat liquette > /etc/rc.d/rc.firewall
chmod 700 /etc/rc.d/rc.firewall
/etc/rc.d/rc.firewall start

Ainsi mis en place, le pare-feu sera automatiquement activé à chaque démarrage du système.

En avant !

C'est le moment de nous essayer à une première glissade ventrale en tapant une des commandes ci-après selon le cas qui vous concerne :

Si vous voulez vous amuser (ou trouver un meilleur guide d'installation), vous pouvez installer links (ou lynx si vous êtes nostalgique, les deux sont dans N) et surfer en mode texte sur la Toile. Si jamais vous êtes bien connecté mais que vous ne pouvez accéder à aucun site, c'est peut-être un problème de pare-feu : désactivez-le en tapant /etc/rc.d/rc.firewall stop. Si après cela tout fonctionne, inhibez-le définitivement au démarrage en lui retirant les droits d'exécution : chmod 600 /etc/rc.d/rc.firewall (attention cependant car votre pingouin sera de nouveau tout nu). Autrement, si le problème persiste malgré la désactivation du pare-feu, revoyez votre configuration (en particulier /etc/resolv.conf).

Bien, assez joué sur le net, il y a encore du pain sur la planche. Si elle est activée, coupez la connexion avec la commande suivante : /usr/sbin/ppp-stop.

Il est temps à présent d'apprendre à notre pingouin à parler.

Premiers piaillements

Ça ne vous a sûrement pas sauté aux oreilles, puisqu'aucune application n'a utilisé le son jusqu'ici, mais votre bestiole est totalement muette. Pour remédier à cela, commencer par lui coller dans le bec la décoction suivante :

Sur les Linux modernes, c'est ALSA (Advanced Linux Sound Architecture) qui est en charge du son. La première chose à faire est de lui faire reconnaître votre carte son. Il suffit normalement pour ce d'activer le son en tapant alsamixer. Vous vous retrouverez alors devant une interface constituée de plusieurs barres verticales correspondant chacune à un canal. Pour le moment, comme l'indique le MM aux pieds des barres, tous les canaux sont muets. Déplacez-vous donc au moins sur les barres PCM et Master, activez les canaux en appuyant sur [M], puis ajustez le volume (à zéro pour le moment) en jouant des touches [Page Haut] et [Page bas]. Une fois cela fait, quittez l'interface en appuyant sur [Q] et enregistrez vos règlages en tapant alsactl store.

Voilà, votre pingouin en sait normalement assez pour jacasser comme une pie. D'ailleurs, nous allons tout de suite mettre sa volubilité à l'épreuve en écoutant ce qu'il a à dire sur -- par exemple -- la (merveilleuse) commande sed. Il suffit pour cela d'entrer cat /bin/sed | aplay.

Bon, c'est vrai, sur l'articulation ça laisse à désirer mais notez qu'il a trouvé le chemin de vos enceintes, ce qui n'est déjà pas si mal (si ce n'est pas le cas, re-vérifiez vos règlages puis, s'il sont corrects, essayez de passer par la commande alsaconf pour obtenir la reconnaissance de votre matériel). Non, s'il pèche vraiment c'est plutôt à l'écrit, car en effet il semble parfaitement hermétique au français. Voyons voir ça...

French KISS

Autant vous prévenir tout de suite, ne vous attendez pas à ce que votre palmipède vous ponde du Baudelaire. Sous Slackware et dans le monde de l'Open Source en général, l'anglais demeure en effet la règle (c'est injuste mais c'est ainsi). Faisons nonobstant de notre mieux et entâmons une nouvelle séquence d'installation :

Localiser le système

C'est dans /etc/profile.d/lang.sh que se déroulera l'essentiel -- pour ne pas dire la totalité -- du cours de langue que nous venons d'entreprendre. La marche à suivre en est par ailleurs très simple : éditez le fichier, commentez toutes les lignes qui ne le sont pas à l'exception de LC_COLLATE (afin de prévenir certains comportements inattendus lors des tris de chaînes), puis ajoutez celles-ci à la fin :

export LANG=fr_FR@euro
export LESSCHARSET=latin9

La première ligne indique que, lorsqu'il est disponible, les interfaces et la sortie des commandes doivent être en français, et permettre l'emploi du symbole ?. La seconde ligne indique pour sa part à less, la commande de pagination utilisée lors de l'affichage des pages de manuel, d'employer un jeu de caractères avec accents et symbole ?. Cette dernière précision est importante si vous souhaitez avoir des pages de manuel françaises lisibles.

Une fois ces règlages mis en place, vous pouvez dès maintenant actualiser votre environnement en tapant . /etc/profile.d/lang.sh. Entrez ensuite rmdir /, le message d'erreur résultant devrait vous être retourné en français.

« Regarde Ton Foutu Manuel »

Ce sera notre second et dernier point de francisation. En effet, avoir des pages de manuel dans sa langue maternelle peut faire gagner du temps dans la résolution des problèmes, voir être nécessaire quand on n'a pas la chance de lire l'anglais. Les pages que nous nous proposons d'installer ici sont les traductions de celles du LDP (Linux Documentation Project), qui couvrent la plupart des commandes essentielles du système (car quotidiennement utilisées).

Si vous savez comment et préférez le faire, vous pouvez les empaqueter vous-même en récupérant les dernières sources (man-pages-fr et man-pages-extra-fr) à leur adresse de maintien. Cependant le plus simple est certainement de télécharger les paquets amoureusement emballés par votre serviteur. Dans tous les cas installez les paquets, puis tapez man bash. Si tout s'est bien passé, le manuel doit s'afficher en français.

Récapitulons : le réseau, le son, la francisation, ... amusant mais cela laisse l'impression qu'on a oublié un truc... un truc essentiel, même... mais qu'est ce que ça peut bien être ?

On n'a pas oublié quelqu'un en root ?

Le root ! abomination linuxienne par excellence, le seul compte disponible pour se connecter à votre système est celui du superutilisateur. Par bonheur, le système étant encore très minimaliste et normalement à l'abri derrière un pare-feu, les risques courus jusqu'ici ont été plutôt minces. Notre pingouin étant cependant appelé à prendre de l'embonpoint, il est plus que temps de rejoindre l'orthodoxie en la matière.

Et root créa l'utilisateur...

Le plus simple pour créer un nouveau compte utilisateur est de passer par la commande adduser (à ne pas confondre avec useradd, beaucoup moins conviviale). Celle-ci exécutée, elle vous réclamera divers paramètres en vous proposant à chaque fois entre crochets une valeur par défaut qui sera adoptée si vous validez un champs vide. Dans l'ordre d'apparition :

Une fois tout cela renseigné, on vous demandera de valider l'ensemble de vos choix. Si vous le faites, le compte sera créé, puis démarrera une nouvelle série de paramétrages, tous optionnels (vous pouvez tout valider à vide). Viendra alors le moment crucial de vous choisir un mot de passe, promis nous ne regardons pas...

Attention si vous utilisez le pavé numérique, par défaut [Verr Num] n'est pas actif.

Si vous avez fini, il est temps de tester notre nouveau compte. Allez sur la deuxième console en appuyant simultanément sur [Alt] et [F2] et essayez de vous connecter en tant qu'utilisateur (là encore, attention à [Verr Num]).

Dans le cas où vous n'y parviendriez pas après plusieurs tentatives, ce sera certainement un problème de mot de passe. Retournez alors sur la première console ([Alt] et [F1]), puis tapez passwd <nom de l'utilisateur> et redéfinissez votre mot de passe plus attentivement, ce jusqu'à ce que vous parveniez à connecter autre chose que root sur la deuxième console.

... ce gros nul !

Si vous tentez de vous égayer sur votre système en tant qu'utilisateur, vous vous rendrez rapidement compte que vous êtes soumis à présent à pas mal d'interdits. C'est un peu le principe nous direz-vous narquois, ce à quoi nous nous empresserons d'acquiescer. Néamoins vous reconnaîtrez qu'être privé d'internet et incapable d'éteindre simplement votre machine peut à la longue se révéler un poil usant. C'est pourquoi nous allons mettre en place et configurer sudo. Commencez par retourner sur la première console (seul root peut installer des paquets) et installez le paquet correspondant.

Cela fait, il nous faut éditer le fichier /etc/sudoers. La commande -- sécurisée -- pour faire ça est normalement visudo (sans argument), mais si l'ergonomie de vi vous donne des boutons, vous pouvez prendre votre éditeur habituel. Voici, commenté par nos soins, le contenu de notre configuration :

# SUDOERS - règles pour 'sudo'.
#
# Pour avoir les détails de configuration, 'man sudoers'.
#

# Nous n'autoriserons l'emploi de sudo qu'à partir de notre machine. Pour
# des raisons de commodité, nous créons l'alias "BOX". Insérez le nom
# de votre machine (ex. "slacknut", mais en aucun cas "localhost").
Host_Alias BOX = <machine>

# À présent nous créons deux groupes. Le premier accueillera tous les
# utilisateurs qui ont le droit de couper la machine, le second ceux qui
# ont le droit de se connecter à internet (séparez les noms par des
# virgules s'il y en a plusieurs). Ajouter votre utilisateur aux deux.
User_Alias U_PWR = <utilisateur>
User_Alias U_NET = <utilisateur>

# Maintenant, nous définissons deux groupes de commandes que nous ferons
# correspondre à chaque groupe d'utilisateur.
Cmnd_Alias C_PWR = /sbin/poweroff, /sbin/reboot
Cmnd_Alias C_NET = /usr/sbin/ppp-stop, /usr/sbin/pppd <interface> # ou '/usr/sbin/ppp-go',
                                                                  # en cas de 56K.

# Ne reste plus qu'à rendre effectives nos autorisations.
U_PWR BOX = NOPASSWD: C_PWR
U_NET BOX = NOPASSWD: C_NET

# Sans oublier pour finir d'autoriser root à exécuter n'importe quoi en
# tant que n'importe qui (le calife reste le calife ;-).
root    ALL=(ALL) ALL

# FDF

Si vous n'avez pas édité le fichier avec visudo, assurez vous que ce que vous avez écrit est correct en tapant visudo -c.

Après cela, nous devrions déjà pouvoir aller librement sur le net et éteindre notre machine simplement en tapant sudo <commande autorisée>.

Il est toutefois vrai que toutes ces choses à taper sont encore un poil lourdes, c'est pourquoi nous alons nous simplifier à nouveau la vie en définissant quelques alias dans le .bashrc de notre utilisateur. Repassez sur la deuxième console et créez/éditez le fichier ~/.bashrc, afin qu'il ressemble à ceci :

alias halt='sudo /sbin/poweroff'
alias reboot='sudo /sbin/reboot'
alias net-on='sudo /sbin/ppp-go'
alias net-off='sudo /sbin/ppp-stop'

Ne reste plus qu'à en exporter le contenu dans l'environnement courant en tapant . ~/.bashrc, et nous pourrons tester le tout, par exemple en nous connectant à internet avec notre alias : net-on.

Voilà, vous pourrez désormais montrer votre bestiole à vos amis linuxiens sans vous exposer à leur (juste) indignation avec un système entièrement utilisé en root. Et puisque nous avons bien travaillé, nous allons passer à des choses un peu plus futiles comme doter notre palmipède d'une chouette boîte de coloriage.

Dessine-moi un pingouin

Si votre machine est destinée à être autre chose qu'un serveur, il est probable que vous souhaiterez jouir d'une interface graphique. Pour cela, il vous faudra installer le serveur graphique qu'est Xorg.

Les nouvelles moutures de Xorg utilisant désormais HAL pour gérer leur configuration, la première chose à faire est d'installer celui-ci et ses dépendances :

Viens ensuite l'installation du serveur proprement dit. Le soucis à ce stade, c'est que Xorg est aujourd'hui modulaire et fractionné en plus de 200 paquets, tous stockés dans X. Aussi vous comprendrez que nous ne pourrons pas donner le détail du rôle de chacun, ce d'autant que la documentation disponible sur le sujet est plutôt laconique (mais pas inexistante, si vous voulez vous amuser ;-)). Nous allons donc procéder pour cette fois « en négatif » : au lieu de ce que vous devrez installer, nous vous indiquerons ce que vous pourrez laisser de côté.

Voici donc ce dont votre serveur peut se passer :

Avec ces indications, vous devriez obtenir un Xorg épuré sensiblement identique à ce que contenait le paquet de l'ancien Xorg monolithique dans les Slackware antérieures (<= 11.0).

Une fois vos installation terminées, il vous faudra lancer les scripts setup mkfontdir et fontconfig afin de mettre à jour l'index des polices du serveur. Pour ce, tapez pkgtool, prenez l'entrée Setup, sélectionnez ces deux scripts dans la liste avec [Espace], puis validez leur exécution.

Cette dernière opération est à répéter chaque fois que que vous ajoutez ou enlevez une police à Xorg.

Pour tout ce qui est configuration du serveur à proprement parler (choix de la carte graphique, etc. ), Xorg se débrouille normalement tout seul. La seule chose restant à la charge de l'utilisateur est de choisir la disposition du clavier, qui par défaut est en QWERTY américain. Pour ce faire, nous allons passer par HAL, commencez par créer le répertoire /etc/hal/fdi/policy/10osvendor/ puis copiez-y le fichier /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi. Ensuite éditez la copie et changez comme indiqué les valeurs des lignes suivantes :

    [...]
     <merge key="input.xkb.layout" type="string">fr</merge>
     <merge key="input.xkb.variant" type="string">latin9</merge>
    [...]

Il ne vous reste qu'à lancer le démon hald avec un /etc/rc.d/rc.hald start (restart, s'il est déjà actif) afin de charger notre nouvelle configuration.

Il est encore possible de passer par ce bon vieux xorg.conf. Xorg requiérant de toutes manières pour démarrer que le démon hald soit actif, il paraît cependant clair que ce n'est désormais plus la voie à privilégier. En cas de problème ou simplement pour plus de détails sur ces questions, référez-vous à l'article dédié.

Vous êtes maintenant prêt à démarrer votre serveur, du moins si votre carte graphique est supportée par celui-ci (il y a de grandes chances). Pour vous en assurer, retournez sur la deuxième console, tapez xwmconfig puis sélectionner le très euh... austère Windows Manager de Xorg : twm. Lancez ensuite startx, si l'interface graphique s'affiche c'est que votre serveur est fonctionnel. Il ne vous restera plus alors qu'à installer et configurer votre environnement favori. Sortez en pressant sur le bouton gauche de la souris avant de sélectionner Exit.

Si TWM est facécieux et ne vous rend pas la main quand vous sortez, pressez simultanément sur [Ctrl], [Alt] et [f2]. Vous retournerez alors sur la deuxième console et il vous suffira d'appuyer sur [Ctrl]+[C] pour tuer le processus en cours.

Bon, l'oiseau ayant à présent tout le nécessaire pour développer sa sensibilité artistique, il est temps de passer à l'ultime étape de son développement, qui consiste à faire un peu le tri de ses idées.

D'une tête bien pleine à une tête bien faite

Jusqu'ici, nous nous sommes surtout préoccupés de limiter l'espace disque occupé par notre pingouin, en choisissant scrupuleusement nos paquets. Or, cela n'est qu'une part du travail si nous voulons véritablement obtenir un système minimaliste, puisqu'à l'heure où vous lisez ces lignes plusieurs méga-octets de précieuse mémoire vive doivent être gaspillés.

En effet, pour pouvoir booter vous avez dû charger une énorme ( « huge » en anglais) image de noyau, embarquant énormément de choses afin de s'adapter sans douleur au plus grand nombre de configurations possibles. Il en résulte qu'une bonne partie du code chargé actuellement en mémoire l'est en pure perte. Nous allons donc changer de noyau et opter pour le noyau générique modulaire que vous avez installé lors du choix des paquets initiaux (paquet kernel-generic). Étant modulaire, celui-ci laissera au système la tâche d'évaluer précisément le code qu'il convient de charger pour répondre à ses besoins, économisant ainsi pas mal de poids mort.

Le soucis c'est qu'un tel noyau nécessite un ramdisk pour pouvoir booter, c'est à dire un fichier prêt à être chargé en mémoire et contenant le code requis pour cette opération (principalement le support du système de fichiers présent sur votre partition de boot). Nous allons donc procéder dans cette section à tous les changements nécessaires.

Tout d'abord commencez par vous rendre dans le dossier /boot, et assurez-vous que les lien symbolique vmlinuz et System.map sont bien associés à l'image générique :

cd /boot
rm vmlinuz
ln -s vmlinuz-generic-smp-<version du noyau>-smp vmlinuz
rm System.map
ln -s System.map-generic-smp-<version du noyau>-smp System.map

Ensuite créez le ramdisk en indiquant le système de fichiers utilisé (ici ext4, avec une racine système située sur /dev/sda1, adaptez à votre configuration) :

mkinitrd -c -m ext4 -f ext4 -r /dev/sda1

Si le système de fichiers de votre racine n'est pas ext4 ou si vous voulez en apprendre plus sur la création de ramdisks avec mkinitrd, consultez le fichier /boot/README.initrd et la page de manuel man 8 mkinitrd.

Cette opération effectuée, corrigez les entrées dans /etc/lilo.conf afin qu'elles ressemblent à ceci (là encore, corrigez bien sûr si votre racine n'est pas /dev/sda1) :

# L'entrée de notre noyau générique, que nous nommons « Current », avec une ligne pour désigner
# le ''ramdisk'' à charger.
image = /boot/vmlinuz
    initrd = /boot/initrd.gz
    root = /dev/sda1
    label = Current
    read-only

# L'entrée de notre ancien noyau, que nous appelons logiquement « Old ».
image = /boot/vmlinuz-huge-smp-<version du noyau>-smp
  root = /dev/sda1
  label = Old
  read-only

À présent il ne vous reste plus qu'à relancer lilo pour que vos changements soient pris en compte. Au prochain boot de votre machine, deux entrées devraient vous être proposées, « Old » faisant office d'issue de secours en cas d'échec au chargement du noyau générique.

Et bien ! avouez qu'on a plutôt bien travaillé, non ? à ce stade, il ne vous reste normalement qu'à adapter votre système à vos besoins en installant les logiciels adéquats. Cela étant uniquement de votre ressort, il est donc temps pour nous de prendre congé...

Petit pingouin deviendra grand

Plaît-il ? Vous tremblez et blêmissez à présent qu'a sonnée l'heure ? Effectivement une explication sur la marche à suivre pour parachever votre système ne serait pas de trop. Allons, séchez-nous ces larmes, c'est en fait fort simple.

Lorsque vous voulez ajouter une application, commencer par installer le paquet la contenant, puis exécutez dans une console (ou un terminal) la commande y correspondant. Vous devriez alors écoper d'un message relevant que quelque_chose.so est not found. Cela veut simplement dire qu'il manque une bibliothèque pour que l'application puisse s'exécuter correctement.

La Slackware étant garantie livrée sans problèmes de dépendances, ce dont vous avez besoin est nécessairement dans la distribution, ne reste donc qu'à identifier dans quel paquet il se trouve. Pour cela, nous avons à la racine de chacun des répertoires slackware/ que contiennent les CDs Slackware un fichier MANIFEST.bz2. Ceux-ci recensent l'ensemble des fichiers contenus dans le CD auquel ils appartiennent respectivement.

La première chose à faire est de tous les copier sur votre disque dur, par exemple dans /tmp en tant que MANIFESTCD1.bz2, MANIFESTCD2.bz2, MANIFESTCD3.bz2, etc. selon les CDs que vous allez utiliser. Ensuite ne vous restera plus qu'à lancer une recherche en usant de la syntaxe bzgrep "Package:\|<votre recherche>" /tmp/MANIFESTCD* | grep -v Package: -B 1. En illustration, voici ce que donnerait celle-ci appliquée à la recherche de libpango :

$ bzgrep "Package:\|libpango" /tmp/MANIFESTCD* | grep -v Package: -B 1
/tmp/MANIFESTCD1.bz2:||   Package:  ./l/pango-1.16.4-i486-1.tgz
/tmp/MANIFESTCD1.bz2:-rw-r--r-- root/root       822 2007-05-04 16:04 usr/lib/libpangox-1.0.la
/tmp/MANIFESTCD1.bz2:-rwxr-xr-x root/root      1289 2007-05-04 16:04 usr/lib/libpangocairo-1.0.la
/tmp/MANIFESTCD1.bz2:-rwxr-xr-x root/root    172852 2007-05-04 16:05 usr/lib/libpangoft2-1.0.so.0.1600.4
/tmp/MANIFESTCD1.bz2:-rwxr-xr-x root/root       927 2007-05-04 16:04 usr/lib/libpango-1.0.la
/tmp/MANIFESTCD1.bz2:-rwxr-xr-x root/root     41228 2007-05-04 16:05 usr/lib/libpangox-1.0.so.0.1600.4
/tmp/MANIFESTCD1.bz2:-rwxr-xr-x root/root    245380 2007-05-04 16:05 usr/lib/libpango-1.0.so.0.1600.4
/tmp/MANIFESTCD1.bz2:-rw-r--r-- root/root       834 2007-05-04 16:04 usr/lib/libpangoxft-1.0.la
/tmp/MANIFESTCD1.bz2:-rw-r--r-- root/root       834 2007-05-04 16:04 usr/lib/libpangoft2-1.0.la
/tmp/MANIFESTCD1.bz2:-rwxr-xr-x root/root     30864 2007-05-04 16:05 usr/lib/libpangocairo-1.0.so.0.1600.4
/tmp/MANIFESTCD1.bz2:-rwxr-xr-x root/root     23480 2007-05-04 16:05 usr/lib/libpangoxft-1.0.so.0.1600.4

Comme vous le voyez, pas d'équivoque possible, la bibliothèque que nous cherchons est dans le paquet pango qui nous attend dans la série L.

Pour accélérer la recherche, vous pouvez décompresser les fichiers MANIFEST après les avoir copiés, en tapant bunzip2 -v /tmp/MANIFEST*. Cela prend bien sûr un peu plus d'espace disque (une grosse dizaine de méga-octets pour les MANIFEST des deux premiers CDs), mais le gain en vitesse d'exécution est très sensible.

Il vous suffira de répéter à nouveau le procédé jusqu'à ce que toutes vos applications soient fonctionnelles. Au passage, ne vous alarmez pas si les premières applications demandent beaucoup de dépendances, c'est simplement parce qu'actuellement votre système n'embarque presque rien. Sur un système un peu étoffé, une nouvelle application ne réclame en général guère plus que l'installation de deux ou trois « paquets-dépendances ».

Épilogue

Cette fois point de doute possible, nous voici rendus à l'inéluctable terme de ce guide.

Pour les (téméraires) débutants et les post-débutants sous Slackware, nous espérons que celui-ci vous aura permis d'entrer plus avant dans votre système et de vous familiariser avec chacun de ses composants essentiels. Pour les autres, les vieux écumeurs de banquise, nous prions simplement pour ne pas avoir écrit trop de bêtises, et espérons qu'au moins l'exposé aura été assez cohérent pour vous faire gagner du temps dans vos expérimentations.

Dans tous les cas, notre voeu le plus cher reste qu'arrivé ici vous disposiez d'une base fonctionnelle ouverte aux adaptations les plus folles que puissiez secrètement concevoir. Car ce document ne serait rien si en définitive il ne vous permettait pas de personnaliser votre système de A à Z. Soyez inventifs et amusez-vous bien, voilà donc tout ce que nous pouvons dire pour conclure !

Appendice pour le Slackeux pressé

Pour faire gagner du temps à ceux qui se moquent du détail des paquets, nous avons prévu une archive contenant les fichiers tagfile des catégories traitées dans ce guide, ainsi que quelques outils (note : le dernier chiffre renvoie au nombre de révisions opérées sur l'archive, pas sur le guide).

Si vous ne savez pas utiliser les tagfiles, consultez l'article traitant du sujet. Pour le reste, tout ce qu'il y a à savoir devrait être dans le fichier LISEZ-MOI que vous trouverez à la racine de l'archive.

Thèmes : #articles #installation #minimal #mushroom

Sauf indication contraire, ce document est placé sous licence CC-BY-SA 3.0.