présente...

 

LéaBook , Chapitre :
Logiciels

par tous les amis de Léa

 

 

Le copyright de chaque article est détenu par son auteur.
Le copyright du livre lui-même est détenu par Léa (Association Loi 1901).
Les articles de ce livre sont diffusés selon la license GPL (GNU General Public License), sauf mention explicite dans l'article.

Copyright (c) 2003 Association Léa.
This documentation is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
For the purpose of applying the GPL to this document, I consider "source code" to refer to the html source.


Table des matières


Installer et utiliser un logiciel

Dans cette section, vous trouverez des articles sur l'installation, la configuration et l'utilisation de logiciels sous Linux.

Si vous cherchez :


 

Haut


Installation de StarOffice 5.1a

par Fred

Les diverses méthodes pour installer StarOffice 5.1a. (peut aussi fonctionner pour les version supérieures !)


Les différentes méthodes.

On peut installer StarOffice de différentes méthodes : Toute la procédure d'installation se déroule dans une fenêtre terminal (exemple xterm).

Décompresser StarOffice.

La méthode la plus simple pour obtenir StarOffice est de l'obtenir sur un CD. Le fichier à trouver s'appelle : so51_*. Pour le trouver sur votre CDROM faites :
[user@localhost home]# mount /mnt/cdrom
[user@localhost home]# find /mnt/cdrom -name 'so51_*'
/mnt/cdrom/logiciels/so51_33lnx.tar.gz
(le nom du fichier peut être différent sur votre machine : ici le résultat du 'find' est en gras : c'est le nom du fichier, notez bien celui de votre CD). Nous allons 'détarrer' (i.e. décompresser) ce fichier :

Deux cas différents peuvent arriver :

Passez dans le répertoire dans lequel StarOffice c'est 'détarré' (ici staroffice ; c'est ce qui commence chaque ligne retournée par la commande précédente) :
[user@localhost home]# cd staroffice
[user@localhost staroffice]# _
Trouvez le programme d'installation :
[user@localhost staroffice]# find -name setup
install/setup
Le programme d'installation s'appelle : install/setup. Passez dans le répertoire contenant le programme d'installation (setup) :
[user@localhost staroffice]# cd install
[user@localhost install]# _
Restez-y pour la suite.

Installation mono-utilisateur.

Vous utiliserez ce type d'installation si vous n'avez pas les droits de root sur votre système (i.e. vous n'êtes pas sur votre propre ordinateur), ou bien si vous êtes le seul utilisateur de votre système et que vous ne projetez pas d'en ajouter plus tard. Sinon, lisez la section suivante.

L'installation doit se dérouler sans douleur. Vous devez être dans le répertoire contenant le programme setup. Il suffit de lancer ce programme :

[user@localhost install]$ ./setup
Une fenêtre classique (pour les utilisateurs de Win$$$) de programme d'installation s'ouvre. Répondez aux questions comme vous le souhaitez (laissez le répertoire par défaut pour l'installation, sauf si vous avez une raison pour choisir autre chose). A la fin de la procédure d'installation vous pouvez lancer StarOffice par la commande :
[user@localhost home]$ /home/user/Office51/bin/soffice
ou bien par les icônes crées dans les menus de KDE (cherchez bien !) lors de l'installation.

Installation multi-utilisateurs.

Pour ce type d'installation, vous devez être root :
[user@localhost install]$ su
Password: xxxxxxxx (mot de passe du root)
[root@localhost install]# _
Puis lancez la commande d'installation :
[root@localhost install]# ./setup /net
Le programme d'installation en mode graphique se lance. Choisissez les options que vous souhaitez. Notez bien le répertoire dans lequel StarOffice s'installe, chez moi c'est :
/opt/Office51/
VOILÀ l'installation multi-utilisateur est faite. Mais il faut encore que chaque utilisateur installe les fichiers de configuration et de travail de StarOffice. Cela se fait sur le compte de chaque utilisateur, par la commande (dans un nouveau terminal, lancé en tant que simple utilisateur) :
[user@localhost home]$ /opt/Office51/bin/setup
Et maintenant user peut lancer StarOffice par la commande :
[user@localhost home]$ /home/user/Office51/bin/soffice
ou bien par les icônes crées dans les menus de KDE (cherchez bien !) lors de l'installation.

Et c'est tout (heureusement!)

Haut


Installation de OpenOffice

par Anne

Installer OpenOffice et le correcteur orthographique

Avant de démarrer l'installation

Tout comme pour StarOffice, il est possible d'installer OpenOffice de trois manières :

Nous travaillerons avec la version 1.0.1 de OpenOffice, toute l'installation se fait en mode graphique.

Note : C'est exactement pareil avec la version 1.1Beta (et surement aussi la 1.1).

Installation en mode mono-utilisateur

Vous utiliserez ce type d'installation si vous n'avez pas les droits de root sur votre système (i.e. vous n'êtes pas sur votre propre machine), ou bien si vous êtes le seul utilisateur de votre système et que vous ne projetez pas d'en ajouter plus tard. Sinon, lisez la section suivante.

Vous devez avoir récupéré une archive compressée OOo_1.0.1_LinuxIntel_install_fr.tar.gz (version 1.0.1 en français de OpenOffice. La première étape consiste alors à décompresser et détarer cette archive dans votre répertoire personnel :

anne@pingu$ tar xvzf OOo_1.0.1_LinuxIntel_install_fr.tar.gz

Il suffit alors de vous déplacer dans le répertoire créé puis de lancer le programme d'install :

anne@pingu$ cd install
anne@pingu$ ./setup

Vous devez vous retrouver dans un environnement graphique où vont défiler un certain nombre de boîtes de dialogue. Répondez aux questions, c'est très simple !

Remarque : java ne vous sera utile que si vous utilisez les bases de données d'OpenOffice.

Pour lancer OpenOffice :

anne@pingu$ /home/anne/OpenOffice/soffice

Pour désinstaller OpenOffice :

anne@pingu$ /home/anne/OpenOffice/setup

puis choisir suppression

Installation en mode multi-utilisateurs

Installation des fichiers communs

Pour démarrer ce type d'installation, il faut impérativement avoir l'identité root :

anne@pingu$ su -
Password:xxxxxx
root@pingu#

Puis on va lancer lancer le programme d'installation avec une option particulère :

root@pingu# /home/anne/install/setup -net

Là encore l'installation se fait en mode graphique. Choisissez les options souhaitées et notez le répertoire d'install. J'utiliserai /opt/OpenOffice.

Installation des fichiers propres à chaque utilisateur

Une fois l'installation des fichiers communs terminés, il reste à installer les fichiers de configuration de chaque utilisateur qui voudra accéder à OpenOffice.

Cette fois-ci, l'opération est à exécuter sous l'identité de l'utilisateur pour lequel vous voulez mettre à disposition OpenOffice. Exécutez les opérations suivantes :

anne@pingu$ cd /opt/OpenOffice
anne@pingu$ ./setup

Là encore vous vous retrouvez en interface graphique, vous répondez aux questions et le tour est joué !

Note: cette étape est en fait facultative puisque, de toutes façons, c'est le programme qui sera lancé par la première utilisation d'OpenOffice. Mais, il peut être astucieux de la faire pour un utilisateur que l'informatique embarrasse, par exemple : votre mère ;-)

Pour les opérations de lancement et désinstallation, on procédera de la même façon que pour l'installation de type mono utilisateur, les exécutables étant situés cette fois-ci dans le répertoire personnel de l'utilisateur (exemple : /home/anne/OpenOffice.org1.0.1)

Remarque : Pour faciliter le lancement de OpenOffice, n'oubliez pas de modifier la variable PATH du dit utilisateur

Exemple : pour l'utilisateur anne, je modifierai le PATH de la manière suivante :

anne@pingu$ cat .bashrc
...
PATH=$PATH:/home/anne/OpenOffice.org1.0.1

Petite astuce pour modifier le PATH de tous les utilisateurs de OpenOffice, sans avoir à modifier le .bashrc de chacun : il suffit de modifier /etc/bashrc de la manière suivante

root@pingu# cat /etc/bashrc
...
PATH=$PATH:~/OpenOffice.org1.0.1

Installation du correcteur orthographique

Le dictionnaire français du correcteur orthographique n'étant pas fourni dans le package d'installation de base d'openoffice. Vous pouvez également ajouter le dictionnaire des césures.

Il suffit ensuite de suivre les étapes ci-dessous :

  1. Il nous faut d'abord récupérer le dictionnaire français.
    Dézipper les fichiers récupérés ci-dessus dans le répertoire share/dict/ooo de votre installation :

    root@pingu# unzip /home/anne/fr_FR.zip -d /opt/OpenOffice/share/dict/ooo
    root@pingu# unzip /home/anne/hyph_fr.zip -d /opt/OpenOffice/share/dict/ooo

  2. Modifier le fichier dictionary.lst en ajoutant les lignes suivantes :

    root@pingu# cat /opt/OpenOffice/share/dict/ooo/dictionary.lst
    ...
    DICT fr FR fr_FR
    HYPH fr FR hyph_fr

  3. Lancer OpenOffice
  4. Aller dans le menu Outils >> Options >> Paramètres linguistiques. Vous trouverez 2 sous-menus à mettre à jour :
    • Langues : dans Environnement Linguistique sélectionner dans le menu déroulant Français(France)
    • Linguistique : sélectionner OpenOffice MySpell Spellchecker et AT Linux LibHnj Hyphenator puis cliquer sur Éditer. Dans le menu suivant, cocher OpenOffice MySpell Spellchecker dans la rubrique Orthographe, AT Linux LibHnj Hyphenator dans la rubrique coupure des mots puis sélectionner Français dans le menu déroulant

Et voilà c'est terminé :).

Installation avancée

Suite aux indications de Marc et Domi, je rajoute ici des infos pour un mode d'installation alternatif de OpenOffice. Il ne s'agit pas là d'une install standard mais qui peut convenir à des utilisateurs plus avancés

Nous n'installerons pas à partir du script setup mais install situé également à la racine du répertoire d'installation. Ci-dessous les principales options :

Exemple : Je souhaite installer OpenOffice en mode mono-utilisateur dans le répertoire /home/anne
anne@pingu$ /opt/install --prefix /home/anne --single

Accélérer le chargement de OpenOffice

Comme proposé par Philippe, j'insère ici un Truc&Astuce qu'il avait écrit pour permettre d'accélérer le chargement de OpenOffice, somme toutes assez long.

Le principe est de charger une partie de OpenOffice (qui sera donc résident en mémoire) afin d'accélérer le chargement des applications. Un peu de temps gagné si vous utiliseez fréquemment OpenOffice, mais aussi un peu de mémoire occupée ;-)

Chargement en mémoire (à mettre dans le dossier de démarrage de Kde, Gnome, ou ~/GNUstep/Library/WindowMaker/autostart si vous êtes sous WindowMaker) :

/chemin_vers_OO/OpenOffice.org1.0.1/soffice -plugin -quickstart &

Puis, pour charger une application OpenOffice:

Note: si vous êtes sous WindowMaker, utilisez plutot le dockapp Woo.


Il me semble important de rappeler que OpenOffice existe également pour Windows. A installer d'urgence pour faire progresser la place des Logiciels Libres ;)).

Dernières nouvelles !

[29/03/2003] : OpenOffice est sorti, il y a quelques jours, en version 1.1Beta. L'installation se déroule exactement de la même façon que pour OpenOffice 1.0.x. Cette version semble, au premier abord, se comporter bien mieux que la précédente : le chargement est plus rapide (sur mon 650Mz, la différence est notable). OpenOffice propose maintenant l'affichage d'une jauge qui indique ou en est le chargement (vue que c'est long il vaut mieux savoir où on en est !). La gestion des dictionnaires français (et autres) est toujours possible de la même façon que pour les versions 1.0.x. La gestion des hauts et pieds de pages est parait-il amélioré.

L'aperçu avant impression est maintenant utilisable puisqu'il permet (enfin !) de zoomer en fixant soi-même le niveau de zoom. Il semblerait que la gestion de l'antialiasing pour les polices soit bien meilleur. On peut aussi exporter directement un document en PDF (c'était possible mais il fallait passer par un outil externe comme kprinter : maintenant, il y a un bouton, c'est plus sympa)

Autre atout, il est maintenant possible d'utiliser l'outil de connection à une base de données avec une base MySQL (c'était plus ou moins possible avant en utilisant unixODBC). J'ai testé avec la base de données de Léa (qui est au format MySQL) en local (le server MySQL de Léa n'accepte que des requêtes locale pour des raisons de sécurité). J'ai pu en quelques clicks me connecter à la base de données. Le mot de passe est demandé lors de la première connection, mais peut être mémorisé pour les suivantes. On a ensuite accès à un interface graphique de construction de requète SQL. On établit graphiquement les liens entre les tables. Je ne peux comparer avec Access (enfin avec le constructeur de requète d'Access) puisque je ne l'ai jamais utilisé, mais je peux dire que ça m'a semblé très pratique et très simple d'emploi.

Le logiciel de présentation : Impress est maintenant capable de faire des exports en Flash. J'ai testé : ça marche ! C'est bien sur loin de pouvoir rivaliser avec le logiciel de MacroMédia, mais pour faire une présentation sur le Web, c'est rapide et fonctionel. Et puis sous Linux, on a, à ma connaissance, que ça !

Haut


L'Éditeur vi

par Jean-Christophe

L'éditeur des vrais hommes ;)


vi (prononcez vie-aïe ou [vi:ai]) est l'éditeur de texte de base sous Linux, vous risquez bien d'avoir à vous en servir au plus mauvais moment, c'est à dire lorsque plus rien d'autre ne fonctionne. Alors lisez ce qui suit avant d'être en pleine panique, vous serez content lorsque le moment sera venu de savoir modifier ce p*** de fichier de configuration qui empêche X de démarrer !

Que ceux qui se plaignent de vi essaient 'ex', ils ne seront pas décus :) Et se rendront compte des éditeurs qu'utilisaient leurs ancêtres !

Ce document vise uniquement à vous donner une référence rapide afin d'utiliser facilement vi.

Lancer VI

Pour lancer vi, c'est simple :
[root@taz X11]# vi XF86Config
Là, vi s'ouvre avec le fichier XF86Config dedans.

Se déplacer dans le texte

Vous pouvez utiliser les quatres flèches, mais aussi les touches [h], [j], [k] & [l] (pratique le jour où vous vous retrouvez connecté en telnet via un terminal ne disposant pas des touches fléchées !).

Les modes de VI

vi possède deux modes : le mode "Insert" et le mode normal. En mode normal vous en pouvez pas insérer de texte dans le fichier, mais les touches du clavier sont autant de touches de commandes. En mode Insert, les touches de commandes (notamment les lettres !) se transforment en vraies lettres que vous pouvez insérer dans le fichier.

Insérer du texte

Lorsque vi s'ouvre, il est en mode normal. Pour passer en mode Insert : En mode Insert, vous pouvez taper du texte, effacer avec la touche [Suppr] ou [Bkspace]. Pour quitter le mode Insert, tapez [Esc].

Remarque : à la suite de votre fichier, vous voyez des lignes vides commençant par le caractère '~'. C'est normal : cela signifie juste que ces lignes sont vides, et les caractères '~' ne seront bien sûr pas enregistrés dans votre fichier.

Les commandes

Après avoir quitté le mode Insert, ou avant d'y être entré, les touches du clavier correspondent à des commandes. Voici ci-dessous les commandes de base qui vous permettront de vous y retrouver :

Plus...

BooK m'a offert un super mug, "the vi reference mug", toujours posé à côté de mon écran et qui me sert plus qu'à boire du café. Voici donc les principales commandes de VI, avec lesquelles vous devriez pouvoir vous débrouiller :

Demander de l'aide

tapez [:]help pour en savoir plus sur vi, [:]help howto pour débuter...

Insérer et remplacer du texte

Ces commandes vous placent toutes en mode "insertion". Pour en sortir, tapez la touche [Esc].
 
[A] Ajouter du texte à la fin de la ligne
[a] Ajouter du texte après le curseur
[i] Insérer du texte avant le curseur
[o] ou [O] Créer une ligne vierge sous ou au dessus du curseur
[R] Remplacer le texte à partir du curseur
n[s] Supprime n caractères et passe en mode insertion

Autres commandes :
 

n[<][<] ou n[>][>] Indente n lignes vers la gauche ou vers la droite
[:]ab a b Utiliser a comme une abbréviation pour b
[r]c Remplacer le caractère sous le curseur par c

Effacer du texte

n[d][d] Efface n lignes à partir de la ligne courante ([d][d] efface la ligne courante)
n[x] Efface n caractères à partir du caractère courant ([x] efface juste le caractère courant)
n[d][w] ou n[d][b] Efface les n mots suivants ou précédents, à partir du mot suivant
[d][/]str Efface tout depuis le curseur jusqu'à la première occurence de str
[:]g/^$/d Efface toutes les lignes vides

Commandes sur les fichiers

[:]nfichier Ouvre le fichier fichier
[:]q! Quitter vi sans enregistrer les modifications
[Z][Z] ou [:]wq ou [:]x Enregistrer et quitter
[:]sh Lance un shell ; lorsque vous tapez exit dans ce shell, vous revenez à vi
[:]filenom Change le nom du fichier courant, équivalent à "enregistrer sous" lorsque vous enregistrerez.
[:]x,yw fichier Enregistre les lignes x à y dans le fichier fichier
[:]x,yw>>fichier Ajoute les lignes x à y à la fin du fichier fichier
[:]e! Recharge le contenu du fichier dans l'état où il se trouvait à l'ouverture
[:]r fichier insère le contenu de fichier à l'emplacement du curseur

Mouvements du curseur

[h], [l], [k], [j]
ou [<-], [->], [haut], [bas]
Déplace le curseur d'un caractère vers la gauche, la droite, le haut, le bas
[$] Déplace le curseur en fin de ligne.
[0] (zéro) Déplace le curseur en début de ligne.
n[b] ou n[w] Déplace le curseur de n mots vers la gauche ou vers la droite.
n[G] Aller à la ligne n
[Ctrl][B], [Ctrl][F]
ou [Page up], [Page down]
Ecran précédent, suivant
n[|] Aller à la colonne n
[z][Entrée] Positionner la ligne courante en haut de l'écran
[m][m] Déposer la marque nommée 'm' à l'endroit du curseur. Les marques sont nommées de a à z dans le fichier courant. ([m][x] dépose la marque x).

Chercher, remplacer et copier

[/]str[Entrée] Recherche str
[/]^str[Entrée] Cherche la prochaine ligne qui commence avec str
n[y][y] ou n[Y] Copie n lignes ([y][y] copie la ligne courante) dans le buffer
[n] Renouvelle la recherche précédente
[y][/]str Copie depuis le caractère courant, jusqu'avant str, dans le buffer
[y]n[w] Copie n mots à partir du mot courant, dans le buffer ([y][w] copie le mot courant)
[p] ou [P] Colle le contenu du buffer après ou avant le curseur (ou avant ou après la ligne courant si des lignes ont été copiées)
[:]x,ys/s1/s2/opt
Exemples :
[:]%s/toto/titi/g
Remplace tous les 'toto' par 'titi'
[:]1,$s/t[o,i]to/tata/
Remplace 'toto' ou 'tito' par 'tata'
Recherche entre les lignes x et y (optionnel) la chaîne s1 et la remplace par la chaîne s2 (pour remplacer chaque occurence, utiliser l'option g). Remarque : s1 et s2 sont en fait des regexp (expressions régulières), permettant d'écrire un masque générique, mais c'est un autre sujet... Je vous conseille de taper :help :s et :help regexp dans votre vi favori...
[:]x,yg/str/cmd Recherche entre les lignes x et y (optionnel) la chaîne str et exécuter la commande vicmd sur chaque occurence

Cool et inusité

[~] Transforme les minuscules en majuscules et vice-versa
[.] (point) Répéte la dernière commande
[x][p] Echange le caractère courant avec le suivant
n[J] Supprime n retours à la ligne depuis la ligne courante
[d][']['] Efface tout de la ligne d'où on est parti par [G] jusqu'à la ligne courante
[d]['][m] Efface tout de la ligne de la marque (posée par [m][m]) jusqu'à la ligne courante
[y][']['] Copie tout de la ligne d'où on est parti par [G] jusqu'à la ligne courante
[y]['][m] Copie tout de la ligne de la marque (posée par [m][m]) jusqu'à la ligne courante
[:]%!sort Trie le fichier en cours d'édition
[:]%s/[Ctrl][Q]
[
Ctrl][M][Entrée]
Remplace les CRLF par des LF, plutôt supprime les CR (très utile).
Explication :
 : fait passer en mode ligne,
 % indique que la commande porte sur toutes les lignes du fichier,
 s commande de substitution,
 / début de la chaîne à remplacer,
 Ctrl-Q indique que le caractère qui suit doit être pris tel quel, même s'il s'agit d'un caractère de contrôle,
 Ctrl-M c'est toute la différence entre un CRLF pour Windows et un LF pour Unix,
 Entrée signale qu'on a terminé de taper la commande, et notamment que la chaîne de remplacement est vide.
[:]syntax on Active la coloration syntaxique (dans vim)
[:]set number Affiche le numéro de ligne devant chaque ligne

Haut


Utilisation d'emacs

par Fred

Emacs est un éditeur qui peut tout faire (mettre en couleur vos sources, gérer vos mails, browser internet, lancer des commandes) et même l'édition de fichier texte ;).
NDJCC : Où vous comprendrez bientôt pourquoi on surnomme cet éditeur Escape-Meta-Alt-Control-Shift ;)


Introduction

L'objectif de ce document n'est pas de faire de vous un pro d'emacs, mais plutôt de vous montrer que le monstre qu'est emacs n'est finalement pas si complexe que cela d'utilisation pour peu que l'on connaisse quelques fonctions élémentaires. Cette présentation sera donc fort sommaire. Évidement il faut fournir un petit effort de mémorisation.
Mais, vous allez me dire : "Pourquoi utilisez emacs, alors que mes autres éditeurs sont plus simples ?" D'abord parce qu'emacs est présent sur presque toutes les plates-formes (MS DOS, Win$$$, Unix, Linux et même d'autres). Ensuite parce qu'il fonctionne aussi bien en mode texte qu'en mode graphique. Enfin parce que vous êtes allergique à la puissance brutale de vi ! (emacs se prononce émax ...)

L'écran d'emacs

L'écran d'emacs (que ce soit un terminal ou une fenêtre) se divise en (au moins) quatre parties :

Les commandes

Quand, vous utiliserez emacs, il vous arrivera de faire des erreurs dans l'entrée d'une commande, pour abandonner celle-ci tapez deux fois la touche <Echap>.
Dans presque toutes les combinaisons de touches, vous pouvez remplacer l'appui sur Alt par une pression de Echap.

Avec emacs, la plupart des commandes sont entrées avec les modificateurs Ctrl ou/et Alt. Le nombre de commandes disponibles dans emacs étant bien plus important que deux fois le nombre de touche du clavier (même s'il n'est heureusement pas nécessaire de les connaître toutes pour utiliser emacs confortablement), il faut utiliser ces modificateurs d'une façon légèrement différente de celle d'autres logiciels.

Pour les commandes simples, c'est « simple » : vous tapez le modificateur avant la touche de « fonction » et en la maintenant appuyée vous appuyez sur la touche de « fonction ».

Exemple : pour utiliser la commande d'effacement de ligne (qui est : Ctrl+k) vous appuyez sur Ctrl, et en maintenant Ctrl appuyée vous appuyez sur k, puis vous lâchez les deux touches.
Pour les commandes complexes, un exemple vaut mieux qu'un long discourt :
Pour annuler une série de changement dans une région, la commande est : Ctrl+u Ctrl+x u, cela signifie que vous devez tapez :
Ctrl+u, lâchez les touches (au moins le 'u'), puis :
Ctrl+x, lâchez les touches, puis :
u

Le curseur

Pour déplacer dans emacs, c'est simple : on utilise les touches fléchées (haut pour aller en haut, etc. ;). Les combinaisons de touches peuvent aussi être utilisées. Notez que les combinaisons précédées de Alt ont une portée plus grande (généralement sur des mots) que celles précédées par Ctrl.

Vous disposez également des combinaisons suivantes :
 
Combinaison de touche
Effet
Combinaison de touche
Effet
Ctrl+a
Début de ligne
   
Ctrl+e
Fin de ligne
   
Ctrl+f
Un caractère à droite (Forward)
Alt+f
Un mot à droite
Ctrl+b
Un caractère à gauche (Backward)
Alt+b
Un mot à gauche
Ctrl+n
Une ligne en bas (Next)
   
Ctrl+p
Une ligne en haut (Previous)
   
Ctrl+<
Début de ligne
   
Ctrl+>
Fin de ligne (nécessite shift)
   

Effacer du texte

Combinaison de touche
Effet
Combinaison de touche
Effet
<DEL>
Efface le caractère avant le curseur
Alt+<DEL>
Efface jusqu'au début du mot précédant le curseur
Ctrl+d
Efface le caractère après le curseur
Alt+d
Efface jusqu'à la fin du mot suivant le curseur
Ctrl+k
Efface la ligne sous le curseur (Kill)
Alt+k
Efface jusqu'à la fin du texte
Ctrl+x u
Annule le dernier changement
   
Ctrl+_ (souligné)
Annule le dernier changement
   
Ctrl+u Ctrl+x u
Annule une série de changement dans cette région
   
Ctrl+x Ctrl+o
Efface les lignes blanches suivant le curseur
Alt+z <CHAR>
Efface jusqu'à la prochaine occurrence du caractère <CHAR>

Gestion des fichiers

Combinaison de touche
Effet
Combinaison de touche
Effet
Ctrl+x Ctrl+f <NOM>
Ouvre (ou crée s'il n'existe pas) le fichier <NOM>
Ctrl+x Ctrl+r <NOM>
Ouvre un fichier en interdisant les changements
Ctrl+x 4 f <NOM>
Ouvre (ou crée s'il n'existe pas) le fichier <NOM> dans une autre fenêtre (partage l'écran)
Ctrl+x 5 f <NOM>
Ouvre (ou crée) le fichier <NOM> dans un autre cadre (ne partage pas l'écran)
Ctrl+x Ctrl+s
Sauve le fichier sous son nom (Save)
Ctrl+x s
Permet de sauvegarder tous les fichiers ouverts (après confirmation de l'utilisateur)
Ctrl+x Ctrl+w
Sauve le fichier sous un autre nom (Write)
   

Attention :

Pour créer un nouveau fichier ne lancez pas emacs sans paramètre. Lancez le en précisant un nom de fichier inexistant ; il sera créé par emacs. Ou lancez emacs sans paramètre, puis ouvrez un fichier inexistant.

Répétition de commande

Vous pouvez préciser à emacs de répéter une commande plusieurs fois. Pour cela vous devez la précéder d'un des préfixes suivants :
 
Combinaison de touche
Effet
Ctrl+u <NOMBRE> <COMMANDE>
Répète <COMMANDE> <NOMBRE> fois
Ctrl+u <COMMANDE>
Répète <COMMANDE> quatre fois

Vous pouvez également dire à emacs de répéter la dernière commande en tapant :

Ctrl+x z
à la suite de la dite commande. Exemple :
Ctrl+u 20 Ctrl+d (efface 20 caractères) Ctrl+x z z (efface encore 20 (premier z) + 20 (second z) caractères supplémentaires).

Les régions

Création des régions

Dans d'autres éditeurs, on peut sélectionner du texte avec le curseur (par exemple en maintenant la touche <shift> enfoncée). On peut évidement sélectionner du texte avec emacs, mais il ne fonctionne pas exactement comme peut s'y attendre l'utilisateur d'autres éditeurs. Dans emacs la zone sélectionnée est toujours définie entre une marque déposée par l'utilisateur et la position précédant le curseur (plus précisément entre la position du curseur et la position précédant celle-ci). Ainsi, pour définir une région, vous déposez une marque (voir ci-dessous) à une extrémité de la région, puis vous déplacez le curseur à l'autre extrémité.

Alors comment déposer cette marque ?

Ctrl+<espace>
ou
Ctrl+@
Attention : la marque est invisible ! Pour voir où elle se trouve, utilisez :
Ctrl+x Ctrl+x
qui échange la position du curseur avec la position de la marque. Utilisez-la une seconde fois pour revenir à la position précédente.

Attention : c'est un échange effectif : la marque devient la position du curseur !

Attention : à partir du moment ou vous avez posez la marque, il existe toujours une région !

Copier/Couper/Coller

Combinaison de touche
Effet
Combinaison de touche
Effet
Ctrl+w
Efface la région et la dépose dans le buffer (idem couper)
Alt+w
Copie la région dans le buffer
Ctrl+y
Colle (Yank) le texte précédemment coupé
Alt+y
Colle tous les textes précédemment coupés
Ctrl+Alt+w
Ajoute la région à la région déjà présente dans le buffer
   

Modification des régions

Combinaison de touche
Effet
Combinaison de touche
Effet
Ctrl+x Ctrl+u
Met la région en majuscule (Uppercase)
Ctrl+x Ctrl+l
Met la région en minuscule (Lowercase)
Ctrl+x <TAB>
Indente la région
   

Régions rectangulaires

Combinaison de touche
Effet
Ctrl+x r k
Coupe la région rectangulaire
Ctrl+x r d
Efface la région rectangulaire (pas dans le buffer)
Ctrl+x r y
Colle la région rectangulaire précédemment coupée
Ctrl+x r t <RET> chaîne <RET>
Ajoute « chaîne » au début de toute les ligne de la région rectangulaire

Les fenêtres d'emacs

Les fenêtres au sens d'emacs, ne sont pas celles que l'on a l'habitude de voir : elles ne peuvent pas se recouvrir ! Si vous voulez utilisez emacs avec des fenêtres qui se recouvrent, il faut voir du côté des cadres (frame) que je ne décrirais pas ici.
Les fenêtres d'emacs sont des zones rectangulaires qui divise la fenêtre (au sens X Window) d'emacs verticalement ou horizontalement.

Pour diviser l'écran d'emacs en deux fenêtres et les manipuler, il faut utiliser :
Combinaison de touche
Effet
Ctrl+x 2
pour couper horizontalement en 2 la fenêtre où se trouve le curseur 
Ctrl+x 3
pour couper verticalement en 2 la fenêtre où se trouve le curseur
Ctrl+x o (other)
pour changer de fenêtre active
Ctrl+x 1
pour ne garder que la fenêtre du curseur
Ctrl+x 4 Ctrl+f <NOM>
pour ouvrir un fichier dans une autre fenêtre
Ctrl+x 4 d <NOM>
pour afficher le contenu d'un répertoire dans une autre fenêtre

Haut


Lire ses courrier avec Gnus

par Mathieu Roy

Emacs is not built by hate of vi. vi is irrelevant. It is no more then a strange punishment that the unbelievers submit themselves to -- Accessoirement, on ne peut lire ses courriels avec un gnus sous vi.


Pourquoi gnus ?

Gnus est un lecteur de newsgroups (quel anglicisme horrible !) qui est fournit avec GNU Emacs. Il peut aussi servir de lecteur de courriel. Les avantages que j'y trouve sont les suivants :

Prérequis

Evidemment, il est de bon goût d'avoir Emacs installé sur son ordinateur. Il est aussi préférable d'être un peu familier avec Emacs. Nous allons aussi faire usage de procmail et fetchmail, matériel qui devrait être présent sur tout GNU/Linux décent.

L'épreuve demande un peu de tenacité. Mais ça doit être jouable.

Restez loggué et faites toutes les manips avec votre utilisateur normal (sauf précision contraire).

Télécharger les courriers

Vous êtes en train de le comprendre : Emacs ne va pas télécharger vos courriers, nous allons faire appel à fetchmail (télécharge) et procmail (distribue). Autant laisser faire chaque outil ce qu'il fait parfaitement. Cela vous permettra d'utiliser votre conf fetchmail et procmail avec d'autres lecteurs de courriel, si une folle envie vous en prennait.

Le .forward

Ce fichier définit qui doit gérer la redistribution de courrier arrivé en local pour l'utilisateur. Tapez ce qui suit, cela suffira :

echo "|/usr/bin/procmail" > ~/.forward

Le .procmailrc

Premièrement, il faut créer un dossier où procmail stockera les courriers arrivés, dans différents fichiers selon la configuration. Ici, il s'agit de ~/.mail-gnus

mkdir ~/.mail-gnus

Ensuite, il faut créer un fichier ~/.procmailrc de configuration comme celui-ci :

PATH=/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/.mail-gnus # You'd better make sure it exists
DEFAULT=$MAILDIR/inbox
LOGFILE=$HOME/.from_procmail
LOCKFILE=$HOME/.lockmail

# Tout les courriers venant ou allant vers une adresse chez gnu.org
# sont posés dans une boîte appellée gnu-devel.
:0
* ^[From|To|Cc].*@gnu.org
gnu-devel

# Tout les autres courriers iront dans $DEFAULT,
# c'est-à-dire inbox.

Le .fetchmailrc

Après avoir configuré la redistribution de courrier en local, nous allons maintenant configurer le téléchargement de courrier.

Voici un exemple pour un compte pop3. Il faut bien entendu substituer moa par l'utilisateur local destinataire, yeupou par le login free.fr et nibelungen par le nom de la machine hôte (hostname quoi).

# Général
set syslog
set bouncemail
set no spambounce
set properties ""

# Chaque compte sur chaque serveur
poll pop.free.fr with proto POP3
        user 'yeupou' there with password 'xxx' is 'moa@nibelungen' here

Ensuite, il faudrait que fetchmail tourne en démon. La commande suivante devrait faire l'affaire :

fetchmail -d60 --fetchmailrc /home/moa/.fetchmailrc --norewrite

L'idéal est d'avoir ce démon au démarrage de la machine (ajoutez cette ligne dans /etc/rc.local) ou lors de votre login (ajoutez cette ligne dans le fichier qui gère votre session - par exemple ~/.Xclients ou ~/.xinitrc).

Si fetchmail tourne et que vous avez reçu du courrier, alors il devrait se trouver dans un (ou des) fichier(s) dans le dossier ~/.mails-gnus

Adapter son .emacs

Nous allons maintenant signaler à Emacs l'existence de gnus. Il suffit de copier-coller ce qui suit dans votre ~/.emacs.

;; Definit Gnus comme lecteur courriel
(custom-set-variables
 '(read-mail-command (quote gnus))
 '(message-directory "~/.Mail/"))

;; Definit Galeon comme brouteur web, pour suivre les liens
(setq browse-url-browser-function 'browse-url-generic
      browse-url-generic-program "galeon")

Créer son .gnus

Et nous sommes maintenant dans le vif du sujet, la configuration de gnus. Tout ce qui suit doit être ajouté dans le fichier ~/.gnus

Identité

Corrigez nom et adresse courriel.

;;**** BASIC IDENTITY
(setq user-full-name "Votre Nom"
      user-mail-address "votre@courriel.org"
      mail-user-agent (quote message-user-agent))

;; Def charset
(setq gnus-default-charset (quote iso-8859-15)
      gnus-default-posting-charset (quote iso-8859-15))

(message "gnus.el: BASIC IDENTITY initialized")

Arrivée du courrier

Rien à changer si vous avez suivi ce qui précède.

;;*******************
;;***** GETTING MAILS

;; In mail-source, procmail store files that
;; We store mails here - this is also defined in my .emacs,
;; it's the only way I found to avoid apparition of ~/Mail/.
(setq gnus-directory "~/.News/")
(setq message-directory "~/.Mail/")

;; fetchmail previously downloaded.
(setq mail-sources
      (list '(directory
              :path "~/.mail-gnus/"
              :suffix ""
       ))
      )

;; We choose nnml: everybody says it's the fastest backend on earth.
(setq gnus-select-method '(nnml ""))

;; We trash duplicates mails.
(setq nnmail-treat-duplicates 'delete)

;; We just read mail, no newsgroups.
(setq gnus-check-new-newsgroups nil)

(message "gnus.el: GETTING MAILS initialized")

Mime Types

Rien à changer si vous avez suivi ce qui précède. Je ne pourrais pas vous donner de détails à ce propos, que je n'ai fait que copier-coller à partir d'un autre .emacs (mais ça marche bien).

;;************************
;; MIME Settings for PGnus
(require 'mm-util)
(defun mm-read-charset (prompt)
  "Return a charset."
  'iso-8859-15)
(setq gnus-default-posting-charset (quote iso-8859-15))
(setq gnus-article-decode-mime-words t)
(setq gnus-article-decode-charset 1)
(setq gnus-mime-view-all-parts t) ; View all the MIME parts in current article
(setq gnus-ignored-mime-types
      '("text/x-vcard"))
(setq gnus-unbuttonized-mime-types nil) ; MIME type -> no buttons when rendered
(setq
 ;; Add buttons
 gnus-treat-buttonize t
 ;; Add buttons to the head
 gnus-treat-buttonize-head 'head
 ;; Emphasize text
 gnus-treat-emphasize t
 ;; Fill the article
 gnus-treat-fill-article nil
 ;; Remove carriage returns
 gnus-treat-strip-cr 'last
 ;; Hide headers
 gnus-treat-hide-headers 'head
 ;; Hide boring headers
 gnus-treat-hide-boring-headers 'head
 ;; Hide the signature
 gnus-treat-hide-signature nil
 ;; Hide cited text
 gnus-treat-hide-citation nil
 ;; Strip PGP signatures
 gnus-treat-strip-pgp 'last
 ;; Strip PEM signatures
 gnus-treat-strip-pem 'last
 ;; Highlight the headers
 gnus-treat-highlight-headers 'head
 ;; Highlight cited text
 gnus-treat-highlight-citation 'last
 ;; Highlight the signature
 gnus-treat-highlight-signature 'last
 ;; Display the Date in UT (GMT)
 gnus-treat-date-ut nil
 ;; Display the Date in the local timezone
 gnus-treat-date-local nil
 ;; Display the date in the original timezone
 gnus-treat-date-original nil
 ;; Strip trailing blank lines
 gnus-treat-strip-trailing-blank-lines 'last
 ;; Strip leading blank lines
 gnus-treat-strip-leading-blank-lines 'last
 ;; Strip multiple blank lines
 gnus-treat-strip-multiple-blank-lines 'last
 ;; Strip all blank lines
 ;; gnus-treat-strip-blank-lines nil
 ;; Treat overstrike highlighting
 gnus-treat-overstrike 'last
 )
;;* show the text/plain part before the text/html part in multpart/alternative
(require 'mm-decode)
;;;-- no way do compile with this
;;;--(push "text/plain" mm-alternative-precedence)
;;;--(setq mm-alternative-precedence "text/plain")

(message "gnus.el: MIME initialized")

Archives

Rien à changer si vous avez suivi ce qui précède. Je ne pourrais pas vous donner de détails à ce propos, que je n'ai fait que copier-coller à partir d'un autre .emacs (mais ça marche bien).

;;***********************
;; ARCHIVES: one file per month
(setq gnus-message-archive-group
      '((if (message-news-p)
            "misc-news"
          (concat "mail." (format-time-string
                           "%Y-%m" (current-time)))))
      )

(message "gnus.el: ARCHIVES initialized")

Interface

Rien à changer si vous avez suivi ce qui précède. Logiquement ça marche, lisez les commentaires pour personnaliser.

;;***********************
;;************* INTERFACE

;; Here I define how to display subject lines etc...
;; I wanna see thoses groups everytime
(setq gnus-permanently-visible-groups
"^nnml\\|^nnfolder\\|^inbox\\|^gnu-devel\\|^savannah-hackers\\|^trash")

;; I like it verbose
(setq gnus-verbose 2000)

;; I wanna be able to access my previous post
(setq gnus-fetch-old-headers t)

;; I wanna keep track of the last time I rode a group
(add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)

;; *Group* buffer: how to format each group entry.
(setq gnus-group-line-format
"%M%m %4N/%4t non-lus: %(%-20,20g%) depuis le %2,2~(cut 6)\
d/%2,2~(cut 4)d à %2,2~(cut 9)dh%2,2~(cut 11)d\n"
      ;;
      ;; %var details C-h i
      ;;`M' An asterisk if the group only has marked articles.
      ;;'N' Number of unread articles.
      ;;`t' Estimated total number of articles.
      ;;`G' Group name.
      ;;`D' Newsgroup description.
      ;;`m' `%' (`gnus-new-mail-mark') if there has arrived new mail to the
      ;;    group lately.
      ;;`D' Last time the group as been accessed.
      ;;
      ;; For the record, a default group line format
      ;;(setq gnus-group-line-format "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")
      )

;; *Summary*: how to format each mail entry.
(setq gnus-summary-line-format
"%-1R %-1U  %-15,15n | %2,2~(cut 6)o/%2,2~(cut 4)o %2,2~(cut 9)oh%2,2~(cut 11)\
o | %I%(%0,40s%)\n"
      gnus-summary-same-subject ">>>"
      gnus-summary-mode-line-format "%V: %%b"
      ;; %var details C-h i
      ;; `s' Subject if the article is the root of the thread or the previous
      ;;     article had a different subject, `gnus-summary-same-subject'
      ;;     otherwise.  (`gnus-summary-same-subject' defaults to `""'.)
      ;; `n' The name (from the `From' header).
      ;; `L' Number of lines in the article.
      ;; `I' Indentation based on thread level (*note Customizing Threading::).
      ;; `>' One space for each thread level.
      ;; `<' Twenty minus thread level spaces.
      ;; `U' Unread.
      ;; `R' This misleadingly named specifier is the "secondary mark".  This
      ;;     mark will say whether the article has been replied to, has been
      ;;     cached, or has been saved.
      ;; `D'  `Date'.
      ;; `d'  The `Date' in `DD-MMM' format.
      ;;`o'     The `Date' in YYYYMMDD`T'HHMMSS format.
      ;;
      ;; For the record the default string is
      ;; `%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n'.
      )

;; I remove mailing list identifiers for mail from list I read often, that
;; are already stored in a particular directory
(setq gnus-list-identifiers 
      '(  "\\[savannah-hackers\\]"
  "\\[savannah-dev\\]" 
  ))

;; I do not like graphics smileys.
(setq gnus-treat-display-smileys nil)

;; I wanna particular dimensions while reading mails
(setq 
 gnus-build-sparse-threads 'some
 gnus-use-trees t
 gnus-generate-tree-function 'gnus-generate-horizontal-tree
 gnus-tree-minimize-window nil)

(if  (or (not (getenv "DISPLAY"))
         (string-match ":0" (getenv "DISPLAY")))
    (progn
      (gnus-add-configuration  
       '(article
         (vertical 1.0
                   (summary 0.40 point)
                   (article 1.0)
                   )
         )))
  (progn
    (gnus-add-configuration
     '(article
       (vertical 1.0
   (summary 0.40 point)
   (article 1.0)
   )
       )))
  )

(setq font-lock-maximum-decoration t
      font-lock-maximum-size nil)
(require 'font-lock)
(set-face-foreground 'gnus-summary-normal-ticked-face "pale violet red")
(set-face-foreground 'gnus-summary-high-ticked-face "pale violet red")

(message "gnus.el: INTERFACE initialized")

Réponses

Corrigez nom et adresse courriel.

; Hey, please remove my address from To: and Ccc: while I do a 
;; wide reply.
;; seen at http://www.gnusfr.org/gen.php3/2002/04/02/36,0,1,0.html
(setq message-dont-reply-to-names 
      "utilisateur@\\(gnu\\|free\\).\\(org\\|fr\\)")

;; I want my replies to begin with something like "<user> writes:"
(defun message-insert-citation-line ()
  "La fonction qui insere une ligne aux reponses"
  (when message-reply-headers
    ;; In savannah-hackers group, we talk english
    (if (string-equal gnus-newsgroup-name "savannah-hackers")
 (insert (mail-header-from message-reply-headers) " said:\n\n")
      (insert (mail-header-from message-reply-headers) " a tapoté :\n\n")
      )))

(message "gnus.el: REPLY initialized")

Plusieurs Identités

Pour utiliser ceci, vous devez mettre la main sur gnus-pers.el dispo http://www.comsecmilnavpac.net/elisp/ en théorie. Vous devez modifier ce contenu en lien avec votre utilisation. Dans la première partie, on associe des identités à des groupes.

(custom-set-variables
 ;; This is the hash  "group name => identity"
 '(gnus-personality-electric-headers (quote 
          (
           (any ".*u-strasbg.*" "formel")
           (any ".*gnu.*" "gnu")
           )))
;; There are my identities
 '(gnus-personalities (quote 
                       (
     ; usual
   ("default" 
     "mathieu <yeupou@coleumes.org>"
    ""
     "~/.signature"
     )
     ; GNU voluteering
   ("gnu"
    "Mathieu Roy <yeupou@gnu.org>"
    ""
    "~/.signature_gnu"
     )
     ; Formal, neutral
   ("formel"
    "Mathieu Roy <mathieu.roy@coleumes.org>"
    ""
    "~/.signature_formel"
     )
   )))
 '(gnus-pers-cc-fix nil)
 )
(require 'gnus-pers)
(gnus-personality-init)

(message "gnus.el: IDENTITIES initialized")

Utiliser gnus

Et voilà, le stade de la configuration est passé. Il suffit de lancer emacs, et d'y lancer gnus, en tapant M-x gnus (M = Meta, donc alt).

Envoyer un courriel

Une fois gnus lancé, tapez m. Remplissez les champs qui vont bien. Par exemple, envoyez vous un courrier, pour tester le tout. Vous pouvez changer votre identité en tapant C-cC-l. Pour finir, tapez C-c C-c pour envoyer le courrier.

Consulter les courriels reçus

Il faut maintenant dire quels groupes (en fait, fichiers crées par procmail, selon le .procmailrc) vous desirez lire. Vous regardez dans le menu "Groups" -> "Subscribe" -> "Subscribe to a group". Il vous est demandé de taper le nom du groupe. Tapez tabulation. Si un courriel à bien été reçu, au moins un groupe doit être disponible. Sélectionnez le... Rentrez dans le groupe en tapant entrée... Utilisez les menus et apprennez les raccourcis claviers :)

FDL

Ce document est libre, selon les termes de la licence GNU FDL

Haut


Signer et crypter avec GnuPG

par Fred

ou comment préserver votre identité sur internet.


Introduction à GPG

GPG signifie : GNU Privacy Guard. C'est un outil qui permet deux choses, à priori, distinctes : Il fonctionne suivant le principe suivant, chaque personne utilisant GPG dispose de deux clés :

L'envoi d'un mail signé se passe de la manière suivante, j'écris mon message comme d'habitude, je le passe à GPG avec le nom de la clé que je souhaite utiliser pour signer ce message, il me demande la pass phrase (les clés secrètes sont 'protégées' par une pass-phrase -- mot de passe), il me génère un fichier de signature (ou équivalent : un fichier signé, suivant les options) que j'envoie avec mon message (en pièce attachée par exemple). Le destinataire reçoit mon message, il faut qu'il dispose de ma clé publique (ce qui est simple puisque tout le monde peut la consulter, par exemple sur Léa). Il passe mon message et la signature à GPG qui vérifie alors la signature.

Pour crypter un message, c'est similaire. Je dois connaître la clé publique du destinataire. Je passe à GPG le message à crypter et l'identité du destinataire (ou la clé, c'est pareil pour GPG puisque qu'il maintient une base de données des clés dont vous disposez). GPG me renvoie un message crypté (que même moi, je ne peux décrypter). Je l'envoie au destinaire qui le décrypte en utilisant sa clé secrète.

Ce document est très axé 'ligne de commande' mais même ceux qui préfèrent utiliser des outils graphiques peuvent le lire avec profit.

Générer les clés

Avant toutes choses, il nous faut GPG. Vous le trouverez sur le CD de votre distribution ou, à défaut sur : http://www.gnupg.org.

Puis, il nous faut nos deux clés. Nous allons demander à GPG de les générer.

  1. On initialise gpg :
    [LFS raoul@gandalf raoul]$ gpg --list-keys gpg: WARNING: using insecure memory!
    gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations
    gpg: /home/raoul/.gnupg: répertoire créé
    gpg: new configuration file `/home/raoul/.gnupg/gpg.conf' created
    gpg: keyblock resource `/home/raoul/.gnupg/pubring.gpg': erreur d'ouverture de fichier
    Le message d'erreur est normal : nous n'avons encore aucune clé.
  2. On génère les deux clés (GPG va nous poser de multiples questions, les réponses seront notées en gras) :
    [LFS raoul@gandalf raoul]$ gpg --gen-key
    gpg (GnuPG) 1.2.0; Copyright (C) 2002 Free Software Foundation, Inc.
    This program comes with ABSOLUTELY NO WARRANTY.
    This is free software, and you are welcome to redistribute it
    under certain conditions. See the file COPYING for details.

    gpg: WARNING: using insecure memory!
    gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations
    gpg: le porte-clés `/home/raoul/.gnupg/secring.gpg` a été créé
    Sélectionnez le type de clé désiré:
    (1) DSA et ElGamal (par défaut)
    (2) DSA (signature seule)
    (5) RSA (signature seule)
    Votre choix ? 1
    Ici, choississez l'option par défaut, c'est celle qui est la plus sûre.
    La paire de clés DSA fera 1024 bits.
    Préparation à la génération d'une nouvelle paire de clés ELG-E.
    la taille minimale est 768 bits
    la taille par défaut est 1024 bits
    la taille maximale conseillée est 2048 bits
    Quelle taille de clé désirez-vous ? (1024) 2048
    Ici, choississez 2048 car les clés de 1024 bits ne sont plus vraiment sûres.
    La taille demandée est 2048 bits
    Spécifiez combien de temps cette clé devrait être valide.
    0 = la clé n'expire pas
    <n> = la clé expire dans n jours
    <n>w = la clé expire dans n semaines
    <n>m = la clé expire dans n mois
    <n>y = la clé expire dans n années
    La clé est valide pour ? (0) 0
    Ici, choississez ce que vous voulez, mais à priori votre clé n'a pas de raison particulière d'expirer.
    Key n'expire pas du tout
    Est-ce correct (o/n) ? o
    Répondez "o" si vous ne vous êtes pas trompé, "n" sinon ;-)
    Vous avez besoin d'un nom d'utilisateur pour identifier votre clé; le programme le construit à partir du nom réel, d'un commentaire et d'une adresse e-mail de cette manière:
    « Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de> »

    Nom réel: Raoul Machin
    Adresse e-mail: raoul.machin@mon-fai.org
    Commentaire: riton
    Entrez ici votre identité (faites attention à votre email, ce sera souvent lui qui servira à identifier avec quelle signature faire quelle chose (signer, crypter, vérifier, décrypter). Pour le commentaire, l'habitude est de mettre un surnom ou un titre.
    Vous avez sélectionné ce nom d'utilisateur:
    "Raoul Machin (riton) <raoul.machin@mon-fai.org>"

    Changer le (N)om, le (C)ommentaire, l'(E)-mail ou (O)K/(Q)uitter ? O
    Validez !
    Vous avez besoin d'un mot de passe pour protéger votre clé secrète.
    Entrez le mot de passe: xxxxxx
    Répétez le mot de passe: xxxxxx
    Le mot de passe est l'ultime protection de votre clé privée, choisissez-le avec précaution : il ne doit pas être trop long à taper car vous le taperez souvent, mais il doit être suffisamment complexe pour ne pas être cracké trop vite. Sachez quand même que si quelqu'un met la main sur votre clé secrète, vous pouvez la considérer comme corrompue : ce n'est qu'une affaire de temps.
    Un grand nombre d'octets aléatoires doit être généré. Vous devriez faire autre-chose (taper au clavier, déplacer la souris, utiliser les disques) pendant la génération de nombres premiers; cela donne au générateur de nombres aléatoires une meilleure chance d'avoir assez d'entropie.
    ++++++++++..++++++++++++++++++++.++++++++++.+++++...
    ...
    gpg: /home/raoul/.gnupg/trustdb.gpg: base de confiance créée
    les clés publique et secrète ont été créées et signées.
    clé marquée comme ayant une confiance ultime.

    pub 1024D/A39DDDD2 2002-10-18 Raoul Machin (riton) <raoul.machin@mon-fai.org>
    Empreinte de la clé = 3930 6F14 BD9D CB85 D027 40CB 9574 8EF6 A39D DDD2
    sub 2048g/0A66DCBD 2002-10-18
    Ça y est, vos clés sont générées. Vous pouvez remarquer que chaque clé a un numéro (celle marquée pub est la clé publique, celle marquée sub est la clé secrète), mais ce que vous voyez, ce ne sont pas les clés : seulement leur numéro (tout le monde peut les voir). Enfin, vous remarquez aussi que la clé publique possède une empreinte. Cette empreinte sert à "valider" l'identité de quelqu'un. Nous y reviendrons plus tard. Vous pouvez recommencer cela plusieurs fois si vous souhaitez signer vos messages suivant plusieurs identités (riton <coiffeur>, riton <musicien>, etc...)

Exporter sa clé publique.

Si personne ne connait votre clé publique, personne ne pourra vérifier l'authenticité de vos messages, ni vous envoyer des messages cryptés : alors à quoi ça sert que GPG, il se décarcasse ? ;-)

D'abord, exportons-la dans un fichier texte :

[LFS raoul@gandalf raoul]$ gpg --export --armor riton > ~/riton.asc
gpg: WARNING: using insecure memory!
gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations

Voila, votre clé publique est maintenant sauvée dans le fichier ~/riton.asc.

Vous pouvez coller votre clé publique sur tous vos messages. Mais c'est pénible : pour vous, mais aussi pour vos destinataires.

Vous pouvez, si vous disposez d'un espace sur le WEB (en http, ou ftp), la mettre sur votre espace et dans chaque message signaler où on peut trouver la clé avec une fin de message du style :

clé gpg: http://perso.mon-fai.org/~riton/gpg-sigs/riton.asc

Enfin, la méthode des pros de gpg : le serveur de clés. Rendez vous là : http://www.keyserver.net/en. Cliquez sur "ADD A KEY". Dans la zone texte "Paste your key here" : coller le contenu de votre "~/riton.asc" (en entier, sans rien ajouter, absolument rien, même pas un retour chariot). Puis cliquez sur "Submit this key to the keyserver". Votre clé est alors envoyée à plusieurs keyservers mondiaux et maintenant vous pouvez envoyer un message à n'importe qui, il pourra vérifier votre signature en consultant votre clé publique sur le serveur de clés.

Importer une clé publique.

Si votre correspondant ne vous a pas donné un moyen de télécharger le fichier contenant sa clé publique (Fred.asc) c'est que la clé doit se trouver sur un serveur de clé. Rendez vous sur http://www.keyserver.net/en et cliquez sur "SEARCH a KEY", tapez l'addresse de votre correspondant ou le numéro de sa clé. Et obtenez la clé. Sauvez la dans : Fred.asc (par exemple).

Nous disposons, donc, maintenant du fichier Fred.asc contenant la clé de Fred (la mienne !). Il nous faut l'ajouter à notre liste de clés (le trousseau : keyring in english) :

[LFS raoul@gandalf raoul]$ gpg --import Fred.asc
gpg: WARNING: using insecure memory!
gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations
gpg: key E64019B5: public key "Frédéric Bonnaud (Fred) <frederic.bonnaud chez laposte.net>" imported
gpg: Quantité totale traitée: 1
gpg: importée: 1

On peut vérifier de suite que tout est normal (même si le message précédant l'indique clairement) :

[LFS raoul@gandalf raoul]$ gpg --list-keys
gpg: WARNING: using insecure memory!
gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations
/home/raoul/.gnupg/pubring.gpg
------------------------------
pub 1024D/B60335AE 2002-10-18 Raoul Machin (riton) <raoul.machin@mon-fai.org>
sub 768g/8AE42FB0 2002-10-18

pub 1024D/E64019B5 2001-09-13 Frédéric Bonnaud (Fred) <frederic.bonnaud chez laposte.net>
sub 1024g/422AA63E 2001-09-13

Signer un message/document.

Je supposerais que le message que nous souhaitons signer est : ~/message.txt. Il y a plusieurs méthodes :

  1. La signature simple, binaire :
    [LFS raoul@gandalf raoul]$ gpg --default-key riton --detach-sign message.txt
    gpg: WARNING: using insecure memory!
    gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations

    Vous avez besoin d'un mot de passe pour déverrouiller la clé secrète pour l'utilisateur: "Raoul Machin (riton) <raoul.machin@mon-fai.org>" clé de 1024 bits DSA, ID B60335AE, créée le 2002-10-18

    Entrez le mot de passe: xxxxxxx
    Cela crée un fichier binaire contenant la signature : ~/message.txt.sig. Il faut l'envoyer avec le message lui-même, par exemple en pièce attachée.
  2. La signature simple, ascii :
    [LFS raoul@gandalf raoul]$ gpg --default-key riton --armor --detach-sign message.txt
    gpg: WARNING: using insecure memory!
    gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations

    Vous avez besoin d'un mot de passe pour déverrouiller la clé secrète pour l'utilisateur: "Raoul Machin (riton) <raoul.machin@mon-fai.org>" clé de 1024 bits DSA, ID B60335AE, créée le 2002-10-18
    Entrez le mot de passe: xxxxxxx
    Cela crée un fichier ascii (lisible, enfin presque) contenant la signature : ~/message.txt.asc. Il faut l'envoyer avec le message lui-même, si vous l'envoyez par email cela doit être une meilleure solution que la signature binaire. La signature ressemble à cela :
    -----BEGIN PGP MESSAGE-----
    Version: GnuPG v1.2.0 (GNU/Linux)

    owGbwMvMwCRYcZa5Yhuz6TrGNapJ3LmpxcWJ6al6JRUltuv/KiWnJmcqpBaXKJTm
    KUCluDrsmVkZQJIwjYJMy0MZ5kd3789++nx9qrrM3amnDRcsXOw5PZRhQcudquMS
    jmU2xzytOPVOPA4TTJbOAQA=
    =AAQr
    -----END PGP MESSAGE-----
  3. La signature dans le message en ascii :
    [LFS raoul@gandalf raoul]$ gpg --default-key riton --clearsign message.txt
    gpg: WARNING: using insecure memory!
    gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations

    Vous avez besoin d'un mot de passe pour déverrouiller la clé secrète pour l'utilisateur: "Raoul Machin (riton) <raoul.machin@mon-fai.org>" clé de 1024 bits DSA, ID B60335AE, créée le 2002-10-18

    Entrez le mot de passe: xxxxxxx
    Cela crée un fichier ascii (lisible, enfin presque) contenant la signature et le message : ~/message.txt.asc ressemblant :
    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    ceci est un message
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.2.0 (GNU/Linux)

    iD8DBQE9r/90eM0DeLYDNa4RAiHfAJ0YzqtxI9P3P8k4qBO5oqux3ePo6wCgnqYr
    u0Fp+PQc3mayA6znuWg2fT4=
    =gy4J
    -----END PGP SIGNATURE-----
    Là, vous n'avez que ce fichier à envoyer.
Normalement votre client mail doit savoir faire cela tout seul sans que vous vous en occupiez.

Vérifier un message signé.

Comme il y a plusieurs façons de signer, il y a plusieurs façon de vérifier la signature.

  1. Si le message vous arrive avec une signature séparée (message.txt + message.txt.sig ou message.txt.asc), alors, il suffit de faire :
    [LFS raoul@gandalf raoul]$ gpg --verify message.txt.asc message.txt
    gpg: WARNING: using insecure memory!
    gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations
    gpg: Signature faite ven 18 oct 2002 14:45:58 CEST avec une clé DSA ID B60335AE
    gpg: Bonne signature de "Raoul Machin (riton) <raoul.machin@mon-fai.org>"
    A ce moment vous pouvez avoir un message vous signalant que la validité de la clé ne peut être vérifiée : c'est normal, nous n'avons pas signé la clé de riton ni indiqué à quel point nous lui faisons confiance.
  2. Si le message vous arrive avec la signature (un seul fichier : message.txt.asc) : c'est encore plus simple :
    [LFS raoul@gandalf raoul]$ gpg --verify message.txt.asc
    gpg: WARNING: using insecure memory!
    gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations
    gpg: Signature faite ven 18 oct 2002 14:45:58 CEST avec une clé DSA ID B60335AE
    gpg: Bonne signature de "Raoul Machin (riton) <raoul.machin@mon-fai.org>"
    (Même remarque que précédemment)
Si, au lieu de vous renvoyer "Bonne signature", gpg vous renvoie :
gpg: Erreur de CRC; 43558e - fbd2e9
gpg: packet(2) too short

c'est que la signature n'est pas une signature gpg valable : la signature est corrompue (pas la clé).

S'il renvoie :

gpg: Signature faite ven 18 oct 2002 14:44:46 CEST avec une clé DSA ID B60335AE
gpg: MAUVAISE signature de "Raoul Machin (riton) <raoul.machin@mon-fai.org>"

je crois que c'est clair ;-) : le message a été modifié : il ne provient pas de "riton".

Pour Kmail, allez voir ce truc & astuce.

Crypter un message/document.

Pour crypter un message, le principe est le même que pour signer, sauf qu'il ne faut pas indiquer la "default-key" mais le "recipient" (ie : le destinataire du message/document).

  1. Crypter (binaire, à éviter, sauf problème de taille de message) :
    [LFS raoul@gandalf raoul]$ gpg --recipient riton --encrypt message.txt
    gpg: WARNING: using insecure memory!
    gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations
    Ceci crée message.txt.gpg, un fichier illisible.
  2. Crypter (ascii, à préférer)
    [LFS raoul@gandalf raoul]$ gpg --recipient riton --armor --encrypt message.txt
    gpg: WARNING: using insecure memory!
    gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations
    Ceci crée message.txt.asc, un fichier lisible (ou presque) utilisable directement par votre client mail.

Décrypter un message/document.

Vous avez reçu le message crypté : message.txt.gpg (ou message.txt.asc si l'option --armor a été utilisée). Pour le décrypter, quel que soit le format, il suffit de faire :

[LFS raoul@gandalf raoul]$ gpg --decrypt message.txt.gpg
gpg: WARNING: using insecure memory!
gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations

Vous avez besoin d'un mot de passe pour déverrouiller la clé secrète pour l'utilisateur: "Raoul Machin (riton) <raoul.machin@mon-fai.org>" clé de 768 bits ELG-E, ID 8AE42FB0, créée le 2002-10-18 (ID clé principale B60335AE)

Entrez le mot de passe: xxxxxxx
gpg: chiffré avec une clé de 768 bits ELG-E, ID 8AE42FB0, créée le 2002-10-18
"Raoul Machin (riton) <raoul.machin@mon-fai.org>"
ceci est un message
Cela décrypte le message sur la sortie standard (stdout). Pour sauver le message dans un fichier, il suffit d'utiliser une redirection :
[LFS raoul@gandalf raoul]$ gpg --decrypt message.txt.gpg > message.txt
gpg: WARNING: using insecure memory!
gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations

Vous avez besoin d'un mot de passe pour déverrouiller la clé secrète pour l'utilisateur: "Raoul Machin (riton) <raoul.machin@mon-fai.org>" clé de 768 bits ELG-E, ID 8AE42FB0, créée le 2002-10-18 (ID clé principale B60335AE)

Entrez le mot de passe: xxxxxxx
gpg: chiffré avec une clé de 768 bits ELG-E, ID 8AE42FB0, créée le 2002-10-18
"Raoul Machin (riton) <raoul.machin@mon-fai.org>"
Lisons le message :
[LFS raoul@gandalf raoul]$ cat message.txt
ceci est un message

Note: le mot de passe qui vous est demandé est bien entendu celui de votre clé privée (de celle correspondant à la clé publique utilisée pour le cryptage, au cas où vous en ayez plusieurs).

Edition des clés.

À quoi peut bien servir d'éditer les clés ? À indiquer à gpg a quel point vous leur faites confiance et/ou êtes sur de l'identité de la personne détentrice de la clé. Cela permet aussi d'ajouter une nouvelle identité pour la même clé (par exemple si vous avec plusieurs emails).

Je ne sais pas si des outils graphiques savent faire cela, mais c'est assez facile en ligne de commande. Pour modifier la clé de Fred, il suffit de taper :

gpg --edit-key Fred
Vous vous retrouvez alors sous le shell (ligne de commande) de gpg :
gpg (GnuPG) 1.2.0; Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

gpg: WARNING: using insecure memory!
gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations

pub 1024D/E64019B5 créée: 2001-09-13 expire: never confiance: -/-
sub 1024g/422AA63E créée: 2001-09-13 expire: never
(1). Frédéric Bonnaud (Fred) <frederic.bonnaud@laposte.net>

Commande>
Pour signifier à gpg que vous savez que la personne qui prétend posséder cette clé est la bonne, il faut suffit de la signer :
Commande> sign

pub 1024D/E64019B5 créée: 2001-09-13 expire: never confiance: -/-
Primary key fingerprint: 633F 57F8 E64D 844F 961C 5A1C 6C5B 2BA9 E640 19B5
Frédéric Bonnaud (Fred) <frederic.bonnaud@laposte.net>

Avec quel soin avez-vous vérifié que la clé que vous allez signer ?
Appartient-elle réellement à la personne sus-nommée ? Si vous ne savez
quoi répondre, entrez "0".

(0) Je ne répondrai pas. (default)
(1) Je n'ai pas vérifié du tout.
(2) J'ai un peu vérifié.
(3) J'ai vérifié très soigneusement.

Votre choix ? 2
Etes-vous vraiment sûr(e) que vous voulez signer cette clé
avec la vôtre: "Raoul Machin (riton) <raoul.machin@mon-fai.org>"

J'ai un peu vérifié cette clé.

Signer réellement ? oui

Vous avez besoin d'un mot de passe pour déverrouiller la clé secrète pour l'utilisateur: "Raoul Machin (riton) <raoul.machin@mon-fai.org>" clé de 1024 bits DSA, ID B60335AE, créée le 2002-10-18

Entrez le mot de passe: xxxxxxx

Pour savoir comment vérifier l'identité d'un signataire (attendez un peu, ça vient ;-).

Ensuite vous devez indiquer à gpg à quel point vous faites confiance à la personne possédant cette clé :

Commande> trust
pub 1024D/E64019B5 créée: 2001-09-13 expire: never confiance: -/-
sub 1024g/422AA63E créée: 2001-09-13 expire: never
(1). Frédéric Bonnaud (Fred) <frederic.bonnaud@laposte.net>

À quel point avez-vous confiance en cet utilisateur pour la vérification des clés des autres utilisateurs (vous pouvez vérifier son passeport, vérifier les empreintes de diverses sources...) ?
1 = ne sais pas
2 = je ne fais PAS confiance
3 = je crois marginalement
4 = je fais entièrement confiance
5 = je donne une confiance ultime
m = retour au menu principal

Votre décision ? 3

pub 1024D/E64019B5 créée: 2001-09-13 expire: never confiance: m/-
sub 1024g/422AA63E créée: 2001-09-13 expire: never
(1). Frédéric Bonnaud (Fred) <frederic.bonnaud@laposte.net>
Please note that the shown key validity is not necessarily correct unless you restart the program.

Commande>

Ne faites pas trop confiance aux gens que vous n'avez jamais rencontré (dans ce cas confiance marginale est un bon choix), vous pouvez sans doute faire une confiance ultime uniquement à vos amis. Ne faites pas confiance à quelqu'un (même un ami) dont vous savez qu'il signe toutes les clés n'importe commment. Cela affaiblit la chaine de validité des clés et diminue de beaucoup l'intérêt d'utiliser gpg.

Enfin sauvez les modifications :

Commande> save

Voilà, ce n'est pas la mer à boire.

Vérification de la validité des clés.

La sécurité des clés gpg réside dans la faculté de vérifier ou non l'identité des gens avec qui vous correspondez. Il existe un moyen de vérifier qu'une clé gpg appartient bien a quelqu'un : le fingerprint qu'on obtient en tapant :

[LFS raoul@ganfalf raoul]$ gpg --fingerprint Fred
gpg: WARNING: using insecure memory!
gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations
pub 1024D/E64019B5 2001-09-13 Frédéric Bonnaud (Fred) <frederic.bonnaud@laposte.net>
Empreinte de la clé = 633F 57F8 E64D 844F 961C 5A1C 6C5B 2BA9 E640 19B5
sub 1024g/422AA63E 2001-09-13

L'empreinte clé est une somme de contrôles (un calcul assez complexe permettant d'identifier de manière à peu près sûre une clé. SI vous rencontrez (physiquement uniquement) une personne, qu'elle peut vous montrer son passport (ou que vous la connaissez personnellement, ça suffit, on n'est pas parano quand même, les chinois du FBI sont pas partout ;-) ET que l'empreinte de clé correspond à celle que vous donne la commande précédante ALORS vous pouvez être sûr que la clé dont elle prétend disposer est bien la sienne. Vous pouvez alors signer cette clé en affirmant que vous avez vérifié très soigneusement l'identité de la clé.

Conclusion.

Voilà, avec cela vous devez pouvoir vous en tirer avec GPG (ou PGP). Il est possible de signer et crypter les messages (essayez !). Normalement il faut aussi générer un certificat de révocation pour votre clé privée (au cas ou elle serait corrompue). Bref, ce n'est pas un article complet. Amusez-vous à tout tester : gpg est vraiment un bel outil complet.

Le plus simple pour utiliser GPG est d'utiliser un client mail qui sait s'en servir automatiquement (kmail, sylpheed-claws, gnus, mutt...) : ça évite de taper les commandes de cryptage/décryptage, signature/vérification. Il existe aussi quelques outils graphiques pour gérer les "portes clés" de gpg, comme gpgkeys ou (bien meilleur à mon avis) kgpg.

Note de Jice : Savez-vous que tout le trafic mail passe en clair sur tous les serveurs ? Cela signifie que n'importe qui peut intercepter un mail au niveau d'un serveur et le lire (votre entreprise, votre fournisseur d'accès, etc.), par exemple à partir de certains mots clefs. De plus, les états cherchent des moyens d'espionner la correspondance électronique (système Echelon et équivalent Français). Crypter vos mails avec gpg, même les plus insignifiants, vous permet 1) de dormir sur vos deux oreilles et 2) de vous opposer à cette intrusion dans votre vie privée. C'est à mon avis extrêmement important.

Haut


Correction Orthographique

par Fred

Utiliser ASpell pour faire la correction orthographique de vos textes.


Introduction

La correction orthographique sous Linux est, contrairement aux idées reçues une chose assez bien développé. En effet, contrairement à Windows, un seul programme devrait pourvoir faire la correction orthographique de tous vos documents (pages HTML, texte TeX, email etc...). En fait, certains locigiels n'utilisent pas les programmes standards (StarOffice, Netscape, et c.). Pour ceux là : il n'y a rien à faire. Pour les autres, nous allons voir ce qu'il convient de faire pour corriger l'orthographe française.

Télécharger les programmes.

Pour corriger nos textes, je vous propose d'utiliser ASpell (http://aspell.sourceforge.net/). Ce programme repose sur la librairie : Portable Spell Checker Library (http://pspell.sourceforge.net/). Il nous faudra aussi un dictionnaire français (http://dept-info.labri.u-bordeaux.fr/~vanicat/aspell/). Et une interface graphique sera très utile (gaspell disponible sur le site d'aspell).

Je vous conseille d'utiliser les sources (ce sera la solution que je vais expliquer ici) mais vous pouvez bien sur utiliser les paquetages créés pour votre distribution.

Compilation et installation des programmes.

Vous avez donc téléchargé les paquetages .tar.gz sur les différents sites précités.

La librairie pspell.

La procédure est classique :

[user@becane user]$ tar xzf pspell-version.tar.gz
[user@becane user]$ cd pspell-version
[user@becane pspell-version]$ ./configure --prefix=/la/ou/vous/voulez/installer
...
[user@becane pspell-version]$ make
...
[user@becane pspell-version]$ su -c"make install"
Password: ########
...

Prenez soin d'ajouter /la/ou/vous/voulez/installer/bin à votre path :

export PATH=$PATH:/la/ou/vous/voulez/installer/bin

Vous devez aussi ajouter cette commande à votre /etc/bashrc ou ~/.bashrc.

Ajouter aussi la ligne :

/la/ou/vous/voulez/installer/lib

au fichier /etc/ld.so.conf pour que la librairie soit prise en compte par votre système. Validez les changements en tapant :

su -c"/sbin/ldconfig"

Le programme aspell.

La procédure est la même :

[user@becane user]$ tar xzf aspell-version.tar.gz
[user@becane user]$ cd aspell-version
[user@becane aspell-version]$ ./configure --prefix=/la/ou/vous/voulez/installer
...
[user@becane aspell-version]$ make
...
[user@becane aspell-version]$ su -c"make install"
Password: ########
...

Maintenant que aspell est installé, vous pouvez faire un test de celui ci par exemple par la commande :

[user@becane user]$ aspell check /ou/c/est/UN-TEXTE-ANGLAIS

Si le texte contient des fautes, vous pourrez constater que aspell vous propose de les corriger.

Le dictionnaire français.

La procédure est semblable :

[user@becane user]$ tar xzf aspell-dict-francais-version.tar.gz
[user@becane user]$ cd francais
[user@becane francais]$ make
...
[user@becane francais]$ su -c"make install"
Password: #######
...

Voilà, le dictionnaire français est installé. Un petit test :

[user@becane user]$ aspell --lang=francais check /ou/c/est/UN-TEXTE-FRANCAIS

Ça marche ? Parfait !

Ça ne marche pas ? Peut-être avez-vous taper français à la place de francais !

L'interface graphique.

La procédure est la même (mais les librairies de gnome doivent être installées, même si vous n'utilisez pas gnome) :

[user@becane user]$ tar xzf gaspell-version.tar.gz
[user@becane user]$ cd gaspell-version
[user@becane gaspell-version]$ ./configure --prefix=/la/ou/vous/voulez/installer
...
[user@becane gaspell-version]$ make
...
[user@becane gaspell-version]$ su -c"make install"
Password: ########
...

Un petit test :

[user@becane user]$ gaspell --lang=francais check /ou/c/est/UN-TEXTE-FRANCAIS

Configuration

Le fichier : /etc/aspell.conf.

Configurer aspell ne veut pas dire grand chose : vous avez pu remarquer que tout fonctionne déjà ! Mais on peut améliorer le fonctionnement de aspell/gaspell en lui faisant savoir que la langue par défaut est le français. C'est très simple, il suffit de créer un fichier /etc/aspell.conf (il faut être root pour créer un tel fichier) contenant la ligne :

lang francais

Et c'est tout, maintenant pour utiliser gaspell vous pouvez taper :

gaspell /ou/c/est/UN-TEXTE-FRANCAIS
Voilà.

Utiliser aspell à la place de ispell.

Beaucoup de programmes sont conçus pour être utiliser avec le correcteur orthographique ispell. Les concepteurs d'aspell ont pensé à ce problème et on écrit un programme nommé : run-with-aspell qui permet de lancer un programme conçu pour ispell de façon que celui-ci utilise aspell à la place. Pour l'utiliser il faut taper :
run-with-aspell <programme> <paramètres de programme>
Simplissime ! Mais dans la mesure du possible essayez de remplacer les appels à ispell par : aspell check.

Conclusion

Comme vous pouvez le constater utiliser un correcteur orthographique avec Linux n'est pas forcément très complexe. N'hésitez pas à utiliser gaspell pour vérifier vos fichier TeX : il les détecte. Idem pour les fichiers HTML. Une limitation toute fois : les accents pour les fichiers HTML et TeX sont remplacés par des combinaisons de caractères incompréhensibles pour aspell (pour l'instant, gageons que la prochaine version réglera ce problème).

Haut


Introduction à LaTeX

par Jean-Marc Lichtlé

Utiliser LaTeX est très simple, à condition de disposer des informations de base qui permettent de se lancer...



Vous vous êtes peut-être déjà cassé les dents sur des premiers essais infructueux. Ne soyez pas déçu, d'autres, avant vous, ont buté sur des difficulés. LaTeX est simplement un système de création de documents totalement à l'écart des sentiers battus, des cliquaudrômes et autres interfaces graphiques stérilisantes. Son abord nécessite un investissement initial, un peu comme un ticket d'entrée.
L'objectif de cette synthèse est précisément de vous fournir ce ticket d'entrée, de vous permettre de créer les premiers documents, de vous convaincre de la validité du concept.
LaTeX n'est pas un ``traitement de texte'' au sens habituel de ce terme. Vous ne rédigerez jamais un document avec LaTeX. LaTeX est un compilateur qui traite un texte source et le transforme en un document exploitable par des logiciels de visualisation ou d'impression. LaTeX a donc, dans la chaîne de création du document final, un rôle à la fois fondamental, puisque c'est lui qui effectue toute la mise en page du document, et peu spectaculaire puisqu'il n'intervient ni lors de la création du texte source, ni lors de la visualisation.

Table des matières

  1. Introduction
    1. Version décrite
    2. Compatibilité d'autres système de création de documents
  2. Présentation
    1. LaTeX et vos habitudes de travail
    2. Le travail avec LaTeX
    3. Structure d'un document
  3. Installation de LaTeX
  4. Structure d'un document LaTeX
    1. Les balises, syntaxe générale
    2. Le préambule
      1. Le type de document
      2. La langue du document
      3. Les caractères accentués
    3. Les environnements
    4. Le plan d'un document
  5. Mise en page
    1. Format de la page
    2. Entête et pied de page
  6. Etoffer votre texte
    1. Résumé de document
    2. Sauts de ligne
    3. Les aménagements de police de caractère
      1. La forme des caractères
      2. La tailles des caractères
    4. Les environnements de liste
    5. Inclure des éléments graphiques
    6. Utiliser les références internes
    7. Les tableaux
    8. Les barres de révision
    9. Les notes en marges et notes en pied de page
    10. Les tabulations et l'environnement tabbing
  7. LaTeX et les mathématiques
  8. Définir une commande LaTeX personnelle
  9. Création de documents au format .pdf
    1. Format de page
    2. Police de caractères
  10. Compilation avec pdflatex
    1. Modification élémentaire du cource en vue de sa compilation avec pdflatex
    2. Source compilable pat LaTeX et pdflatex
  11. Synthèse
  12. Faire du courrier
    1. La classe lettre de L'Observatoire de Genève
    2. Récupérer les fichiers strictement nécessaires
    3. Une documentation complète
    4. Installation
    5. Paramétrage du fichier default.ins
    6. Premier essai
    7. Les champs disponibles pour la zone entête de lettre
    8. Les champs disponibles pour la zone pied de lettre
  13. Utilisation de la classe lettre pour la rédaction de téléfax
    1. Premier essai
    2. Les champs disponibles pour la zone entête de telefax
    3. Les champs disponibles pour la zone pied de telefax
  14. Utilisation avancée
  15. Remerciements
  16. L'auteur
  17. Copie

Document

Pour une fois les habitudes du site sont contournées. Le document n'est pas disponible au format classique .html, mais au format postscript en cliquant ici ou au format .pdf en cliquant .
Une exportation au format .html aurait été possible mais elle aurait modifié suffisamment la mise en page pour faire perdre en partie en grande partie l'intérêt de cette exportation.
Cette exportation aurait, en tout état de cause, fait perdre l'intérêt didactique de cette présentation, les finesses de présentaton n'étant pas reproduites à l'identique lors de l'exportation. Par ailleurs certaines notions n'existent pas en .html, entête, bas de page et plus généralement le notion même de page. Or, précisément, l'une des principales caractéristiques techniques d'un document écrit est la mise en page.
Je vous souhaite une bonne lecture.
Vous pouvez adresser vos commentaires, suggestions critiques à cette adresse.

Haut


GnuPlot, LYX et LATE X

Jean-Marc LICHTLE, 10 février 2002

Utilisation de GnuPlot, LATEX et LYX

Liste des figures

1 Préambule.

Le présent document s'applique aux versions suivantes des logiciels :

tels que contenus dans la distribution LINUX Mandrake 8.0. Ce document a été rédigé avec LYX puis exporté dans les différents formats d'utilisation possible, en particulier le format LATEX qui a lui-même donné naissance à la version -.html.

2 Introduction.

2.1 LATE X

L'ingénieur ou le scientifique a à sa disposition un grand nombre d'outils qui lui permettent d'exploiter et de présenter ses chiffres et ses données, qu'il s'agisse de résultats de laboratoires, de paramètres de production ou plus prosaïquement de données comptables.

Dans un monde ou les éditeurs de logiciels s'ingénient à donner au document en cours de création le même rendu à l'écran que dans sa forme finale papier le concept L A TEX est assurément dérangeant. En effet L A TEX ne se propose pas de mettre à la disposition de l'utilisateur une superbe interface WYSIWYG (What You See Is What You Get). Bien au contraire. L ATEX est essentiellement un compilateur de document qui s'alimente d'un code source que l'auteur doit rédiger au moyen de son éditeur de texte préféré, Emacs, VI ou autre. L ATEX restitue le fruit de sa compilation sous forme d'un fichier -.dvi (device independant) lequel doit à son tour être adressé à l'écran par xdvi ou à l'imprimante via dvips. On est donc bien loin de l'apparente facilité d'utilisation de certains produits bien connus (et, évidemment, commerciaux!).

La syntaxe du code source présente une certaine analogie avec la syntaxe html en ceci qu'il s'agit dans les deux cas d'un langage à balises. Le rôle de ces balises est de décrire la présentation souhaitée, la structure du document.

Le concept décrit ici s'oppose évidemment au WYSIWYG qui demande à l'auteur de définir les éléments de sa mise en page et lui montre imédiatement le résultat de ses réglages. Dans un environnement WYSIWYG l'auteur devient typographe et utilise cette typographie pour donner de la structure de son document. Dans un environnement LATEX l'auteur décide de la structure de son document, de l'articulation de celui-ci et laisse au compilateur, le soin de construire la décoration, de numéroter les chapitres, de mettre en place les polices de caractères des titres etc..

Il s'agit donc là d'une opposition totale des concepts.

Il ne saurait être question dans cette courte présentation de rédiger un manuel LATE X. Un tel manuel peut d'ailleurs être trouvé assez facilement sur Internet ou chez votre libraire habituel. La distribution Mandrake contient un certain nombre de fichiers d'aide. Voyez le contenu de /usr/share/texmf/doc . Mon propos est simplement de donner un premier éclairage sur le sujet pour mettre le pied à l'étrier au lecteur qui serait intéressé par le sujet.

J'insisterai plus particulièrement dans la suite sur l'utilisation de Gnuplot et l'intégration des fruits de ce grapheur dans des documents  LATEX. L'ojectif final est d'aboutir à une méthode de travail qui permette de créer un document papier, un document destiné à la vidéo-projection, ou un document destiné à être mis en place sur un Intranet ou même Internet.

2.2 LYX

LYX (ou KLYX qui est la variante KDE de LY X) est présent dans toute distribution LINUX qui se respecte. Il s'agit, à mon avis, d'un point d'entrée intéressant pour créer des documents LATE X. L YX est en effet un éditeur de texte vaguement wysiwyg et qui enregistre ses fichiers dans un format propre (-.lyx) extrèmement proche du format L ATEX sur lequel il est totalement basé. L'avantage essentiel pour le débutant est que l'environnement LYX lui permet de faire du LATEX sans le savoir un peu comme M. JOURDAIN faisait de la prose. LYX sait par ailleurs parfaitement enregistrer ses fichiers au format LA TE X ce qui donne au débutant que la curiosité pousse à éditer le fichier -.tex ainsi créé un formidable moyen d'apprentissage de la syntaxe propre à L AT E X sans l'obliger à "avaler" de suite la syntaxe assez complexe de ce produit.

LYX présente par ailleurs l'avantage d'offrir un environnement intégré qui se charge de la "cuisine", la visualisation, l'impression etc.

Alors, me direz-vous, pourquoi donc s'ingénier à apprendre la syntaxe de LATEX alors que LYX offre une interface sympa, semblable par bien des aspects à nombre de clicaudromes bien connus ?

Les raisons sont multiples, la plus évidente est que vous allez buter très rapidement sur les limitations de LYX et qu'à ce moment là, la meilleure solution sera d'insérer une ou plusieurs commandes LATEX pour s'affranchir de ses limitations. Car c'est bien là que le système devient grandiose, L YX permet en effet d'insérer, à tout moment dans le texte, du code LATEX qui sera ensuite compilé avant d'être rendu utilisable, soit pour un affichage écran, soit pour une impression.

Exemple de limitation : je cherche toujours comment augmenter la largeur du texte renvoyé par la visualisation dvi de LY X ou la restitution imprimée du document. J'ai solutionné le problème en incluant systématiquement un \hsize=15cm sur la première ligne du fichier. C'est une des solutions, il y en a bien d'autres. Nota : cette balise ne doit pas être entrée comme un texte banal, elle doit être tapée alors que LY X est en mode LA TEX. Ce mode peut être obtenu par [Ctrl]-[L] qui fonctionne en bistable, passe du mode texte au mode LATEX ou inversement. Une autre solution consiste à taper au km puis à surligner le passage qui doit passer en mode LATEX et à cliquer sur l'icône T EX qui trône dans la barre de menu de LYX. Les balises LATEX introduites dans le texte apparaissent en rouge, ce qui facilite leur identification.

2.3 Gnuplot

Et Gnuplot dans tout celà ? Gnuplot est déjà un logiciel très ancien et qui n'évolue plus que lentement, arrivé en quelque sorte à une maturité qui satisfait à la fois ses auteurs et ses utilisateurs. Il permet de tracer des graphiques très bien finis et largement personnalisables, en utilisant des listes de données chiffrées (résultats d'une expérience par ex.), des formules mathématiques, ou encore une combinaison des deux.

Gnuplot produit dans sa configuration de lancement une sortie écran. Il peut bien sûr aussi produire d'autres sorties, les plus courantes étant certainement les fichiers postscript destinés à être imprimés.

L'une des variantes est la sortie qui génère un fichier au format LATEX. Je déconseille toutefois l'utilisation de cette possibilité. Elle est en effet nettement moins performante que la variante de sortie qui génère un fichier postscript. Les différences sont essentiellement les suivantes :

3 Schéma de la création d'un document au moyen de ces logiciels

Les différentes phases de la création d'un document L ATEX contenant des graphiques Gnuplot peuvent se résumer comme suit :

Il s'agit là d'un schéma, vous pourrez imaginer des variantes comme la créaton du source avec Emacs, la compilation en ligne de commande, etc.

4 Utilisation de Gnuplot

Gnuplot est un programme en mode texte. Tapez gnuplot à l'invite $ de Linux dans une fenêtre xterm, rxvt ou autre. Gnuplot se trouve dès lors en mode ligne de commande. Vous voyez appaître à l'écran la bannière d'accueil qui se termine par :

Terminal set to 'x11'
gnuplot>

Le curseur est rangé après le signe > qui est l'invite de gnuplot.

Attention, vous pouvez utiliser gnuplot depuis un écran texte Linux (Ctrl-Alt-F1 à F6). Toutefois dans ce cas vous ne disposez pas du terminal x11, vous devrez donc travailler "en aveugle" ce qui présente assez peu d'intérêt.

Pour quitter Gnuplot tapez simplement quit, exit ou Ctrl-Z.

4.1 Aide en ligne de Gnuplot

L'aide en ligne, en anglais, est accessible à tout moment en tapant > help. Vous pouvez quitter l'aide à tout moment au moyen de la combinaison Ctrl-C. Cette aide en ligne est très bien construite, n'hésitez pas à faire l'effort d'y faire appel régulièrement.

Elle est organisée de façon arborescente, feuilletez la page d'aide jusqu'à la fin, vous verrez s'afficher la liste des branches accessibles (Subtopics available for..) et serez invité à faire un choix (Subtopic of..). Gnuplot utilise la complétion de ligne. En clair il est inutile de taper le texte en entier, si les premiers caractères tapés permettent à Gnuplot de faire une sélection univoque alors il saura s'en contenter.

4.2 Premier graphique.

Mais passons aux choses sérieuses...

Figure 1: Premier essai

\includegraphics{graphique1.eps}

Le premier graphique est obtenu en tapant simplement > plot sin(x) à l'invite de Gnuplot. Ce premier résultat appelle les commentaires suivants:

4.3 Mise en forme

Vous êtes professeur de mathématiques et préparez un cours sur le fonction sinus. Vous aimeriez améliorer un peu la présentation de votre graphique. Les lignes qui précèdent devraient vous permettre de comprendre sans mal les saisies suivantes:

> set xrange [0:2*acos(-1)]
> set yrange [-1.2:1.2]
> set nokey
> set title "Fonction SINUS"
> set xlabel "domaine 0 - 2*pi"
> plot sin(x), 0, 1, -1

Figure: Variante améliorée

\includegraphics{graphique2.eps}

Le résultat de ce nouveau tracé commence à devenir plus expressif. Vous aurez deviné sans effort le rôle des lignes set title et set xlabel.

La fonction plot a été utilisée pour tracer la fonction sinus, mais aussi des fonctions constantes 0, 1 et -1. Plot accepte donc de faire des tracés multiples, les différents arguments doivent être séparés par une virgule. Essayez > plot sin(x), cos(x), tan(x) par exemple.

4.4 Les caractères accentués

Il ne faut jamais perdre de vue que Gnuplot est un logiciel anglophone. Il s'en suit que vous vous préparez un sérieux mal de tête avec les accents puisque, bien entendu nos amis les roosbeef n'utilisent pas ces accessoires ! Faites simplement l'essai de mettre un libellé contenant un accent, >set title "échantillon" par exemple. L'affichage dans la fenêtre x11 sera correct, par contre les exportations, tant au format -.eps qu'au format -.tex vont faire apparaitre des caractères curieux assez disgracieux et de nature à faire douter de la qualité de votre travail. L'une des premières précautions à prendre consiste à prévenir Gnuplot d'utiliser un codage iso_8859_1 (également appelé latin-1) pour les caractères. Il suffit pour celà de taper > set encoding iso_8859_1. L'affichage dans la fenêtre x11 est inchangé, par contre les exportations aux formats -.tex et -.eps fonctionnent maintenant assez correctement.
Note de Jicé : la page de codes ISO 8859-15 est la même que ISO 8859-1, avec le symbole Euro '€' en plus...

4.5 Utilisation du clavier sous Gnuplot

Vous allez commencer à avoir besoin de retaper des commandes déjà utilisées lors de la même session. Les flèches haut et bas vous offrent le possibilité de feuilleter l'historique de frappe, exactement comme dans un terminal Linux.

Les déplacements du curseur s'effectuent au moyen des flèches droite et gauche. Par contre pour sauter au premier ou au dernier caractère les touches fin et début ne donnent pas l'effet escompté. Il faudra employer les combinaisons Ctrl-E et Ctrl-A chères aux utilisateurs d'Emacs.

La touche effacement arrière (backspace) de notre clavier français fonctionne, par contre del est à éviter soigneusement faute de quoi vous allez voir appaître des sequences 3 !

4.6 Accès au système d'exploitation

Il peut se produire que que vous ayez besoin d'accéder au système d'exploitation, pour vérifier la présence d'un fichier, supprimer celui-ci ou toute autre opération.

Le symbole ! permet d'introduire une commande système. Par exemple >!ls lira la liste des fichiers présents sur le répertoire par défaut, >!rm graphique2.tex -f effacera graphique2.tex. L'option -f est nécessaire dans ce cas pour forcer la commande et éviter que le système ne demande la confirmation classique, question que Gnuplot ne saurait pas gérer.

4.7 Utilisation avancée, sauvegarde des réglages

Vous avez passé un certain temps à mettre au point un graphique qui corresponde à votre besoin. Vous en êtes assez fier et bien sûr vous aimeriez pouvoir conserver votre travail. Gnuplot offre cette possibilité au moyen de la commande save. La commande > save "essai.plot" par exemple sauvegarde dans un fichier essai.plot tous les réglages actuels. Vous pourrez éditer ce fichier pour changer les valeurs de réglages. Ceux-ci sont assez faciles à identifiés puisque leur syntaxe est très précisément celle que vous avez utilisé pour la mise en point de votre graphique. La commande save accepte des options qui permettent de ne sauvegarder qu'une partie des réglages, faites > help save pour plus de détails.

Le pendant de la commande save est la commande load qui permet de recharger la définition précédemment sauvegardée. Essayez > load "essai.plot" par exemple pour recharger les réglages sauvegardés précédemment. La définition est à nouveau chargée et le graphique vous saute à la figure! En effet au chargement Gnuplot fait immédiatement un replot et affiche donc de suite le résultat de cette opération. Notez que Gnuplot ne restitue pas dans ce cas le réglage de la sortie si vous aviez configuré une sortie au format -.eps par exemple, mais affiche simplement dans une fenêtre x11.

En fait les réglages ne sont pas perdus. Vous pourrez vérifier en éditant le fichier -.plot créé précédemment que les réglages de sortie ont bien été sauvegardés mais que les deux lignes qui les concernent (et qui sont rangés juste à la fin de l'entête) sont affectées d'un "#" et donc marquées comme commentaires. Si vous souhaitez que le fichier graphique soit regénéré immédiatement, y compris le réglage de la sortie il suffit de décommenter ces lignes au moyen d'Emacs, VI ou tout autre éditeur de texte.

4.8 Tracé basé sur un tableau de valeurs

4.8.1 Tracé utilisant une seule série de valeurs

L'introduction faisait état de la possibilité de restituer des tableaux de chiffres sous forme de graphique. Imaginons un laboratoire effectuant un test de tamisage d'échantillons de sable.

Les résulats seront tout d'abord consignés dans un fichier texte que vous pourrez créer avec Emacs ou l'éditeur de votre choix. L'essentiel est de créer un fichier texte pur.

Ce fichier pourrait avoir par exemple le contenu suivant :

# Echantillons sable de Loire, laboratoire Untel, laborantin M. DUPONT le 12/01/2002
# Tamis Echantillon1 Echantillon2
0.63 100 100
1.00 99 97
1.25 98 90
1.40 95 82
1.60 88 65
2.00 72 45
2.50 45 22
3.15 15 8
4.00 2 1
5.0 0 0

Sauvegardez ce fichier par exemple sous "tamisage.dat". La forme de ce fichier est très simple, les lignes qui commencent par # sont des commentaires ignorés par Gnuplot. Les autres sont simplement des lignes de valeurs séparées par des espaces ou des tabulations. Les colonnes sont numérotées 1, 2, etc.

Figure: Exploitation données de laboratoire

\includegraphics{graphique3.eps}

Ce troisième graphique a été obtenu par la combinaison des commandes suivantes:

> set title "Echantillons sable de Loire"
> set xlabel "tamis"
> set ylabel "refus"
> plot "tamisage.dat" using 1:2 with lines, "tamisage.dat" using 1:3 with lines

La syntaxe des trois premières commandes n'appelle pas de commentaires particuliers. La commande plot est plus intéressante. La virgule sépare deux tracés qui se basent sur le fichier tamisage.dat, le premier exploitant les colonnes 1 et 2, le deuxième les colonnes 1 et 3. Les tracés sont réalisés au moyen de lignes.

Chouette non ?

Mwouais, pas tout à fait à mon avis. En effet la taille des tamis ne se retrouve pas sur l'axe des abscisses. Celui-ci est gradué bêtement de 0.5 à 5 par 1/2 mm. On aurait aimé retrouver les tailles des tamis utilisés.

Figure: Axe X personnalisé

\includegraphics{graphique4.eps}

Voilà qui est fait sur cette version laquelle diffère de la précédente par:

> set grid
> set xtics ("0.63" 0.63, "1.00" 1, "1.25" 1.25, etc.)

La commande > set grid provoque l'affichage de la grille, > set xtics crée une nouvelle définition de la graduation de l'axe des abscisses. Cette définition est basée sur une série de couple libellé valeur. Chaque couple est séparé du précédent par une virgule, les libellés et les valeurs sont séparés par des espaces.

J'ai laissé les "key" (légendes) de telle sorte à rappeller l'origine des données. En fait, si vous partez du réglage précédent dans lequel les légendes avaient été supprimées il faut les rétablir avec > set key.

4.8.2 Utilisation de plusieurs séries de données dans le même fichier

Il est possible de mettre plusieurs jeux d'enregistrement dans un fichier, la séparation s'obtient simplement en laissant deux lignes blanches entre les séries de données. Faites l'essai en recopiant le tableau précédent à la suite de lui même après avoir passé deux lignes blanches. Faites une modification violente des chiffres de la troisième colonne (par exemple) de telle sorte à reconnaître sans ambigüité quel est le jeu de données affichées.

La commande > plot "tamisage.dat" using 1:3 affiche maintenant les deux jeux de données superposées. Les valeurs des deux colonnes 1 étant identiques la superposition dans le même domaine de définition de x était donc prévisible. Si vous souhaitez isoler le premier ou le deuxième jeu d'enregistrement il convient d'ajouter l'option index à la commande plot selon la syntaxe > plot "tamisage.dat" index 0 using1:3 with lines. Attention, alors que les colonnes sont numérotées à partir de 1, les jeux d'enregistrement le sont à partir de 0 ! Il suffit de le savoir, sinon bonjour la perplexité !

5 Importation des graphiques Gnuplot dans LATEX.

5.1 Génération de graphiques au format -.eps

Le format -.ps (postscript) a été créé à l'origine pour contrôler les imprimantes laser. Il est depuis devenu l'un des formats graphiques standards. Il peut être interprété par bon nombre de logiciels graphiques, Gimp par exemple.

La variante -.eps, encapsuled postscript, est une extrapolation du format précédent qui contient des commentaires postscript supplémentaires. Le format -.eps suppose qu'il n'y a qu'un seul graphique par fichier.

Les deux formats sont utilisables avec LATEX. Nous utiliserons toutefois le deuxième qui présente quelques avantages pour un utilisateur débutant :

La création d'un graphique au format postscript avec Gnuplot est très simple. Tapez > set terminal postscript eps color et > set output "fichier.eps".

La commande plot (ou replot) va créer un fichier -.eps qui pourrait, si vous le souhaitez, être adressé directement à l'imprimante par lp fichier.eps tapé dans un terminal .

La taille du fichier -.eps est légèrement plus faible que le fichier -.tex correspondant pour la définition de base de Gnuplot. Dans l'ensemble le format -.eps est donc plus intéressant.

L'intérêt ne réside d'ailleurs pas que dans la taille des fichiers, la présence de couleurs est un autre élément qui milite en faveur de ce format.

5.2 Importation d'un graphique au format -.eps

L'insertion d'un graphique -.tex (pour ceux qui souhaitent utiliser ce format) dans un document LATEX se fait en insérant simplement une balise \insert{graphique.tex} dans le texte du rapport. Le graphique est en effet un texte au format LATEX. Il s'en suit que son importation se fait comme toute importation de document LATEX au moyen de \input.

Dans le cas d'une insertion -.eps l'affaire est très légèrement plus complexe. Il faut tout d'abord demander à LA T EX d'utiliser un pakage permettant l'interprétation des fichiers -.eps. La balise \usepackage{graphicx} doit donc trouver sa place dans le préambule du fichier LA TE X . Ce préambule est accessible sous LYX par Format - Préambule de Latex... Ajouter simplement \usepackage{graphicx} dans la fenêtre qui s'ouvre alors. En LA TE X pur il suffit d'ajouter cette ligne dans le préambule.

Attention, il existe deux pakages aux noms voisins et aux fonctions similaires, graphics et graphicx. Le deuxième permet l'orientation et le redimensionnement des documents -.eps importés, le premier non.

La balise d'insertion devient \includegraphics{}, la syntaxe \includegraphics{graphique.eps} permet d'insérer le fichier graphique.eps.

Le même travail peut être réalisé directement avec le menu de LYX . Il suffit d'utiliser Insérer - Figure pour déboucher sur une fenêtre "Insérer figure" puis une suivante "Figure" L'utilisation de ce menu est certes plus conviviale mais moins didactique.

5.3 Titre de graphique

Vous aurez certainement remarqué dans ce document la présence de légendes de graphiques qui n'ont pas été générés par Gnuplot. Il s'agit là d'éléments LA TEX.

J'ai expliqué plus haut la syntaxe minimale d'insertion d'un graphique \includegraphics{}. En fait j'ai utilisé une syntaxe plus complexe et qui met en place des balises \begin{figure}, \caption{} et \end{figure}, par exemple pour l'insertion du graphique3:

\begin{figure}
\caption{graphique3.eps}
\includegraphics{graphique3.eps}
\end{figure}

La compréhension de ces quelques lignes ne devrait pas poser de problème. La balise \caption sert à donner un titre au graphique ou à l'image importée en général car il peut s'agir de n'importe quel document au format postscript. La position de \caption n'est pas indiférente. Placer \caption avant l'instruction d'inclusion conduit à un titre en haut du graphique. Si \caption suit l'inclusion le titre sera sous la graphique.

L'un des intérêts de donner un titre aux graphiques est de permettre la création d'une table des graphiques, au même titre que la création d'une structure de document permet la création d'une table des matières. Cette table des graphiques s'obtient simplement dans le menu de LYX avec l'onglet de menu Insérer- Liste et Tdm - Liste des figures. Ne seront répertoriées dans cette liste que les figures qui auront un titre affecté par \caption{ }. Cette manipulation insère une balise \listoffigures{} dans le code LATEX de votre document.

5.4 Format flottant

Les graphiques (et plus généralement toutes les images) -.eps sont des objets "flottants" que la compilation va placer en haut ou en bas de page, mais pas obligatoirement à l'endroit que vous souhaitiez. Si vous voulez forcer la position du graphique il faut simplement le préciser dans la syntaxe de \begin{} par exemple en l'orthographiant \begin{graphique1.ps}[h] . Le suffixe [h] fixe l'importation à l'emplacement de la balise. Il existe d'autres suffixes possibles, t pour haut, b pour bas, etc.

Attention : en pas oublier de refermer l'environnement ouvert par \begin{} avec un \end{} !

Arrivés à ce stade de l'explication nous savons créer un document LATEX contenant des graphiques

5.5 Exportation au format -.html

Le format -.html est indiscutablement l'un des formats dominants actuellement. Il présente l'avantage par rapport aux formats spécifiques -.doc, -.tex ou autres de pouvoir être interprété sur n'importe quelle plateforme. Une multitude de logiciels savent en effet interpréter ou éditer le format -.html. De plus ce format règne en maître sur Internet et, partant, sur tout ce qui peut ressembler à un Intranet. Il serait donc dommage de ne pas examiner la possibilité de créer des documents -.html avec les logiciels décrits ici.

La création d'un document au format -.html va passer par une phase d'exportation du format d'origine vers ce nouveau format. Deux options s'offrent à vous:

L'exportation directe sous LYX correspond en fait à une ligne de commande latex2html fichier.tex -no_subdir -split 0 -show_section_number .

En clair cette ligne de commande signifie que LYX va "sous-traiter" l'exportation à LATEX en lui demandant de créer le fichier -.html dans le répertoire courant (-no-subdir), de le créer sous forme d'un fichier -.html unique (-split 0) et de conserver la numérotation des paragraphes (-show_section_number).

Vous obtiendrez donc un fichier de même nom que le fichier d'origine mais avec l'extension -.html et dont l'aspect à l'écran sera assez semblable à celui que vous voyez avec LYX. L'exportation a créé quelques fichiers supplémentaires auxquels il est fait référence dans le fichier -.html . En particulier les graphiques qui étaient inclus dans le document d'origine sont maintenant convertis au format -.png avec des noms abscons img1.png , img2.png, etc.

Le transport de votre exportation vers une autre destination, autre sous-répertoire, serveur de votre FAI, etc. risque donc de poser le problème de l'intégrité des informations, raison pour laquelle je préfère réaliser l'exportation directement en mode ligne de commande avec la commande latex2html fichier.tex.

Cette syntaxe très simple va créer un sous répertoire du même nom que le fichier d'origine et qui contiendra l'ensemble des informations nécessaires à l'affichage correct du fichier -.html. Celui-ci se retrouve d'ailleurs présent dans deux fichiers identiques, un fichier portant le nom d'origine suivi de l'extension -.html, l'autre nommé index.html.

La numérotation des paragraphes disparaît avec cette syntaxe élémentaire mais cet aspect n'est pas obligatoirement gênant dans la mesure ou le format -.html ouvre la possibilité d'utiliser les liens hypertextes.

Cette syntaxe de base va transformer chaque paragraphe, sous-paragraphe etc.. en un fichier dont le nom commencera par "node" suivi d'un numéro. L'affichage se fera donc section par section. Pour une utilisation simple à l'écran cette structure est parfaite. Elle est également, mais c'est mon avis, idéale pour une utilisation en vidéo-projection. L'exportation créera sur chacune des pages les boutons de navigation qui permettent de passer à la page suivante, à la précédente, au sommaire etc..

Pour une utilisation mixte écran / document papier il me semble toutefois préférable de ne pas éclater les paragraphes en fichiers séparés et de conserver une structure monobloc au fichier. Pour celà utilisez la syntaxe latex2html fichier.tex -split 0, l'ajout de -split 0 conserve la structure monobloc du fichier (format d'exportation standard de LYX).

Une autre option intéressante est -info. L'ajout de celle-ci à la ligne de commande supprime le paragraphe "About this document..." qui apparait systématiquement à la fin du fichier -.html . Ce paragraphe, rédigé dans la langue de John LENNON n'apporte finalement pas grand chose et ne sert qu'à donner quelques informations telle que la syntaxe de la ligne de commande. Une variante consiste à conserver ce paragraphe mais à fixer soi-même son contenu, par exemple -info "Une réalisation JML Software". Cette phrase apparaîtra donc en remplacement du contenu de ce paragraphe.

5.6 Graphiques au format -.tex

Si vous utilisez ce format, vos premiers essais d'exportation vont aboutir à un résultat assez mitigé. La courbe de sin(x) par exemple sera affichée en pointillé, principalement dans les extrémums. L'ensemble aura donc un aspect décevant. Ce phénomème de pointillé vient du fait que Gnuplot utilise en standard une définition 100x100 qui n'a pas posé de problème jusque là (affichage écran ou affichage par dvips mais est insuffisante pour l'application envisagée. Pour remédier à ce problème il suffit simplement d'augmenter la définition de Gnuplot en tapant par exemple set sample 500. Attention aux excès, ne forcez pas sur la définition, celle-ci va augmenter la taille du fichier -.tex . Dans notre cas le tracé de sin(x) dans les conditions définies ici va faire passer la taille du fichier de 16 ko à 64 ko lorsque la définition passe de 100x100 à 500x500.

La commande replot va également vous poser quelques soucis. Alors qu'à l'écran (set terminal x11) l'affichage est rafraichi correctement vous allez découvrir rapidement qu'en mode latex (set terminal latex, set output "graphique.tex") Gnuplot va simplement ajouter le tracé au fichier existant, d'ou une belle pagaille en perspective. Le remède, là aussi simple, consiste à faire un !rm graphique.tex -f qui va simplement donner l'ordre, via le système d'exploitation, d'effacer le fichier graphique.tex . Curieusement replot ne créera pas le fichier comme imaginé. Pour une obscure raison (obscure parce que je ne sais pas l'expliquer à l'instant ou j'écris ces lignes) il faut rappeler la ligne qui défini le nom du fichier de sortie. Jouez donc de la flèche haut jusqu'à retrouver cette ligne puis validez par entrée et tout rentre dans l'ordre. Cette fois replot créera bien un nouveau fichier -.tex.

6 L'auteur

JML dit Jean-marc LICHTLE, Ingénieur Arts et Métiers promotion CH73. Quand je pense au chemin parcouru.... A l'époque le stockage des informations se faisait encore sur des rubans perforés! Le bon informaticien se devait de savoir scotcher un ruban déchiré et refaire des bits endommagé à la perforatrice ! T'as pas connu ça gamin hein !

jml 2002-02-10

Haut


Installation et utilisation de Wine.

par Fred

Faites fonctionner des programmes Windows sous Linux en utilisant Wine.


Qu'est ce que Wine ?

Wine c'est deux choses : Avertissement :

Téléchargez les paquetages.

Votre distribution contient très certainement une vieille version de Wine. Comme Wine est un projet en plein développement, il vaut mieux avoir la dernière version si on espère pouvoir faire tourner un quelconque programme. Le site le mieux adapté pour télécharger ces paquetages est : http://www.winehq.com. Cliquez sur la rubrique "Download" et choisissez une location en fonction de votre distribution. Choisissez une version 'stripped' si vous ne comptez pas renvoyez de compte rendu de bug à l'équipe de Wine (pas cool, mais cette version est beaucoup plus petite et légèrement plus rapide que la version 'unstripped').

Installez les paquetages.

L'installation des paquetages dépend de votre distribution, pour une distribution basée sur RPM (Red Hat, Mandrake, SuSE, et c.) la procédure est la suivante :

[user@becane user]$ su
password: xxxxxxxxx
[root@becane user]# rpm -i wine-cvs-stripped-20000831.i586.rpm

Et c'est tout ? Et bien en générale non ! Si vous ne changez rien, wine ne fonctionnera pas car il ne saura pas où trouver les différents composant de Windows dont vous disposez.

Le fichier /etc/wine/wine.conf

Syntaxe

Le fichier de configuration de Wine s'appelle : /etc/wine/wine.conf. Il est divisé en plusieurs sections. Chaque section commence par :

[Nom de la Section]

Dans chaque section, on peut définir différentes variables. La définition d'une variable se fait de la manière suivante :

Variable=Valeur

Les sections à modifier

Il y a beaucoup de sections dans le fichier wine.conf, mais heureusement, il faut en modifié que quelques unes : en effet, le fichier wine.conf par défaut est très bien, mais il n'est pas adapté à vos différents disques. Nous partirons donc du fichier fourni avec votre installation de Wine. Pour commencer, vous pouvez éditer ce fichier et supprimer d'icelui toutes les sections nommées [Drive X] ou X est une lettre entre A et Z ;-), mais laissez les autres elles sont très bien.

Pour les besoins de l'exemple nous supposerons que vous avez deux disques dédiés à Windows qui sont montés sur /mnt/win_c et /mnt/win_d, un lecteur de disquette (/dev/fd0) monté sur /mnt/disquette et un lecteur de cdrom (/dev/hdc) monté sur /mnt/cdrom. Le principe restera le même si vous avez une autre configuration.

Pour chacun des disques dont vous disposez il faut ajouter une section nommée [Drive X] dans le fichier wine.confX est le nom du disque sous Windows. Exemple, pour votre lecteur de disquette la section s'appellera [Drive A]. Pour chaque section vous pouvez définir les variables suivantes :

Voyons, dans l'exemple précité quelles vont être les sections qu'il nous faut ajouter :
[Drive A]
Path=/mnt/floppy
Type=floppy
Label=Floppy
Serial=87654321
Device=/dev/fd0

[Drive C]
Path=/mnt/win_c
Type=hd
Label=win-c
Filesystem=win95

[Drive D]
Path=/mnt/win_d
Type=hd
Label=win-d
Filesystem=win95

[Drive E]
Path=/mnt/cdrom
Type=cdrom
Label=CD-Rom
Filesystem=win95
Device=/dev/hdc

Attention : l'utilisateur devra avoir le droit d'écrire sur les disques pour lesquels la variable 'Device' est renseignée. En général, il est astucieux d'ajouter deux autres lecteurs (qui n'existe pas pour Windows) : un disque pour les fichiers temporaires (le même que le répertoire /tmp de Linux) et le disque qui correspondra au répertoire maison de l'utilisateur :
[Drive F]
Path=/tmp
Type=hd
Label=Tmp Drive
Filesystem=win95

[Drive G]
Path=${HOME}
Type=network
Label=Home
Filesystem=win95

Voilà, il ne reste plus qu'a modifier la section [wine] de façon que le disque temporaire soit pris en compte correctement :
[wine]
Windows=c:\windows
System=c:\windows\system
Temp=f:\
Path=c:\windows;c:\windows\system
# Profile=c:\windows\Profiles\Administrator
GraphicsDriver=x11drv
S i vous utilisez des profiles sous Windows vous pouvez décommenter la ligne profile en la modifiant pour qu'elle corresponde à votre installation. Maintenant wine doit pouvoir fonctionner.

Si vous n'avez pas Windows

Wine permet même de faire fonctionner quelques programmes sans Windows. Mais, il faut toujours un répertoire C:\WINDOWS ainsi qu'un répertoire C:\WINDOWS\SYSTEM donc, tout ce que vous avec à changer c'est de créer ces répertoire, par exemple par :
# mkdir /mnt/win_c
# mkdir /mnt/win_c/windows
# mkdir /mnt/win_c/windows/system
Et cela comblera Wine.

Utilisation

Pour utiliser Wine, c'est relativement simple. Wine comprend les noms de fichiers Windows et Linux. Donc, pour un premier test vous pouvez taper :
$ wine winhelp
Pour lancer WinHelp (qui ce trouve dans le PATH de Windows). Vous allez voir un certain nombre de message s'afficher avant que WinHelp ne s'ouvre : c'est normal, Wine est un programme en développement.
Vous pouvez aussi taper :
$ wine "C:\\Program Files\\WinZip\\winzip32.exe"
Pour lancer winzip. Attention les doubles \\ sont obligatoire car ils ont une signification particulière pour le shell.
On peut aussi taper :
$ wine /mnt/cdrom/autorun.exe
Pour lancer le programme autorun sur le lecteur de CDROM.

Normalement, un certain nombre de programme que vous allez essayer va fonctionner, mais la plus grande part ne fonctionnera pas : il faut essayer. Vous pouvez allez voir sur le site de wine pour avoir une idée des programmes qui vont fonctionner, ainsi que quelques conseils de configuration de Wine pour les faire fonctionner.

Trucs & Astuces

Je ne suis pas un spécialiste de Wine, mais voilà ce que j'ai remarqué :
  1. Si vous utilisez un jeu qui fonctionne habituellement en 640x480x256 couleurs il vaut mieux que X fonctionne dans cette résolution et cette profondeur de couleur.
  2. si vous utilisez un jeu qui utilise DirectX il vaut mieux appeler le programme par : 'wine --winver nt40 <programme>'.
  3. dans la section [x11drv] vous pouvez mettre la variable Managed à Y : Managed = Y, pour permettre à votre gestionnaire de fenêtres de gérer les fenêtres Wine.
  4. si vous avez des problèmes avec des jeux utilisant DirectX, il peut être astucieux de mettre dans cette même section la variable DXGrab à Y (expérimentez !).
  5. Pour utiliser Diablo ][ sous Wine.
Quand un programme ne fonctionne pas : essayez de télécharger la dernière version de Wine.

Haut


Le minitel sous Linux : XTEL.

par Fred

Utiliser le programme XTEL pour vous connecter à vos serveurs minitel préférés.


13/6/2002: xtel 3.3 est sorti. Cette nouvelle version supporte nativement xinetd, ce qui lui permet de fonctionner facilement avec les distributions récentes comme Mandrake 8.x ou RedHat 7.x, voir http://www.emulateur-xtel.org.

Télécharger et installer XTEL.

Le plus simple est d'aller voir sur http://rpmfind.net/linux/rpm2html/search.php?query=xtel. Le paquetage s'appelle : xtel-{version}.i586.rpm ou xtel-{version}.{arch}.rpm. L'installation est simplissime :
rpm -i xtel-{version}.{arch}.rpm
Il faut bien sur être root pour pouvoir installer ce paquetage. Maintenant XTEL est installé mais pas configuré.

Configuration

Pour configurer XTEL il faut modifier les fichiers xtel.lignes et xtel.services. Il faut d'abord savoir où ils se trouvent, pour cela nous allons taper ce qui est en gras :
[root@localhost]# rpm -ql xtel | grep -E "(xtel\.services|xtel\.lignes)"
/etc/xtel/xtel.services
/etc/xtel/xtel.lignes
Donc, chez moi, ces deux fichiers sont dans : /etc/xtel. Gardez bien en mémoire le répertoire dans lequel ces fichiers se trouvent. Le fichier xtel.lignes par défaut est le suivant :

#
# Fichier xtel.lignes
#
# Config V.23, modem HAYES generique
modem0,/dev/modem,1200,7,E,\dat\r OK atm1b2\r OK atdt\T\r CONNECT,30

# Config TVR, Djinn-Flash 9600
#le_tvr,/dev/modem,9600,8,N,\dat&fm1e0&k3+xm3\r OK atdt\T\r CONNECT,30

# Ce meme Djinn-Flash en mode V.23
#modem0,/dev/modem,38400,7,E,\dat&fm1e0&k3f3\r OK atdt\T\r CONNECT,30

# Modems USR 28800/33600 (a choisir)
#modem0,/dev/modem,1200,7,E,\dat\r OK ATM1S34=8&N2\r OK atdt\T\r CONNECT,30
#modem0,/dev/modem,1200,7,E,\dat\r OK ATM1S34=14&N2\r OK atdt\T\r CONNECT,3
#modem0,/dev/modem,1200,7,E,\dat\r OK ATM1S27.4=1&N2\r OK atdt\T\r CONNECT,3
#modem0,/dev/modem,1200,7,E,\dat\r OK ATM1S27=16&N2S40=1S9=100&N2\r OK atdt\T\r CONNECT,30

# Modem USR Sporter 56K             il manque "\r" (sans les ") là ------v
#modem0,/dev/modem,1200,7,E,\dat\r OK AT&F1M1S27=16S34=8S40=6&N2S9=100&B2 OK atd t\T\r CONNECT,30

# Minitel 1
#modem0,/dev/modem,1200,7,E,minitel1,30



Par défaut ce fichier est rédigé pour les modem HAYES génériques. Si XTEL ne fonctionne pas tout de suite, ou si vous reconnaisser votre modem dans la liste suivante : Vous devez alors commenter la ligne en gras (en ajoutant un # devant) et décommenter la ligne correspondant à votre modem (en supprimant le # qui se trouve au début de celle-ci). Par exemple si votre modem est un USR-Sportster 56K vous devez décommenter la ligne en italique.

Note : j'utilise un modem ELSA Microlink 56k Internet qui me donne entière satisfaction (vu son prix ;-), mais sa configuration avec XTEL m'a donné du fil à retordre : en effet il ne nécessite pas de chaîne d'initialisation du tout ! Il faut donc commenter la ligne en gras et ajouter la ligne :
modem0,/dev/modem,1200,7,R,\dat\r OK atdt\T\r CONNECT,3

Si vous avez plusieurs modems il faut décommenter (ou ajouter)  une ligne par modem et remplacer 'modem0' par 'modem1', 'modem2', etc.

Ensuite, il faut configurer xtel.services. Normalement il n'y a rien à faire, mais si vous avez plusieurs modems, ou si vous vous connectez toujours aux mêmes services qui ne sont pas prévus, il faut modifier ce fichier. Le fichier xtel.services par défaut est le suivant :


#
# Fichier xtel.services
#
# Les grands classiques
modem0,Annuaire électronique,3611
modem0,Télétel 1    (3613),3613
modem0,Télétel 2    (3614),3614
modem0,Télétel 3    (3615),3615
#le_tvr,Télétel TVR  (3623),3623
# Acces serveur local
#@pipe,Serveur local,/usr/local/bin/le_serveur
# Acces TCP
#@tcp,Intelmatique,minitel.fr:513
# Acces direct
modem0,Direct,0


La syntaxe est, pour le moins, claire. Si vous voulez, en plus de ce qui est prévu, utiliser votre deuxième modem pour vous connecter à Télétel 2, il faut ajouter la ligne :
modem1,Télétel 2 (modem2),3614
Si vous voulez vous connecter aux services Machin auquel vous accéder par le 0303030303 il suffit d'ajouter :
modem0,Machin  ,0303030303
Si vous voulez que le seul service soit l'annuaire il suffit de commenter les autres services (et de ne pas oublier de mettre ce fichier en lecture seule ;-)  et surtout direct de cette façon personne ne pourra utiliser xtel pour autre chose que ce que vous souhaitez (par exemple utiliser votre ligne téléphonique pour mater des images X ;-)
Comme je vous le disais, c'est simple.

Configuration avec xinetd

ce paragraphe a été rédigé grace à : Jean-Paul Vernière.

Avec les distributions récentes, le super daemon n'est plus inetd mais xinetd. Ça ne change pas grand chose, sauf que pour que xteld fonctionne correctement, il doit être lancé automatiquement par le super daemon. Malheureusement, la plupart des packages installant xtel supposent que le super daemon est inetd. Pour régler le problème, il suffit :

et normalement, à partir de ce moment xtel fonctionne.

Utilisation

Par défaut

L'utilisation de XTEL est très simple : vous tapez xtel et le programme se lance ; son utilisation est simplissime : pour vous connecter cliquer dans le menu Services sur le service auxquel vous souhaitez vous connecter et XTEL fera le reste.

Il faut quand même savoir qu'XTEL souffre de quelques problèmes (à mon sens) :

Mais sinon, l'émulation fonctionne parfaitement : vous allez enfin pouvoir refourguer ce vieux minitel qui encombrait votre bureau ;-)

Amélioration

Il est possible de faire en sorte que la pression d'une touche particulière émule l'appui sur une touche de fonction du minitel.

La table de correspondance est la suivante :

minitelemission-commande
ENVOIA
RETOURB
REPETITIONC
GUIDED
ANNULATIONE
SOMMAIREF
CORRECTIONG
SUITEH
CONNEXION_FINI

Comment ça marche ?

Par exemple, pour activer la tabulation et la touche retour arrière et faciliter l'usage du minitel. Il faut copier à la fin de $HOME/.Xdefaults les 4 lignes suivantes :

! Minitel
xtel*ecran_minitel.translations: #override \n\
<Key>Tab:       emission-commande(H) \n\
<Key>BackSpace: emission-commande(G)

Si l'on veut que tous les futurs utilisateurs en bénéficient, il faut les copier dans /etc/skel/.Xdefaults

Ces informations sont disponibles sur le site de Pierre Ficheux : http://pficheux.free.fr/xtel dans la rubrique FAQ.

Haut


RPM (RedHat Package Manager), URPM (User RPM) et apt-get (User RPM)

par Jean-Christophe 'Jice' Cardot

révision par Jean-Marc Lichtle, puis Jice et Anne

Installer des programmes sous Linux est très simple quand on utilise les bons outils...


Ce document ne vise pas à remplacer la page de man de RPM, mais plutôt de donner une courte référence des commandes les plus utiles pour gérer vos paquetages à ce format.

Introduction

Le format RPM (RedHat Package Manager), a été, comme son nom l'indique, créé à l'origine pour la distribution RedHat. Depuis, de nombreuses distributions l'ont utilisé, on peut citer par exemple Mandrake ou SuSe. D'autres formats de packages dans le monde Linux sont DEB (pour Debian) et TGZ (pour Slackware).

Qu'est-ce qu'un package ? C'est un fichier (une archive, un peu comme un fichier .tar ou .zip) qui contient tous les fichiers appartenant à une application, une bibliothèque, etc. ainsi que des scripts de contrôle qui sont exécutés lors de l'installation ou de la désinstallation de l'application. Ce fichier contient également toutes les dépendances à d'autres applications, bibliothèques, etc.
Note : on parle indifféremment de package, paquetage ou même paquet pour désigner le fichier qui contient l'ensemble des fichiers d'un programme (le fichier rpm lui-même)

Il existe de nombreux utilitaires graphiques tels que Kpackage, GnoRPM, Midnight Commander, etc. qui permettent d'installer et de gérer les packages RPM. L'installation depuis la ligne de commande reste toutefois la solution la plus rapide et la plus efficace pour ce travail.

La plus grande partie des commandes décrites peuvent être exécutée par un utilisateur lambda. Toutefois les commandes qui intallent, mettent à jour ou suppriment des paquetages nécessitent des droits d'administrateur (root).

Nous allons voir ici deux méthodes pour gérer les paquets RPM :

Les noms de paquetages sont très longs et donc très pénibles à orthographier correctement. Linux offre toutefois des aides à la frappe :

Les commandes rpm usuelles

Pour installer un nouveau paquetage :

  [jice@taz jice]$ rpm -ivh toto.rpm

Attention, si vous installez un paquetage par cette méthode et qu'il existe déjà sur votre système dans une version inférieure, vous risquez d'avoir des problèmes pour le désinstaller (voir plus bas). Par contre, pour installer une bibliothèque simultanément en deux version différentes, utilisez cette syntaxe.
Les options h et v ne sont pas obligatoires, -i est suffisant pour faire une installation. L'option h provoque l'affichage d'une barre de progression (ça fait très pro sur l'écran !) et v rend l'installation bavarde, ce qui fournit des messages plus explicites en cas d'erreur. L'option -vh peut être appliquée sur toutes les commandes rpm ci-après afin de rendre rpm plus bavard.

Pour mettre à jour un paquetage :

  [jice@taz jice]$ rpm -Uvh toto.rpm

Avec un "U" comme "Upgrade" (mise à jour en anglais).

Attention, ceci ne s'applique pas pour upgrader un noyau, voir la rubrique noyau à ce sujet.

Enfin, pour remplacer un paquetage par un paquetage plus ancien ("downgrader"), la commande à utiliser est :

  [jice@taz jice]$ rpm -Uvh --oldpackage toto.rpm

Pour supprimer un paquetage :

  [jice@taz jice]$ rpm -e toto
  [jice@taz jice]$ rpm -e toto-version

Le "e" correspond à "erase" (effacer en anglais).
La syntaxe complète (avec numéro de version) permet de distinguer deux versions d'un même paquetage qui auraient été installées ensemble.

Pour faire des requêtes sur les paquetages :

Afficher la liste de tous les paquetages déjà installés J'imagine que "a" doit signifier "all" ;-) :

  [jice@taz jice]$ rpm -qa

et 

  [jice@taz jice]$ rpm -qa | less

Pour afficher la liste page par page...  

Trouve un paquetage identifié par son nom (toto) :

  [jice@taz jice]$ rpm -qa | grep toto

La recherche peut s'appliquer à une partie seulement du nom, par exemple rpm -qa | grep 'util' vous donne la liste de tous les RPM installés tels que util-linux, nautilus, bind_utils etc.. Attention la syntaxe est sensible à la distinction majuscules / minuscules !

Pour trier par date d'installation :

  [jice@taz jice]$ rpm -qa --last

Pour trier par taille :

  [jice@taz jice]$ rpm -qa --queryformat '%{name} %{size}\n' | sort -n +1 | column -t

 Jolie ligne de commande n'est-ce pas ? ;-)

Obtenir la liste des fichiers contenus dans un paquetage toto qui est déjà installé :

  [jice@taz jice]$ rpm -ql toto

On dira que "l" est l'initiale de "list".

Dans la foulée de la syntaxe précédente, celle-ci donne les informations relatives à ce paquetage, une brève description de ce que fait le paquetage, des dépendances qui doivent être satisfaites, etc. :

  [jice@taz jice]$ rpm -qi toto

On parie que "i" est mis pour "information" ?
La même chose sur un paquetage pas encore installé : 

  [jice@taz jice]$ rpm -qip toto.rpm

Avec un "p" comme "package".

Nota :

Retrouver le paquetage d'origine d'un fichier :

  [jice@taz jice]$ rpm -qf /usr/lib/toto.txt

Il peut se produire que vous vous trouviez en face d'un fichier dont vous vous demandez quel est le paquetage qui a bien pu installer ce fichier. Pas de panique ! Là aussi la commande RPM peut vous être d'une aide précieuse. Ici le 'f' signifie fichier (file en anglais).

Cette commande fonctionne sur les packages installés. Oui, mais si on veut trouver un fichier parmi les paquetages non installés ?
Si vous utilisez Mandrake (voir la partie sur urpm plus bas ), la commande suivante fera l'affaire :
  $ urpmf le_fichier
Sinon, placez-vous dans le répertoire contenant les .rpm et faites :
  $ for i in *.rpm ; do rpm -qpli $i | grep file && echo $i ; done

Tester l'installation d'une paquetage :

  [jice@taz jice]$ rpm -i --test toto

Effectue simplement une vérification sans installer le paquetage toto. Permet essentiellement de vérifier si l'installation pourrait se dérouler sans encombre ou alors si des dépendances non satisfaites risquent de faire avorter l'installation.

Si rpm ne veut pas installer le paquetage toto

Il existe plusieurs options. Premièrement : ne pas vérifier les dépendances.

  [jice@taz jice]$ rpm -i --nodeps toto

Deuxièmement : forcer l'installation, en cas de conflit avec certains autres rpm.

  [jice@taz jice]$ rpm -i --force toto

Enfin, combinez les deux options pour vraiment obliger rpm à procéder à l'installation.

Si rpm ne veut pas désinstaller le paquetage toto

Il suffit alors de faire :

  [jice@taz jice]$ rpm -qa | grep toto

Affiche la liste des paquetages dont le nom contient toto, par exemple :

toto-1.1
toto-1.2

  [jice@taz jice]$ rpm -e toto-1.1

Désinstalle le paquetage désigné par son nom et son numéro de version. 

Extraire des fichiers d'un RPM :

Certains outils comme Midnight Commander (mc, ou gmc) permettent d'ouvrir des fichiers rpm, de se déplacer dedans et de copier des fichiers vers d'autres répertoires.
Vous pouvez aussi convertir le rpm en archive cpio (l'ancêtre de tar), par la commande rpm2cpio, et ensuite utiliser la commande cpio pour extraire le ou les fichiers.

Installer un RPM dans un autre système Linux que celui qui tourne :

Vous avez plusieurs systèmes Linux sur votre machine, ou bien vous avez bouté avec le CD ou une disquette de sauvegarde. Vous souhaitez installer un rpm dans un autre système dont la partition racine est monté dans /mnt/racine. La commande à taper est :

  $ rpm -i --root=/mnt/racine /chemin/package.rpm

Vous pouvez utiliser l'option --root=/mnt/racine dans toutes les commandes rpm, pour faire des recherches, etc. avec rpm sur l'autre système Linux.

ET TOUJOURS :

  [jice@taz jice]$ man rpm

L'accès à la page du manuel, le réflexe qu'on devrait toujours avoir...




Quelques précisions concernant rpm

Quelle est la différence entre SRPM et RPM ?

Les paquetages SRPM (Source RPM) contiennent les sources d'un logiciel prêtes à être recompilées et transformées en paquetage rpm.
Afin de reconstruire un paquetage rpm à partir d'un srpm (fichier .src.rpm), il faut utiliser la commande :
  # rpmbuild --rebuild paquetage.src.rpm
Le paquetage rpm résultant se trouvera dans /usr/src/RPM/RPMS/<arch><arch> est i386, i586, ppc, etc. suivant votre architecture.

Pour simplement installer le paquetage, sans reconstruire le fichier .rpm, faire :
  # rpmbuild --recompile paquetage.src.rpm

Cela peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes des votres et qui refuse donc de s'installer, tout en conservant l'intégrité de votre base de données des rpm (tout programme installé devrait être dans la base, mais si vous installez à partir des sources .tar.gz par ./configure && make install, cela ne sera pas le cas.) Par exemple, vous pouvez récupérer un srpm de Mandrake Cooker (la version de développement) et essayer de le reconstruire sur une Mandrake 8.2.

Note : ce processus nécessite que les paquetages -devel nécessaires aient été installés, ainsi que les compilateurs utilisés, etc. Voir l'article sur la compilation .

Que sont les fichiers *.rpmsave et *.rpmnew ?

Lorsque rpm installe un paquetage, il peut soit conserver les anciens fichiers de configuration ; les nouveaux seront alors renommés en *.rpmnew.
Si rpm remplace les anciens fichiers de configuration par des nouveaux, alors ce sont les anciens qui seront renommés en *.rpmsave.

Quelle est la différence entre "installer" et "mettre à jour" ?

La mise à jour (upgrade en anglais) remplace l'ancien paquetage par le nouveau, tandis que l'installation conserve si possible l'ancienne version du programme et installe la nouvelle en parallèle.

Cela peut être fort utile pour les bibliothèques : lorsque vous essayez de mettre à jour une bibliothèque, vous pouvez rompre des dépendances avec les programmes déjà installés (s'il y a un gros saut de version). Afin de ne pas avoir de problèmes, au lieu de mettre à jour la nouvelle version, installez-la ; ainsi l'ancienne version restera présente et les anciens programmes tourneront sans problème. Cela ne pose aucun problème d'avoir plusieurs versions d'un bibliothèque installée sur un système.

Que sont les paquetages -devel ?

Vous avez sans doute remarqué que souvent, pour un package toto.rpm, vous aviez un deuxième package toto-devel.rpm.

toto.rpm contient le logiciel, bibliothèque, etc. lui-même, c'est à dire la version que vous allez utiliser tous les jours.

toto-devel.rpm contient des fichiers (les "entêtes", etc.) qui permettent de compiler des programmes qui utilisent toto. Ainsi, toutes les bibliothèques ont leur paquetage -devel.

Vous avez besoin d'installer les paquetages -devel uniquement si vous désirez compiler des logiciels, que ce soit d'après l'archive tar.gz ou le paquetage src.rpm.



Les commandes urpm* de Mandrake

Le programme rpm de RedHat souffre de nombreuses limitations que Mandrake a dépassées, en créant les outils urpm* (User RPM - à partir de Mandrake 7.0) :

Sur chacune des commandes dont on va parler ci-dessous, je vous conseille de lire la page de man (man urpmi, man urpmf, etc.) afin d'en apprendre plus.

Toutes les actions décrites ici peuvent également être réalisées de manière graphique, avec le Gestionnaire de Programmes (Software Manager), qui est une façade ou frontend aux programmes urpm*. Je vous conseille de tester les deux manières de faire, car contrairement aux apparences, la ligne de commande peut être plus simple et/ou rapide.

Configurer urpm

Ajouter / mettre à jour une source de paquetages

Après avoir installé votre distribution, les CD ont été créés dans la base de données de urpm en tant que source de paquetages.
Cependant, vous pouvez ajouter autant de sources que vous le désirez. Supposons par exemple que vous ayez un répertoire "incoming/rpms" dans lequel vous placez tous les rpm que vous récupérez sur internet. Vous pouvez l'ajouter à votre base de données urpm par la commande :

  # urpmi.addmedia mes_rpm file://home/jice/incoming/rpms

Où mes_rpm est le nom (arbitraire) que vous donnez à votre source de paquetages.

Par la suite, vous pourrez mettre à jour cette source par :

  # urpmi.update mes_rpm

De même, pour ajouter une source ftp de paquetages, on donne l'URL du fichier hdlist.cz sur le serveur. Exemple pour le Penguin Liberation Front et une Mandrake 9.0 :

  # urpmi.addmedia plf ftp://ftp.easynet.fr/plf/9.0 with hdlist.cz

Et de la même façon, pour mettre à jour la source de temps en temps :

  # urpmi.update plf

Note : le fichier de configuration de urpm est /etc/urpmi/urpmi.cfg et les bases de données dans /var/lib/urpmi.

Supprimer une source de paquetages

Pour supprimer la source mes_rpm, taper :

  # urpmi.removemedia mes_rpm

Installer avec urpmi

Installer depuis les sources urpm

Pour installer un logiciel avec urpm, rien de pkus simple. Vous tapez simplement la commande urpmi suivie d'une partie du nom du logiciel. Exemple :

  # urpmi mplayer

urpmi va alors chercher la version la plus récente du package correspondant, regarder s'il doit installer des packages dépendants (et vous en demander confirmation), et installer l'ensemble des packages.

Dans le cas ou l'argument donné à urpmi est ambigü, urpmi renvoie le nom des packages correspondants ; il ne vous reste plus qu'à choisir dans la liste et relancer urpmi avec le bon nom de package.

Si vous voulez installer le package qui fournit une librairie (par exemple), utilisez le modifieur -p :

  # urpmi -p libe2p.so.2

urpmi va alors rechercher quel paquetage fournit libe2p.so.2 et l'installer (ici libext2fs2).

Installer directement un ou plusieurs fichiers rpm

Dans ce cas, il suffit de passer le nom du fichier en argument à urpmi :

  # urpmi mon_paquetage-version.i586.rpm

et le package sera mis à jour de la même manière que rpm -U l'aurait fait.

urpmi peut installer plusieurs paquetages d'un coup : par exemple, pour installer la dernière version de KDE que j'ai téléchargée, je me mets dans le répertoire où j'ai mis les rpm, et je tape :

  # urpmi *.rpm

Pour installer (et non mettre à jour un package, par exemple pour ajouter un nouveau noyau en parallèle de l'ancien, ou bien une nouvelle librairie qui doit coexister avec l'ancienne), il faut utiliser l'option -i : urpmi -i

Désinstaller avec urpme

Pour désinstaller un paquetage, il faut utiliser urpme:

  # urpme mplayer

désinstallera mplayer. S'il y a des paquetages qui en dépendent, urpme demandera s'il doit les désinstaller également. À utiliser avec précaution ;-)

Rechercher avec urpmf (et urpmq)

L'outil de choix pour faire de recherches dans les packages rpm et urpmf. Cela permet de rechercher non seulement dans les paquetages installés comme avec rpm -q, mais aussi des paquetages installables !

  $ urpmf toto

renverra la liste de tous les paquetages qui contiennent le fichier toto.

urpmf dispose de nombreuses options pour faire des requêtes sur les différentes informations de la base de données des paquetages.

Par exemple :

Liste des paquetages du groupe "Games"
  $ urpmf --group Games
Taille du paquetage "pingus"
  $ urpmf --size pingus
  pingus:size:1102629
Résumé du paquetage "pingus"
  $ urpmf --summary pingus
  pingus:summary:Pingus - A free Lemmings clone

Voir man urpmf pour de plus amples informations.

La commande urpmq vous permet d'autres types de requêtes :

Liste des paquetages dont le nom contient la chaîne "toto" :
  $ urpmq toto
Sur quelle source se trouve le paquetage toto :
  $ urpmq --archive toto
Quels paquetages dépendent du paquetage toto :
  $ urpmq -d toto
Nom complet du fichier rpm du paquetage toto :
  $ urpmq -r toto

Voir aussi man urpmq.

Mettre à jour le système

urpm vous permet de mettre à jour votre système avec les derniers correctifs de sécurité et les corrections de bugs que Mandrake publie régulièrement.
Pour ce faire, il faut avoir paramétré un miroir ftp de mises à jour de sécurité dans urpm (voir configuration), ou avec le Gestionnaire de Programmes (qui est bien pratique pour cette opération).
Si la source de mise à jour s'appelle maj_secu, il faut lancer la commandes suivante pour la mettre à jour :
  # urpmi.update maj_secu
puis :
  # urpmi --auto-select
urpm va alors lister les paquetages mis à jour et vous demander si vous souhaitez les installer (pour qu'il installe tout sans demander, pratique pour mettre la commande dans un cron, ajouter l'option --auto).

Si vous souhaitez que urpm ne mette pas à jour automatiquement certains paquetages, il suffit d'ajouter leur nom dans le fichier /etc/urpmi/skip.list .
Par exemple, pour empêcher urpm de mettre à jour automatiquement le kernel et la glibc, ajouter dans ce fichier :
  kernel
  glibc

Conclusion sur urpm

Les commandes urpm sont encore trop peu connues, et la maintenance de votre Mandrake sera bien plus aisée avec leur utilisation.



apt-get sur Redhat

Redhat dispose également d'outils pour faciliter la gestion des packages et la mise à jour du système. J'ai testé rpm-get que je n'ai pas trouvé satisfaisant. Par-contre le portage de apt-get sur redhat est véritablement une réussite. C'est donc cet utilitaire dont je parlerai concernant Redhat (pour l'article je travaille sur une Redhat 7.3)

Cette version de apt-get pour RPM, même si elle est critiquée parce qu'elle utilise RPM (contre dpkg pour Debian), est extrêmement efficace

Les principaux apports de apt-get:

Installation de apt-get

Les packages à installer :

Vous devez installer au moins le package apt-get . Il contient les binaires que nous allons utiliser par la suite. Pour ceux qui préfèreraient utiliser une interface graphique, il en existe une, extrêmement conviviale, synaptic.
synaptic - copie d'écran

La configuration :

Elle est très simple. Une fois les packages installés il vous suffit de taper apt-get update. Ceci va synchroniser votre base de données locale avec celle du serveur ftp. Cette commande sera à relancer régulièrement pour remettre à jour cette base de données (à insérer dans une crontab par exemple).

Commande supplémentaire :

La commande apt-cdrom vous permet de rajouter directement au fichier sources.list des dépôts sur CD-ROM.
La syntaxe de la commande : apt-cdrom --cdrom <point-de-montage> add
Exemple : root@pingu# apt-cdrom --cdrom /mnt/cdrom add
Il vous reste alors à insérer successivement tous les CD en votre possession qui contiennent les packages Redhat.

Installer / Désinstaller / Mettre à jour des packages

Installer / Mettre à jour un ou plusieurs packages
Désinstaller avec apt-get

Désinstaller un ou plusieurs packages est aussi simple. Il suffit d'utiliser la commande apt-get suivie de l'argument remove.
Syntaxe : apt-get remove package1 [package2...]
Exemple : apt-get remove mplayer supprimera mplayer et les packages qui étaient dépendants de mplayer mais non utilisés par une autre application.

Mettre à jour le système

Enfin apt-get peut vous permettre également de mettre à jour la totalité de votre distribution. Au préalable, on exécutera là encore un apt-get update pou s'assurer de disposer des derniers packages. Puis il suffit de lancer la commande apt-get dist-upgrade. Et le tour est joué ;)

Vous disposez également de la commande apt-get check. Elle vous permet de vérifier que vous n'avez pas de dépendances non résolues sur votre système.

Rechercher des informations sur un package installé

Enfin la commande apt-cache vous permet d'obtenir un certain nombre d'informations sur les packages installés :

Haut


Compiler une application

par Jean-Christophe

Transformer le source d'un programme pour le rendre éxécutable par votre machine.


Prérequis : vérifiez que vous avez les packages nécessaires à la compilation.

Pourquoi compiler une application ?

Plusieurs raisons à cela :

Récupérer les sources

Tout d'abord vous devez récupérer les sources de l'application, sous forme d'un fichier .tar.gz ou .tgz ou .tar.bz2, ou .src.rpm, etc.
  1. Vérifiez d'abord si vous avez les sources sur le CD de sources de votre distribution (quand vous avez ce CD).
  2. Sinon, vous devrez le récupérer autrement (CD d'une revue, internet (Freshmeat ou Tucows par exemple), etc.).
Bref, tous les moyens sont bons. Essayez d'avoir la dernière version, tant qu'à faire, puis passez à la suite.

Compiler les sources

La procédure diffère suivant le format des sources.

Sources au format .src.rpm ou .srpm

La compilation se fait en une seule ligne de commande généralement, elle génère un package .i?86.rpm (ou .alpha.rpm suivant votre architecture) :
[root@taz src]# rpm --rebuild le_package-version.src.rpm
Cela va créer un package au format RPM : le_package-version.i?86.rpm dans le répertoire /usr/src/RPM/RPMS/i?86. Ce répertoire peut différer légèrement suivant la distribution.

Il faut ensuite installer ce package par la commande RPM habituelle :

[root@taz i586]# rpm -ivh le_package-version.i586.rpm

Sources au format .tar.*

C'est le format le plus souvent employé pour les sources. Le nom du package est en général le nom du fichier suivi de la version. Par exemple : xtel-3.2.1.tar.gz. "tgz" est une contraction de "tar.gz".
Décompresser les sources
Il faut d'abord décompresser le package dans le répertoire de votre choix. /usr/src me semble un bon choix, mais vous êtes libres.
[root@taz root]# cd /usr/src
[root@taz root]# tar zxvf /ou/se/trouve/le_package.tar.gz
ou bien :
[root@taz root]# tar yxvf /ou/se/trouve/le_package.tar.bz2
ou bien :
[root@taz root]# tar jxvf /ou/se/trouve/le_package.tar.bz2
Si votre version de tar ne comprend pas la dernière commande, essayez :
[root@taz root]# tar --use-compress-program bzip2 \
                     -xvf /ou/se/trouve/le_package.tar.bz2
Remarque : avant de décompresser pour de bon l'archive, il peut être bon de la tester, notamment pour vérifier qu'elle va bien se décompresser dans son propre répertoire, en remplaçant la commande x (comme extrait) de tar (ci-dessus) par un t (comme teste) :
[root@taz root]# tar ztvf /ou/se/trouve/le_package.tgz
Toutes les lignes (la liste des fichiers présents dans l'archive) doivent commencer par "le_package/..." ce qui assure que l'archive se décompressera dans le répertoire du même nom. Dans le cas contraire, créez un répertoire à la main (mkdir) allez-y (cd) puis exécutez la commande tar voulue.
Compiler les sources
La compilation peut différer selon chaque package, car l'auteur est libre de procéder comme bon lui semble. Cependant des standards de fait existent et sont généralement bien suivis : la présence de fichiers README et INSTALL dans l'archive.

C'est pourquoi il est fortement recommendé de lire ces fichiers avant de commencer, car ils vont vous expliquer comment compiler. L'un des deux a en général une section "installation" ou "compilation" qui donne les étapes à suivre. Vous pourrez aussi y lire les prérequis (de quelles librairies le logiciel a besoin), les configurations à faire sur votre système pour que l'appli fonctionne, etc.

De plus en plus souvent, les archives contiennent un fichier exécutable nommé "configure". Dans ce cas, la compilation est assez simple, car le programme "configure" détecte les spécificités de votre machine automatiquement. Il suffit généralement de faire :

[root@taz appli]# ./configure
[root@taz appli]# make
[root@taz appli]# make install
Et c'est tout !
Cependant lisez toujours le fichier README, car il faut parfois passer des commandes à configure.

Dans les cas ou il n'y a pas de script "configure" :
Si vous avez un fichier Imakefile, vous pouvez essayer :

[root@taz appli]# xmkmf
[root@taz appli]# make
Enfin s'il n'y a qu'un fichier Makefile ou makefile, essayez juste :
[root@taz appli]# make
Bref, il y a plein de façons de faire, mais dans tous les cas lisez les fichiers README et autres LISEZMOI.

Parfois, même en suivant bien les recommendations, cela va coincer. C'est souvent dû au fait que les distributions ne placent pas toutes les mêmes choses au même endroit, et que le développeur de l'appli n'a pas la même distribution que vous. Dans ce cas, regardez le fichier qui "coince", et s'il vous dit qu'il ne trouve pas tel ou tel fichier, recherchez-le sur votre disque dur (utilisez le couple updatedb / locate, très pratique), et n'hésitez pas à modifier le fichier source (avec votre éditeur de texte préféré) afin de faire pointer le fichier vers le bon endroit. Vérifiez aussi le Makefile.

Trucs & actuces pour les sources utilisant autoconf

Merci à Fred pour ce pararaphe.
Indiquer où installer les sources
Souvent, pour tester un programme récent, vous souhaiterez installez celui-ci ailleurs que la destination par défaut prévue par l'auteur du programme. Si celui-ci utilise les paquetages autoconf, la solution est simple, puisque prévue par le paquetage : il suffit de le dire au script configure. Placez vous dans le résertoire contenant les sources du logiciel, et tapez :
$ ./configure --prefix=/opt/ma-destination
Il faut noter que cette méthode indique au script configure quelle est la racine de l'installation, en général l'installation proprement dite créera une arboressence :
+ma-destination
   +--> bin
   +--> share
   +--> etc
   +--> include
   +--> lib
   `--> doc
dans laquelle seront effectivement copiés les fichiers nécessaires à la compilation de programme utilisant cette librairie, et les programmes eux-mêmes.
Mais, vous pouvez vouloir préciser beaucoup plus finement le type de l'installation. Par exemple, vous souhaitez que tous vos fichiers de configuration soient stockés dans /etc (c'est le FHS - File Hierarchy Standard). Alors il faut taper :
$ ./configure --prefix=/opt/ma-destination --sysconfdir=/etc
Pour en savoir plus sur les diverses options de ./configure, faites :
$ ./configure --help | less
Le script ./configure se plaint de l'absence d'une librairie
Mais, vous, vous savez que vous l'avez installée dant /opt/devlib en utilisant une ligne :
[user@becane src]$ ./configure --prefix=/opt/devlib
Si ./configure se plaint, c'est qu'il n'est pas capable de trouver la dite librairie ! (Le script a sans doute "oublié" de tester la présence d'un autre script : malib-config ... ).
Note aux développeurs de programmes utilisant gtk et imlib : les deux ne sont pas liées directement, on peut les installer dans deux répertoires différents, donc s'il vous plaît utilisez gtk-config et imlib-config pour savoir où sont installées ces deux librairies).
Il faut savoir que ./configure utilise les variables shell standard CC, CFLAGS, CXX, CXXFLAGS, LDFLAGS pour savoir comment utiliser le compilateur. Donc l'astuce, puisque ./configure ne trouve pas la librairie, est de passer par ces variables en précisant par exemple :

[user@becane src]$ export CFLAGS="-I/opt/devlib/include"
    pour indiquer au compilateur C que les includes sont dans /opt/devlib/include
[user@becane src]$ export CXXFLAGS="-I/opt/devlib/include"
    pour indiquer au compilateur C++ que les includes sont dans /opt/devlib/include
[user@becane src]$ export LDFLAGS="-L/opt/devlib/lib"
    pour indiquer au linker que les librairies sont dans /opt/devlib/lib

Puis de relancer ./configure avec les options idoines. Ceci règle quelques problèmes seulement, mais il est bon de les connaître avant de râler que les programmes libres c'est bien qu'est-ce que c'est pénible à installer.

Utilisez les variables CC et CXX pour indiquer à ./configure d'utiliser CC comme compilateur C et CXX comme compilateur C++.

Optimiser pour votre processeur la compilation d'un programme
Là c'est simple, il suffit de faire (cf plus paragraphe précédant) :
$ export CFLAGS="-mcpu=i686 -O6"
$ export CXXFLAGS="-mcpu=i686 -O6"
avant de lancer ./configure, pour dire aux compilateurs C et C++ de compiler pour l'architecture i686 (pentium pro et pentium II, on peut utiliser i586 pour les pentiums, i486, i386, et sans doute d'autres options), avec le niveau (6) d'optimisation (pour la vitesse d'exécution) maximum (attention O6 est un peu risqué - paraît-il, mais je n'ai jamais eu de problème - donc si votre programme a des difficultés à fonctionner avec ce niveau d'optimisation, avant de vous plaindre au développeur, essayez -O1 comme niveau ;).
Quelques fois, le script ./configure prévoit des optimisations, par exemple il faut taper :
$ ./configure --optimization=yes
(Utilisez ./configure --help pour le savoir!)
 
On peut d'après les créateurs du compilateur egcs (renommé gcc 1.1.2 alias 2.92.2) obtenir jusqu'a 30% de performance en plus pour certains (très rares) programmes et au moins 5% de performance en plus... ce peut etre la différence entre une animation fluide et saccadée...

Enfin, il n'est pas recommandé de compiler des programmes vitaux pour la sécurité avec des options non standard, par exemple ne compilez pas votre serveur Apache avec ces options si elles ne sont pas supportées par l'équipe de développement d'Apache ! Sinon, en cas de trou de sécurité dans votre configuration, vous risquez de ne pas être entendu.

Autres formats

Un volontaire pour me décrire la compilation des sources avec d'autres format de packages ? (Je pense aux packages Debian par exemple.)

Installer le logiciel

Je ne vais décrire ici que l'installation d'un logiciel provenant d'une archive .tar.*, car l'installation d'un rpm a déjà été vue.

En fait, là encore, il faut lire les fichiers README et/ou INSTALL.

Cependant, on peut dire que de manière générale, il suffit de faire :

[root@taz appli]# make install
pour copier les fichiers binaires, les librairies générées, le fontes, etc. au bon endroit.
Mais chaque appli a ses spécificités qu'il faut prendre en compte pour qu'elle tourne bien (par exemple, modification de certains fichiers de config, etc.).
 

Haut


Babytrans

par Roger Martin

Installer et utiliser Babytrans.

Introduction.

Babytrans est une interface graphique pour les dictionnaires de Babylon Translator (disponible sous Windows) (Voir à l'adresse http://www.babylon.com). Babytrans est un translator, un traducteur qui traduit de l'anglais vers d'autres langues, notamment le français.
Babytrans ne s'adresse PAS aux anglophobes purs et durs. Il sert aux personnes qui connaissent un peu l'anglais, savent à peu-près le lire, mais buttent souvent sur des mots qui les empêchent de comprendre le texte

Installation.

Le site de Frédéric Jolliton contient ce qu'il faut pour intaller Babytrans, même une doc en français, mais pas très claire. Il faut récupérer babytrans-0.9.tar.gz,
puis il faut récupérer EngtoFre.dic.gz,le dictionnaire français
Il vous faut english.dic.gz (commun à tous les langages)
et enfin dictionary.gz, un petit fichier texte qui est primordial. C'est là que la doc n'est pas claire.

Pour info, il existe d'autres dictionnaires:
EngtoDut.dic.gz, néerlandais / EngtoGer.dic.gz, allemand / EngtoIta.dic.gz, italien / EngtoPor.dic.gz, portugais / EngtoSpa.dic.gz,espagnol.

Ensuite, il faut détarrer et dézipper tout ça :
tar xvzf babytrans-0.9.tar.gz
gunzip dictionary.gz && gunzip EngtoFre.dic.gz && gunzip english.dic.gz
puis cd babytrans-0.9 et les classiques
./configure
make
su
(mot de passe root)
make install
On va profiter d'être root pour finir l'installation. Tapez
cd .. ( cd + 2 points pour revenir au répertoir précédent )
mkdir /usr/local/share/babytrans pour créer le premier répertoire
mkdir /usr/local/lib/babytrans pour le second.
mv dictionary /usr/local/share/babytrans/
mv EngtoFre.dic /usr/local/lib/babytrans/
mv english.dic /usr/local/lib/babytrans/

Utilisation.

L'exécutable de Babytrans se loge dans /usr/local/bin/. Il faut donc que ce chemin soit dans votre $PATH. C'est le cas pour la plupart des distributions.
Vous pouvez le lancer depuis une console en tapant: babytrans, en mettant une icone sur votre WM favori, ou sous KDE ou Gnome en tapant: Alt+F2, puis babytrans.
La première fois, un message vous demandera de faire la configuration par défaut. Il suffit de cliquer sur Préférences, et de choisir la langue. Le programme tourne en tâche de fond. Chaque fois que vous verrez un mot anglais que vous ne comprenez pas, vous doublecliquez sur le mot, une petite fenêtre s'ouvrira avec les traductions français du mot. C'est aussi simple que ça.
A noter que les dicos sont généralistes et orientés informatique. Si vous cherchez wallpaper, par exemple, vous aurez:
wallpaper (n.):
papier peint, image ou tableau utilisé en tant que fond pour les autres fenêtres dans un interface d'utilisateur graphique (informatique)

wallpaper (v.):
coller du papier peint
et pour directory:
directory (n.):
répertoire, annuaire
répertoire, catalogue, subdivision d'un disque où sont stockés des fichiers (informatique)


Have fun!!!

Haut


INSTALLATION DE ORACLE 8.1.7 SUR LINUX SUSE 7.0

V1.0, Xavier FACQ, le 20/06/2001

Voici les manipulations pour installer Oracle8i 8.1.7 sur une machine Linux.

A - PRE-INSTALLATION

1 - Environnement d'installation : SuSe 7.0

L'avantage de cette distribution est que les utilisateurs et groupes pour Oracle sont créés lors de l'installation de la SuSe, donc tout est près pour accueillir Oracle 8.1.7.

2 - Interface graphique

Vous aurez IMPERATIVEMENT besoin d'un interface graphique pour faire l'installation (KDE, Gnome etc...)

3 - Connection

Vous devez-vous connecter avec l'utilisateur oracle pour faire l'install. Vous aurez peut etre besoin de changer le mot de passe avant, en vous connectant en tant que root :
# su
# passwd oracle

4 - Le patch

Vous devez télécharger le patch orarun.rpm (12ko) suivant : ftp://ftp.suse.com/pub/suse/i386/commercial/Oracle/orarun.rpm (cf : http://www.suse.com/en/support/oracle/db/)

B - INSTALLATION

Si vous avez, comme nous, une installation sur CD, montez le et ensuite lancez la commande :
# cd /cdrom
# ./runInstaller
Vous allez enfin pouvoir commencer l'installation

I - Bienvenue

Rien à faire, Selectionnez Suivant

II - Emplacement des fichiers

puis Suivant

III - Groupe d'installation des produits Oracle

Remplir les champs avec oinstall (ou dba) de préférence, puis suivant.

!! On vous demande d'exécuter un script avec l'utilisateur root !
Ouvrez une console :

# su
# /opt/oracle/OraHome/orainstroot.sh
Puis clickez sur rééssayez une fois le script terminé.

IV -  Produits disponibles

Selectionnez Oracle Entreprise Edition 8.1.7, puis [suivant].

V - Type d'installation

Laissez ou sélectionnez le type d'intallation Typical, puis [suivant].

VI - Database Identification

Remplir les champs avec ORCL, puis [suivant].

VII - File location

Remplir le champ avec /opt/oracle/OraHome1, puis [suivant].

VIII - JDK Home Directory

Remplir le champ avec /usr/lib/java, puis [suivant].

IX - Résumé

Cliquez sur [Installer].

Mainteant, vous pouvez aller boire un verre au café du coin, faire un babyfoot et ca devrait être fini quand vous reviendrez ...

Une fois l'installation terminé, on vous demande alors d'exécuter un script en tant que ROOT : Utilisez ou lancez une nouvelle console et exécutez le script demandé.

# /opt/oracle/OraHome1/root.sh
Une fois le script terminé, selectionnez Ok dans la boite.

X - Outils de configuration

Laissez les outils se lancer tout seul. Remarque:
Si un outil ne ce lance pas correctement, vous pouvez rééssayer de le relancer, des fois ils fonctionnent au deuxieme coup ... Une fois les outils correctement lancés, vous aurez une nouvelle boite "Installation Termine", sélectionnez [Quitter] => [Oui]

C - CONFIGURATION

Maintenant il faut installer le patch pour la SuSe :

Installez le fichier orarun.rpm avec l'utilisateur root et la commande suivante (cf chapitre A-4)

# su
# rpm -ivh orarun.rpm
Ensuite, il faut faire des modifications dans les fichiers installés :

Premier fichier :

 # cd /etc
 # vi oratab
 => en fin de ligne tout en bas, il y a votre SID (ORCL dans notre cas) il faut remplacer le 'N' par 'Y' pour démarrer automatiquement votre  base.

Deuxieme fichier :

 # cd /etc/profile.d
 # vi oracle.sh
=> il faut remplacer la fin de la ligne ORACLE_HOME : Voila, l'installation est terminée, il n'y a plus qu'à tester ! Il y a deux solutions : Dans les 2 cas, une fois que c'est fini, loggez-vous avec
l'utilisateur oracle et lancez sqlplus dans une console pour tester :
 # sqlplus /nolog
SQL >connect system/manager

CONNECTED
SQL>
Si vous avez le message CONNECTED, vous avez réussi l'installation d'Oracle 8.1.7 !

D - CONTACT

En aucun cas je ne pourrais vous apporter un support Oracle autre que celui redigé ici. Vous pouvez tout de même me contacter par mail à l'adresse suivante xavier.facq@free.fr.

Have a lot of fun...

Xavier FACQ.

Haut


Installation de Oracle 8.1.7 sur Linux SuSe 7.2

V1.0, Xavier FACQ, le 05/11/2001

Voici les manipulations pour installer Oracle8i 8.1.7 sur une machine Linux.

A - Pré-installation

Note : cet article fait suite à un premier article concernant l'installation d'Oracle sur SuSe 7.0.

1 - Environnement d'installation : SuSe 7.2

L'avantage de cette distribution est que les utilisateurs et groupes pour Oracle sont créés lors de l'installation de la SuSe, donc tout est près pour accueillir Oracle 8.1.7.
Note de Jicé : pour une autre distribution, vous devrez donc créer les utilisateurs (oracle) et groupes (oinstall, dba) adéquats.

2 - Interface graphique

Vous aurez IMPERATIVEMENT besoin d'un interface graphique pour faire l'installation (KDE, Gnome etc...)

3 - Connection

Vous devez-vous connecter avec l'utilisateur oracle pour faire l'install. Vous aurez peut etre besoin de changer le mot de passe avant, en vous connectant en tant que root :
# su
# passwd oracle

4 - Les patchs

Vous devez télécharger le patch orarun8i.rpm (12ko) ici : ftp://ftp.suse.com/pub/suse/i386/supplementary/commercial/Oracle/orarun8i.rpm (cf : http://www.suse.com/en/support/oracle/db/)

Vous devez télécharger le patch de conversion de glibc : (glibc-2.1.3-stubs.tar.gz 92ko) (cf http://www.suse.com/en/support/oracle/db/817_71.html)

B - Installation

Vous devez, avant toutes commandes des outils oracle, lancer la commande suivante pour annuler la langue (sur les versions françaises en tout cas) :
# unset LANG
Si vous avez, comme nous, une installation sur CD, montez le et lancez ensuite la commande :
# cd /cdrom
# ./runInstaller
Vous allez enfin pouvoir commencer l'installation.

I - Bienvenue

Rien à faire sur cet écran, Selectionnez [suivant]

II - Emplacement des fichiers

puis [suivant]

III - Groupe d'installation des produits Oracle

Remplir les champs avec oinstall (ou dba) de préférence, puis [suivant]

!! On vous demande d'exécuter un script avec l'utilisateur root !
Ouvrez une console :

# su
# /opt/oracle/OraHome/orainstroot.sh
Puis clickez sur [rééssayer] une fois le script terminé.

IV -  Produits disponibles

Selectionnez Oracle Entreprise Edition 8.1.7, puis [suivant].

V - Type d'installation

Laissez ou sélectionnez le type d'intallation Typical, puis [suivant].

VI - Database Identification

Remplir les champs avec ORCL, puis [suivant].

VII - File location

Remplir le champ avec /opt/oracle/OraHome1, puis [suivant].

VIII - JDK Home Directory

Remplir le champ avec /usr/lib/java, puis [suivant].

IX - Résumé

Cliquez sur [Installer].

Maintenant, vous pouvez aller boire un verre au café du coin, faire un babyfoot et ca devrait être fini quand vous reviendrez...

Une fois l'installation terminée, on vous demande alors d'exécuter un script en tant que root : utilisez ou lancez une nouvelle console et exécutez le script demandé.

# /opt/oracle/OraHome1/root.sh
Une fois le script terminé, selectionnez [Ok] dans la boite.

X - Outils de configuration

Laissez les outils se lancer tous seuls. Remarque :

Si un outil ne se lance pas correctement, vous pouvez rééssayer de le relancer, des fois ils fonctionnent au deuxième coup...
Une fois les outils correctement lancés, vous aurez une nouvelle boîte "Installation Terminée", sélectionnez [Quitter] => [Oui]

Avant de pouvoir continuer, vous devez arrêter tous les processus Oracle qui tournent sur votre machine.(lancés lors de l'installation).

# ps -edf | grep oracle
=> Vous allez avoir une bonne liste de processus avec les listeners, apaches, etc ... Tuez les processus dont la ligne de commande (à droite dans la liste) contiennent le répertoire /opt/oracle/OraHome1/bin. Faites alors autant de fois que c'est nécessaire la commande suivante :
# kill -9 PID
PID est l'identifiant du processus (le premier nombre sur la ligne)

C - Configuration

1 - Il faut installer le patch d'Oracle : glibc-2.1.3-stubs.tar.gz

Il faut le dézipper dans votre ORACLE_HOME : Dans notre exemple : /opt/oracle/OraHome1

# cd /opt/oracle/OraHome1
# tar xvfz glibc-2.1.3-stubs.tar.gz
Puis lancer les commandes suivantes pour qu'il connaisse votre répertoire d'Oracle :
# ORACLE_HOME=/opt/oracle/OraHome1
# export ORACLE_HOME
Puis :
# ./setup_stubs.sh
( ~5 minutes sur un PII 350 )

2 - Maintenant il faut installer le patch pour la Suse :

Installez le fichier orarun8i.rpm avec l'utilisateur root et la commande suivante (cf chapitre A-4)

# su
# rpm -ivh orarun8i.rpm
Ensuite, il faut faire des modifications dans les fichiers installés :
 # cd /etc/profile.d
 # vi oracle.sh
=> il faut remplacer la fin de la ligne ORACLE_HOME : Jusque là, pas de problème ... Mais, personnellement, le fichier orarun8i.rpm n'a pas installé tous les scripts qui sont dedans ; (ce qui fait que les commandes si dessous ne fonctionnent pas ! Peut-être que sur votre installation cela a fonctionné, mais pour en avoir le coeur net, il suffit d'aller voir si les fichiers existent).
# cd /etc
# ls
=> si vous avez un fichier nommé oracle, c'est bon pour vous ! => sinon il vous faut prendre les scripts suivants :

oracle : a mettre dans /etc/rc.d/

Et les liens symboliques vers ../oracle pour le démarrage et l'arrêt du service oracle. k10oracle : à mettre dans /etc/rc.d/rc3.d/ et S40oracle : a mettre dans /etc/rc.d/rc3.d/ et /etc/rc.d/rc5.d/

Pour que toutes les modifications soient prises en compte, il faut vous delogguer graphiquement et vous reconnecter toujours avec l'utilisateur oracle.

Après, Vous pouvez relancer l'assistant de création de votre base qui ne doit plus planter ; vous pouvez essayer plusieurs fois si ça plante...

# unset LANG
(si vous ne l'avez pas mis dans le profile.sh)
# dbassist
=> nouvelle base, à partir du CD, SID=ORCL, enfin tout par défaut. Il va peut-être vous dire qu'il reste une base et des scripts, choississez alors de les supprimer.

Ensuite, il faut faire des modifications dans les fichiers installés :

# cd /etc
# vi oratab
 => en fin de ligne tout en bas, il y a votre SID (ORCL dans notre cas) il faut remplacer le 'N' par 'Y' pour démarrer automatiquement votre  base.
Voilà, l'installation est terminée, il n'y a plus qu'à tester ! Il y a deux solutions : Une fois que c'est fini, reloggez-vous avec l'utilisateur oracle pour que le script de profile soit pris en compte et lancez sqlplus dans une console pour tester :
 # sqlplus /nolog
SQL >connect system/manager
CONNECTED
SQL>
Si vous avez le message CONNECTED, vous avez réussi l'installation d'Oracle 8.1.7 !

D - Contact

En aucun cas je ne pourrai vous apporter un support Oracle autre que celui redigé ici. Vous pouvez tout de même me contacter par mail à l'adresse suivante : xavier.facq@free.fr.

Have a lot of fun...

Xavier FACQ.

Haut


DiVX ;-) et ses amis

BRARD Emmanuel
Révision par Jice <jice chez lea-linux point org>

Installer le nécessaire pour lire les videos au format divx ;-), mpeg...

Afin d'extraire un DVD et de le coder en Divx sous Linux, je vous conseille la lecture de cet excellent article.


Et bien oui !
Linux est aussi un média OS : il est tout à fait possible de lire des divx, des fichiers avi, des fichiers mpeg , etc. sous linux. L'avantage majeur, encore une fois, de linux ; c'est qu'il existe plusieurs solutions pour faire ceci.
Ici je vais détailler l'installation et l'optimisation des trois meilleurs (à mon avis) players :

* : Aviplay est le player livré par défaut dans l'archive d' avifile.

Il existe aussi XMPS - qui malheureusement à mon avis n' est pas encore assez développé pour être correctement utilisable - et encore d'autres players.

Les choses ayant bien évolué depuis le 27 octobre 2001 (date du premier article), il est maintenant possible de voir ses divx avec une "petite configuration", par exemple un P2 350, 128 Mo de RAM, et une carte graphique moyenne gamme (ex : Voodoo Banshee).
Pour le k6 200, et une petite carte (ex : ATI Rage 2C), ça arrive, patience ;)
 

Avertissement :
Au même titre que la copie de CD audio, la copie de DVD (en DIVX ;-) ou tout autre format) n'est autorisée par la loi que pour l'utilisation privée du copiste.
La loi n'autorise en aucun cas le libre téléchargement de films codés en DIVX (ou autre) sur Internet.

Présentation

Commençons d'abord par une description de ces trois lecteurs, avec une petite comparaison :

Aviplay

Aviplay est un lecteur extrêmement puissant. Il possède une interface graphique écrite en QT2 (la librairie graphique de KDE), vous devez donc installer ces librairies si ce n'est pas déjà fait.
Il est possible de l'optimiser pour le processeur, pour la librairies SDL installée, ainsi que pour les cartes graphiques Matrox G400.
Il sait utiliser MTRR.
Toute la configuration du lecteur se fait dans un boîte de dialogue à l'intérieur de l'interface graphique.
Aviplay peut volontairement faire avancer la bande son plus ou moins vite, afin de rester synchronisé avec les images.

MPlayer

Ce lecteur est tout simplement génial, aussi puissant que l'autre, il possède lui aussi une interface graphique thèmable !
Il est optimisable pour les jeux d'instructions des processeurs (MMX, SSE, 3DNow...), pour la librairie SDL installée, et comme aviplay utilise MTRR.
Sa configuration se fait dans un fichier de configuration ou directement en ligne de commande.
A l'instar de Aviplay, MPlayer peut utiliser plusieurs drivers de sortie comme le DGA, SDL, X11, et même le frame buffer.
Il peut comme Aviplay être optimisé pour un certain nombre de cartes comme par exemple la 3dfx Banshee et Voodoo 3000, les Matrox G200, G400, et les cartes NVidia.
Il support aussi l'utilisation des sorties TV.
MPlayer sait sauter des frames (images) du film afin de rester synchronisé avec le son.
Il peut aussi changer sa priorité avec l' option -auto.

Xine

(rédigé par Jice) Xine est aujourd'hui arrivé au même niveau technique que ses concurrents, et possède une bonne interface graphique que je trouve plus intuitive que celle de mplayer. Il est très simple à installer, léger et performant ; configurable en mode graphique ou en ligne de commande, et avec les plugins d5d j'arrive à lire tous les DVD ; bien sûr, le Divx ;-) est bien supporté. Après avoir activé la sortie Xv (ajouter "-V Xv" à la ligne de commande), la lecture a été parfaite et ne consomme pas beaucoup de CPU.

Conclusion

Ces deux visionneurs sont très similaires, et sont aussi performants l'un que l'autre.
Mplayer peut utiliser plusieurs drivers de sortie.
Aviplay cherche à toujours avoir une bonne qualité d'image.
Xine est équivalent à Mplayer, et très simple à installer.
Ce sera donc encore une fois à l'utilisateur de choisir. Personnellement je préfère garder les deux : si l'un ne lit pas correctement un film, j'essaie avec l'autre. De plus, mplayer sait se lancer sans interface graphique : c'est un plus pour écouter les radios en ligne au format Windows média player :-)
 

Pré-requis

Vous allez avoir besoin d'un certain nombre de librairies pour pouvoir utiliser ces players, elles devraient normalement être disponibles sur le CD d'installation de votre distribution, ou sur RPMfind.net pour les rpm, et sur les mirroirs Debian pour les .deb .
Pour Mandrake 8.2 et supérieures, nous vous conseillons d'installer la source urpmi du Penguin Liberation Front ainsi qu'ils l'expliquent sur leur page d'accueil , l'installation de mplayer, aviplay ou xine (y compris les plugins pour lire les Divx ;-) et les DVD cryptés) est ensuite immédiate : urpmi mplayer ou urpmi d5d par exemple suffisent.

Attention : pour Mplayer, les utilisateurs de Mandrake 8.x et de Redhat 7.x doivent changer leur version du compilateur GCC qui est en 2.96 pour une version antérieur ou suppérieur (bien qu'il soit conseillé de ne pas utiliser les versions 3.x).

Vous devez donc avoir sur votre machine :

Note de Jicé : pour savoir si un logiciel est installé sur votre système, avec rpm essayez la commande "rpm -qa | grep le_logiciel" (voir l'article sur rpm ). Pour les distributions basées sur d'autres types de paquetages (.deb, .tgz), vous devez avoir une commande équivalente.

Vous pouvez avoir besoin de librairies spécifiques si vous voulez optimiser Mplayer ou Avifile pour votre carte, ou pour la capture par video4linux.
Je vous conseille donc d'aller sur leur site respectif pour avoir la liste complète.
 

Installation

Pour les distributions Mandrake 8.2 et supérieures, le plus simple est d'utiliser la base urpmi du PLF (voir plus haut), qui dispose des logiciels, des codecs, des plugins prêts à installer.

Installation des codecs

(les codecs sont disponibles sur les sites des players)

Il suffit de décompresser l'archive win32codecs.zip et de copier tous les fichiers dans le nouveau repertoire /usr/lib/win32/ .
Pour ce qui est de DivX4linux, de même, décompresser l'archive puis copier le fichier libdivxdecore.so.0.0.0 dans /usr/local/lib puis créer les liens dans ce répertoire : libdivxdecore.so.0 et libdivxdecore.so.
Puis taper ldconfig pour faire prendre an compte la nouvelle librairie au système.

Installation des players

Pour installer les players, il suffit de les compiler :
  1. Décompressez l'archive,
  2. lancez ./configure dans le nouveau répertoire obtenu,
  3. tapez make pour le compiler (créer le binaire),
  4. puis tapez make install, pour l'installer sur le système.
MPlayer
Si vous êtes sous Mandrake et que vous ne voulez pas toucher à gcc utiliser plutôt ./configure --disable-gcc-checking
Pour utiliser l'interface graphique vous devez rajouter ./configure --enable-new-gui
Si vous avez les connaissances suffisantes, vous pouvez encore plus optimiser le binaire pour le processeur en éditant le fichier Makefile et en mettant les nouveaux tags de compilation.

Vous pouvez désormais utiliser les librairies divx4linux ; il suffit de télécharger l'archive et de lancer le script install.sh
MPlayer trouvera ces librairies lors de sa compilation, pendant l'éxécution du script ./configure
Attention, ses librairies ne sont pas libres : le code source n'est pas disponible (closed-source) !

Vous pouvez aussi utiliser les librairies fournies par le projet ffmpeg .
Mais ici, une fois son archive décompressée, il faut copier le repertoire libavcodec dans l'arbre de MPlayer :
cp -rf /app/ffmpeg/libavcodec /app/MPlayer-0.60pre2/
Comme pour la librairie divx4linux, MPlayer les trouvera lors de l' éxécution du ./configure

Aviplay
Pour celui-ci, rien de particulier, sinon que dans le cas d'une distribution SuSe vous devrez sûrement lui dire où se trouvent les librairies QT (c'est expliqué dans le fichier INSTALL).

Xine

Si vous souhaitez le compiler, il n'y a rien de spécial. Récupérez les fichiers source xine-lib et xine-ui, ainsi que les sources des plugins, et pour chacun, un simple ./configure ; make ; make install est suffisant. Vous pouvez activer plus ou moins d'options via le ./configure, tapez ./configure --help pour les connaître.

Dans tous les cas : n'oubliez pas de lire les fichiers README et INSTALL !!!

Les librairies
Je vous recommande nettement d'installer la librairie ffmpeg, qui offre la meilleure qualité de lecture.
Cette librairie est dite plus performante que la librairie propriétaire divx4linux par l'équipe de MPlayer.
N'oubliez pas que ce sont ces librairies qui permettent aux logiciels de lire les différents formats audio/vidéo, c'est pourquoi vous devez, comme expliqué les haut, les compiler/installer.
Divx4linux marche aussi bien avec MPlayer qu'aviplay, par contre je n'ai pas testé ffmpeg avec aviplay.
 

Utilisation

Aviplay

Pour pouvoir lancer une vidéo avec aviplay, il vous suffit de taper : aviplay.
Une fenêtre s'ouvre et vous propose de choisir un fichier.
La configuration se fait en appuyant sur "?" puis sur "Config" : La conception d'aviplay est faite pour que vous puissiez directement lire vos fichiers, sans rien configurer, une option est pourtant à mon avis utile :

MPlayer

Pour celui ci, il y a beaucoup plus d'option, déjà avec l'option "-vo" on peut choisir son driver de sortie parmi :

Avec l'option -vc" on peut utiliser un codec particulier pour un driver :

On peut aussi essayer de grader la synchronisation avec l'option "-framedump", MPlayer sautera des frames du film pour garder le son synchro.

On indique à MPlayer d'utiliser XFree86 et le getmodeline pour changer de résolution avec "-vm", ce qui permet d'avoir entre autres des résolutions non indiquées dans le fichier de configuration d'XFree86.

Par exemple :
mplayer -framedump -vm -vo sdl /mnt/cdrom/Le\ pacte\ des\ loups\ -\ Divx\ Francais\ -\ SAVUKA\'S\ BOARD\ -\ CD1.avi

Si vous voulez utiliser l'interface graphique il suffit d'ajouter "-gui".

Mplayer sait également effectuer sa sortie audio sur les démons de son de KDE (arts) ou Gnome (esd) (ces démons permettent de mixer plusieurs sons qui peuvent ainsi être joués simultanément). Il suffit d'ajouter l'option -ao arts ou -ao esd à la ligne de commandes. Pour connaître les possibilités de cette option, ajouter -ao help.

Xine

Xine dispose également de nombreuses options, que vous pouvez régler soit en mode graphique (cliquez sur la petite clef sur l'interface de contrôle) soit en ligne de commande.
Une particularité que je trouve excellente de Xine est de se rappeler les options que vous avez passées sur la ligne de commande. Par exemple, pour lui dire d'utiliser la sortie video Xv, vous tapez une première fois xine -V Xv ; les fois suivantes, il ne sera plus nécessaire d'ajouter l'option à la ligne de commande !

Le plus simple est de lancer xine sans arguments, tout peut ensuite se jouer à la souris (même utiliser le glisser déposer pour lancer un fichier !). Ou vous pouvez taper xine mon_divx.avi et le tour est joué.

Xine sait utiliser les démons de son de KDE (arts) ou Gnome (esd). Pour ce faire, utilisez une fois l'option de ligne de commande -A arts ou -A esd.

xine --help vous donnera de plus amples informations sur toutes les options disponibles, mais explorez aussi son interface graphique.

Optimisations

Optimisation du lecteur cdrom:
Les lecteurs rapides peuvent se mettre "en attente" pendant la lecture, le problème est qu'en général ils sont longs à se remettre en service.
Ils peuvent aussi tout simplement vouloir changer leur vitesse de rotation, ce qui pendant quelques secondes va geller le film.
Pour éviter ceci on peut utiliser un petit programme qui permet de "fixer" la vitesse du lecteur, il s'agit de setcd (setcdrom) disponible par un recherche sur Freshmeat .

Optimisation de Xfree 3.3.6/4.x et mise en place du MTRR (XF3.3.6) :
Pour XFree86 3.3.6 par grand chose à dire, le DGA (Direct Graphics Access) est déjà prêt.
Il faut juste rajouter des résolutions (et les modelines correspondantes) pour pouvoir changer de résolution.

Pour XFree86 4.x vous devez seulement vérifier que le DRI (Direct Rendering Interface), le GLX (seulement pour MPlayer et l'option -vo gl), et surtout le DGA ( option -vo dga, ou -vo sdl:dga) sont actifs, car XF4.x peut changer tout seul de résolution même si elles ne sont pas déclarées.

Dans le fichier /etc/X11/XF86Config* :
 

XFree86 4.x     XFree86 3.3.6
Section "Module"
Load "dbe"
Load "glx"
Load "dri" 
SubSection "extmod"
#Option "omit xfree86-dga" 
# ici le DGA sera activé !!!!!!!!!
EndSubSection
EndSection

Section "DRI"
Mode 0666
EndSection


...
Subsection "Display"
Depth 16 # 16 ou 32 selon la puissance de votre carte 
Modes "800x600" "640x480" "720x480"
ViewPort 0 0
EndSubsection

Pour le MTRR et XFree 3.3.6 (le 4 le fait tout seul) :
Faites :
Soit "cat /proc/pci" ou "lspci"
ex :


01:00.0
VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525
Memory at d8000000 (32-bit, prefetchable)

Ensuite, il suffit de remettre l'adresse et le type de la mémoire dans /proc/mtrr :
[emman@funky emman] % echo "base=0xd8000000size=0x2000000 type=write-combining" >| /proc/mtrr
 
Correspondance mémoire
1 MB 0x100000
2 MB 0x200000
4 MB 0x400000
8 MB 0x800000
16 MB 0x1000000
32 MB 0x2000000

Vous pouvez ensuite vérifier :
ex :
[emman@funky emman] % cat /proc/mtrr
reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9
reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1
 

FFMPEG et MPlayer
Il est conseillé pour celui-ci de forcer MPlayer à utiliser cette librairie en éditant le fichier ~/.mplayer/codecs.conf
Vous devez supprimer tout ce qui concerne ffmpeg12 :
...
videocodec ffmpeg12
info "FFmpeg-1"
status working
format 0x10000001 ; mpeg 1
format 0x10000002 ; mpeg 2
fourcc mpg1,mpg2
driver ffmpeg
dll "mpegvideo"
out YV12
...

Conclusion

Grâce aux travaux des différentes équipes : MPlayer, Xine, ffmpeg, , win32codecs... il est maintenant possible de visionner la plupart des Divx ;-) avec au minimum un Pentium II (ou équivalent) à 350Mhz, 128 Mo de Ram, et une carte video qui possède 16 mo, et ceci sans utiliser le "framedump" (i.e. le saut d'images).

Il faut aussi souligner qu'il existe sous Linux de nombreuses optimisations offertes par exemple par le processeur (jeux d'instructions MMX, SSE, 3DNOW), par XFree (DGA, DRI, GLX, MTRR), et par les librairies (SDL) qui pour une meilleure qualité doivent être compilées.

Pour utiliser corectement le visionneur de votre choix, n'hésitez pas à aller sur son site, et à bien lire sa doc !

(c) 2001-2002 BRARD Emmanuel, emman@agat.net  - 2002 Jean-Christophe Jice Cardot, jice chez lea-linux point org
Ce document est sous license GNU FDL.

Haut


La gravure en ligne de commandes

Par Pascal, révision par Jice

Pour exploiter pleinement les possibilités de gravure sous Linux, il est nécessaire de connaître quelques rudiments sur les outils de base dont les principaux sont cdrecord , cdrdao, cdparanoia, readcd et cdparanoia. Voir aussi la logithèque de Léa, section gravure.
Tous les logiciels graphiques destinés à la gravure ne sont en fait que des interfaces qui utilisent ces outils.

Ces programmes figurent normalement sur toute distribution.
Les quatre premiers programmes font partie du package cdrtools dont les sources sont disponibles ici ou encore sur cette page qui contient d'autres informations, notamment une liste des graveurs compatibles.
On peut également récupérer les sources de cdparanoia à cette addresse
Note de Jice : sous Mandrake, les packages correspondants sont cdrecord, cdrdao et cdparanoia.

Cette page a été construite à partir notamment :

Cet article contient les informations suivantes : Avant toute chose, il convient de lire les sections suivantes sur la configuration de la machine et des programmes.

Avant de commencer

Configuration de la machine

Pour graver, il faut disposer d'un graveur SCSI ou d'un graveur IDE avec une émulation SCSI.
Le noyau
Note de Jice : Si vous avez une distribution récente (Mandrake 8.x, etc.), vous pouvez passer ce paragraphe.
Pour cela, dans la configuration du noyau, les options suivantes doivent être activées (par exemple en module) : Il peut aussi être utile d'activer l'option Loopback device support dans la rubrique Block Devices. Ceci permet de monter les images de disques afin d'en visualiser le contenu.
L'émulation SCSI
Enfin, il faut ajouter une entrée du type append="hdc=ide-scsi" dans le fichier /etc/lilo.conf (quelque part sous la ligne image=fichier_du_noyau). Pour obtenir le nom du fichier de périphérique du graveur (hdc dans l'exemple ci-dessus), on tape dmesg|less dans une console et on repère une ligne du type hdc: nom du graveur.
Enfin, pour activer l'émulation SCSI, il suffit de charger le module ide-scsi par la commande modprobe ide-scsi (les autres modules seront chargés automatiquement si l'option Kernel module loader de la rubrique Loadable module support est activée dans le noyau).

Dans certaines situations, il est nécessaire de disposer également d'un lecteur de CD-Rom SCSI (ou émulé). C'est le cas par exemple pour la copie directe de Cd-Rom audio avec cdrdao.
Pour qu'un lecteur ou un graveur IDE soit émulé en SCSI, il suffit de modifier l'entrée dans le fichier /etc/lilo.conf pour obtenir quelque chose du genre :

append="hdc=ide-scsi hdd=ide-scsi"
avec ici hdc le lecteur de Cd-Rom et hdd le graveur (selon la configuration). Les périphériques seront alors accessibles, selon les distributions, à travers /dev/scd0 et /dev/scd1 (ou /dev/sg0 et /dev/sg1, cela dépend des distributions), au lieu de /dev/hdc et /dev/hdd.

La plupart des programmes ne sont utilisables qu'en mode super-utilisateur. Pour les utiliser en mode utilisateur, on peut utiliser par exemple la commande sudo, ou su.

Obtenir l'adresse SCSI du graveur
Avant toute chose, il faut obtenir cette information en interrogeant le bus SCSI. Pour cela, on tape dans une console :

   cdrecord -scanbus

Celui-ci va renvoyer un certain nombre de lignes du type :

   0,0,0   0) 'Nom du graveur' Removable Cd-Rom

Ce sont les trois premiers chiffres qui nous intéressent.
Ces trois chiffres correspondent respectivement au numéro de l'adaptateur (scsibus), au numéro d'identification du périphérique ou de la cible (target) et au numéro d'identification dans la chaîne SCSI (lun, Logical Unit Number).
Ces trois chiffres seront indispensables pour la suite.

Par exemple, le programme cdrecord devra toujours être lancé avec l'option dev=x,y,z avec x le premier chiffre (scsibus), y le deuxième (target) et z le troisième (lun). En fait, s'il n'y a qu'un seul bus SCSI, il suffit d'entrer les deux derniers. Ainsi, si les trois chiffres sont 0,1,0, on entrera cdrecord dev=1,0 etc.
Par la suite, on utilisera la notation dev=y,z et il faudra remplacer y et z par leur valeur.

C'est la même chose avec le programme readcd (on entrera donc readcd dev=y,z etc).

Pour cdrdao, l'option s'écrit --device y,z. Il est possible également que le programme ne reconnaisse pas votre graveur. Choisissez alors un pilote dans la liste qu'il proposera dans ce cas (par exemple, l'option --driver generic-mmc).

Attention : vous pouvez très bien avoir plusieurs bus SCSI sans le savoir. Par exemple, si vous utilisez le module usb-storage (pour un lecteur ZIP USB), celui-ci crée un bus SCSI. Et bien sûr, si vous avez une carte SCSI, vous avez encore un autre bus SCSI. Bref, dans ce cas, vous devrez donner en paramètres aux programmes les 3 chiffres. Par exemple cdrecord dev=0,1,0.

Configuration des programmes

Le programme cdrecord lit un fichier de configuration dans un fichier nommé /etc/default/cdrecord. Si l'on doit passer souvent les mêmes paramètres, il est pratique de les entrer dans ce fichier (si d'autres valeurs de paramètre sont passées en ligne de commande par la suite, celles du fichier correspondantes seront ignorées). Par exemple, si l'on grave à partir du même périphérique dont les numéros SCSI sont x,y,z, alors il faut créer le répertoire /etc/default s'il n'existe pas ainsi que le fichier /etc/default/cdrecord (par exemple, en tapant touch /etc/default/cdrecord), et saisir dans ce fichier la ligne :

   CDR_DEVICE=x,y,z

La page de manuel explique les autres options pour ce fichier.

En ce qui concerne cdrdao, ces options sont stockées dans le fichier cdrdao.conf dans le répertoire /etc (on peut aussi le placer dans /etc/defaults/cdrdao ou utiliser le fichier $HOME/.cdrdao). Oui, les pages de man indiquent bien /etc/default/cdrecord pour cdrecord (default sans 's') et /etc/defaults/cdrdao pour cdrdao (default avec un 's')... Un petit lien symbolique (créé par : ln -s /etc/default /etc/defaults) permet d'avoir tout dans le même répertoire.
Si l'on utilise un graveur en x,y,z, géré par le pilote generic-mmc, alors ce fichier doit avoir la forme :

   write_device: "x,y,z"
   write_driver: "generic-mmc"
   read_driver: "generic-mmc"

Tout ceci est expliqué dans la page de manuel. On peut également entrer les informations sur le lecteur (par exemple read_device=0,1,0). Il ne faut toutefois pas saisir cette ligne si l'on compte lire et copier un disque à partir du seul graveur car la commande copy de cdrdao ne fonctionne pas si les paramètres source-device et device ont les mêmes valeurs.
Dans ce cas, il faudra préciser le périphérique pour les commandes de lecture comme read-cd ou read-toc (par exemple, l'option --device y,z).

Quelques commandes utiles

Débloquer le graveur
Si pour une raison ou pour une autre le graveur ne répond plus à aucune commande, renvoie des messages d'erreur et refuse de s'ouvrir même ne appuyant sur le bouton d'éjection, alors vous pouvez utiliser cdrdao pour le réinitialiser :

   cdrdao unlock --device y,z

Effacer un CD-RW
Pour effacer un disque, utilisez cdrecord :

   cdrecord dev=y,z blank=fast

ce qui lancera un effacement rapide du disque (il efface notamment la TOC, la PMA et les marques d'intervalle entre pistes, ce qui est généralement suffisant). Pour effacer complètement le disque, il faut remplacer l'option fast par all.

Obtenir de l'information sur le Cd-Rom
Avant de graver un Cd-Rom de données, il est important d'obtenir quelques informations, notamment pour savoir s'il s'agit d'un disque mono-session ou multi-sessions.
On entre alors dans une console :

   cdrdao disk-info --device y,z

Il faut pour cela utiliser le graveur (un lecteur de Cd-Rom n'est généralement pas capable d'extraire ces informations).
Ceci va permettre de savoir notamment s'il s'agit d'un disque réinscriptible (CD-RW: yes), si le disque est vide (CR-R empty: yes,) s'il est fixé (appendable: no, on ne peut plus rien ajouter; dans ce cas, le programme renvoie également le début de la nouvelle session et la capacité restante sur le disque) et de connaître la capacité totale du disque, la plage de vitesse acceptable (pour un disque réinscriptible), le nombre de sessions et le numéro de la dernière piste (si le disque ne comporte qu'une seule session, ceci correspond au nombre de pistes sur le disque).

Structure d'un Cd-Rom

Sur un Cd, les informations sont gravées en spirale en partant du centre sur des pistes, elles-mêmes regroupées dans une session. Ainsi, un disque contient au moins une session comprenant au moins une piste. Beaucoup de graveurs n'acceptent de graver des pistes que si leur durée est d'au moins 4 secondes ou 300 secteurs.
En effet, l'unité de base sur un disque est le bloc ou secteur qui occupe 2352 octets, qu'il s'agisse de musique ou de données (l'occupation n'est toutefois pas la même).
Lorsqu'il s'agit de Cd de données, un secteur représente toujours 2352 octets mais seuls 2048 d'entre eux sont utilisés pour stocker les données, le reste étant utilisé en grande partie pour la correction d'erreurs.
Ainsi, pour stocker un Mo de données, soit 1024000 octets (1 Ko représente 1024 octets), il faudra 1024000/2048=500 secteurs.
Sur un disque audio, les 2352 octets d'un secteur sont occupés par la musique car la correction d'erreurs s'effectue à un autre niveau sur le disque (les couches C1 et C2 d'après les spécialistes).

La conversion analogique-numérique s'effectue par échantillonnage. Le Red Book (norme qui spécifie le standard des disques audio) précise que la fréquence d'échantillage doit être de 44100 Hz (hertz) ce qui représente 44100 échantillons par secondes, et que chaque échantillon doit être au format 16 bit, stéréo, PCM ("Pulse Code Modulation"). Ceci permet de reproduire des sons d'une fréquence variant entre 0 et 20000 Hz, avec une petite marge, qui est la fréquence audible de l'oreille humaine.
D'après certains How-To, pour représenter correctement un son d'une fréquence F, il faut une fréquence d'échantillonage d'au moins 2F Hz (ceci doit être la conséquence entre autre du théorème de Shannon qui indique que l'on peut reproduire un signal qui contient des fréquences inférieures à F si on le connaît aux instants multiples de 1/2 F).
Au total, une seconde de musique représentera 44100x16x2=1411200 bits, soit 1411200/8=176400 octets, soit encore 176400/2352=75 blocs ou secteurs.

Les disques audio ne contiennent en général qu'une seule session car les lecteurs ne sont capables que de lire la première session. Il est toutefois possible de créer des disques mélangeant des pistes de données ou des pistes audio. C'est le cas par exemple des Cd mixtes qui contiennent en général une piste de données et des pistes audio (par exemple, des Cd de jeux). C'est le cas également des Cd Extra qui contiennent une première session audio et une deuxième session de données. Ceci se révèle pratique pour stocker des informations relatives à la musique enregistrée, par exemple des fichiers video, sans que le lecteur audio n'affiche la piste comme une autre piste audio (le lecteur n'a accès qu'à la première session audio et ne voit pas la session de données qui reste néanmoins accessible par un ordinateur). Ce n'est pas le cas avec un Cd mixte: la première piste est considérée comme une piste audio par un lecteur (on pourrait crée une première session pour les données et une deuxième pour l'audio mais la deuxième session ne serait pas accessible par le lecteur audio).
Chaque session contient une zone de données dans laquelle sont stockées les pistes de données ou les pistes audio. Elle est précédée d'une en-tête, le Lead-In, qui contient la TOC ("Table of Contents" ou Table des Matières) ainsi que l'adresse éventuelle de la prochaine session. Elle se termine par une zone de fin, le Lead-Out qui ne contient rien mais sert à indiquer la fin de session. Cette zone de fin occupe 6750 secteurs pour la première session et 2250 pour la suivante.
La zone d'en-tête n'est écrite que lorsque la session est clôturée et peut occuper jusqu'à 4500 secteurs. Tant que la session n'est pas finie, la TOC est écrite dans la PMA ("Program Memory Area" ou Zone de Mémoire Programme).
La Table des Matières contient la longueur totale de la zone de données, le nombre de pistes et l'adresse de ces pistes sur le disque.

Il existe deux grandes façons de créer un disque: le mode Track At Once (une piste à la fois) ou le mode Disc At Once (le disque en une seule fois).
En mode Track At Once (TAO), on écrit les pistes une par une. En fait, le graveur éteint le laser à la fin de chaque piste ce qui laisse quelques secteurs vides entre les pistes qui en général sont silencieux (des run-in et run-out). Cette méthode est utile si l'on souhaite par exemple graver quelques pistes d'un disque et rajouter quelques pistes plus tard. Dans ce cas, il ne faut pas fermer la session mais le disque ne pourra être lu par un lecteur audio car la TOC ne sera pas générée. Cette méthode est dans certains la seule possible avec certains anciens graveurs. En outre certains d'entre eux laissent automatiquement un espace de 2 secondes entre les pistes.
En mode Disc-At-Once (DAO), les pistes sont gravées en une seule fois sans que le laser ne soit éteint. Ceci permet d'obtenir des disques sans espace entre les pistes (par exemple un concert). C'est la méthode la plus sûre pour réaliser une copie qui soit la plus proche possible de l'original.
Il existe également un mode dit Session At Once (une session à la fois), qui est une variante du mode DAO. Par exemple, on grave en une seule fois une première session audio en mode multissesion et l'on grave ensuite une deuxième session de données afin de créer un Cd-Extra (on peut également de graver une première session de données en mode DAO, mais cela ne semble pas possible pour une autre (cdrecord refuser cela).


Graver une image ISO

(par Jice)
En ces temps de connexion internet par ADSL ou câble, les personnes qui peuvent télécharger des images ISO (c'est à dire un fichier contenant l'image de ce qui se trouve sur un CD) sont de plus en plus nombreuses. On peut par exemple télécharger les CD d'une distribution Linux, etc.
Graver l'image ISO
Oui, mais... Comment graver le fichier image.iso ?

Une ligne de commande suffit :

   cdrecord -v -dao speed=8 dev=x,y,z  /chemin/image.iso

avec :
* speed : la vitesse du graveur 8 pour 8x par exemple,
* dev : l'adresse sur le bus SCSI du graveur, obtenue avec la commande cdrecord -scanbus

Si vous avez aussi téléchargé le fichier md5sums (lorsqu'il existe), vous pouvez tester votre image avant de la graver par la commande :

   md5sum -c md5sums

Note 1 : Sous Windows, utilisez votre logiciel de gravure, et choisissez la fonction "graver une image". Ouvrez alors le fichier contenant l'image ISO, et gravez-le.
Il paraît que Nero (Les fichiers .nrg de Nero seraient en fait des images ISO) et Easy CD Creator savent le faire.

Note 2 : une erreur classique consiste à graver le fichier image.iso sur le système de fichiers du CD (i.e. le CD contient un seul fichier, votre image ISO). Dans ce cas, vous pouvez toujours vous en servir en montant le CD, puis en montant l'image en loopback, mais c'est de la bidouille, et surtout c'est fichu pour booter sur le CD (ex : CD d'une distribution Linux).

Tester l'image ISO
Il est en effet possible de monter l'image dans un répertoire pour en vérifier le contenu. Par exemple, pour monter l'image dans le répertoire /mnt/cdrom, on fera :
   mount image.iso -t iso9660 -o loop,ro /mnt/disk
et il suffira d'aller visiter le répertoire /mnt/disk pour consulter le contenu de notre image ISO.


Création d'un disque de données

Pour l'instant, on ne s'intéresse qu'à la création d'un disque mono-session pour sauvegarder des données stockées sur le disque dur (voir plus loin pour la création d'un Cd-Rom multi-sessions).
Il existe pour cela deux méthodes : soit on passe par la création d'une image sur le disque qui est ensuite gravée sur le Cd-Rom, soit on grave directement les données à partir des fichiers présents sur le disque dur.
Par ailleurs, qu'il s'agisse d'un disque mono ou multi-sessions, chaque session ne doit comporter qu'une seule piste.

Création d'une image ISO-9660

On a vu ci-dessus comment graver une telle image, mais il est bien plus intéressant de créer soi-même ses propres CD !

La méthode consiste à créer une image disque à partir des données à sauvegarder, c'est-à-dire un fichier qui pourra être reconnu par le logiciel de gravure, et qui représente le futur contenu d'un CD. On utilise pour cela le programme mkisofs. Par exemple, si l'on souhaite faire une image nommée image.iso contenant les fichiers du répertoire /home/copie, alors on fera :

   mkisofs -R -o image.iso /home/copie

On peut ignorer les éventuels messages du type :

   Using FICH000.TXT;1 for /home/copie/fichier.txt~ (fichier.txt)

Ceci signifie qu'il existe un fichier nommé fichier.txt et un autre nommé fichier.txt~ (qui est par exemple une sauvegarde du premier réalisée par Emacs). Le programme mkisofs fait cette transformation pour que le système de fichier soit conforme à la norme ISO-9660 mais l'extension Rock Ridge assure que le fichier sera visible à la lecture sous sa forme initiale (en fait, le fichier fichier.txt est sauvegardé sous le nom FICHI000.TXT dans l'arborescence du disque et le ;1 signifie qu'il s'agit d'une version du premier).

L'image sera alors gravée par :

   cdrecord -v -dao speed=8 dev=y,z image.iso

Si cdrecord n'est pas lancé à partir du répertoire dans lequel se trouve le fichier image.raw, il faut préciser le chemin.
L'option -v est optionnelle. Elle active le mode bavard ( verbose ) ce qui permet de voir la progression du processsus de gravure.
L'option -dao est également optionnelle. Elle permet de graver l'image en mode Disc at Once. Si elle n'est présente, le Cd-Rom sera gravé en mode Track at Once et le graveur ajoutera à la fin de la piste 2 blocs qui seront illisibles, ce qui peut poser des problèmes si l'on veut par la suite faire une image de ce disque (ce problème peut toutefois être facilement résolu, voir plus loin).
L'option speed=8 sélectionne une vitesse de 8x. Si cette option n'est pas précisée, cdrecord va essayer de lire la vitesse acceptable sur le disque (celle-ci est inscrite sur les CD-RW mais pas sur les CD-R). Au demeurant, si l'on entre une vitesse supérieure à celle acceptable par le support, le programme va automatiquement l'ajuster. Toutefois, si aucune vitesse n'est inscrite, le disque risque d'être inutilisable.

De façon générale, la syntaxe de mkisofs est la suivante :

   mkisofs options répertoire_à_sauvegarder

Ici, l'option -o image.iso signifie que l'image portera le nom image.iso et sera stockée dans le répertoire courant (si l'on veut stocker l'image ailleurs, il faut préciser le chemin). Le nom de l'image est peu important. Il faut seulement savoir que cdrecord est par défaut lancé avec l'option -data qui indique qu'il s'agit d'un Cd de données (CD-Rom mode 1) sauf si l'extension du nom de l'image .au ou .wav auquel cas cdrecord est lancé avec l'option -audio.

L'option -R signifie que l'on utilise l'extension Rock Ridge du système de fichiers, qui définit l'organisation des données sur le Cd-Rom. Initialement, la première norme définissant un système de fichiers pour Cd-Rom est la norme ISO-9660 qui, au niveau 1, n'autorise notamment que des noms de fichiers comportant 8 caractères (en majuscules) avec une extension de 3 caractères (le format 8.3). Il existe par ailleurs un certain nombre d'autres restrictions.
L'extension Rock-Ridge a été mise en place en 1990 pour les systèmes Unix. Elle autorise les noms de fichiers longs (jusqu'à 255 caractères), les liens symboliques et permet de sauvegarder les identifiants d'utilisateur et de groupe ainsi que les permissions.

Attention : un tel disque ne sera par lu correctement sous Windows. Les noms de fichiers n'apparaîtront qu'avec 8 caractères. Si l'on veut que le Cd-Rom soit également lisible sous ce système, il faut ajouter l'option Joliet (noms longs sur CD-Rom pour windows) avec : -J (mkisofs -R -J etc).

On peut si l'on préfère utiliser l'option -r à la place de l'option -R. Avec celle-ci, les identifiants d'utilisateur et de groupe sont mis à zéro (ce qui correspond à l'utilisateur et au groupe Root). En effet, l'option -R sera utile si le disque est lu sur la même machine mais donnera des résultats non souhaitables s'il est lu sur une autre machine (par exemple, des fichiers appartiendront à un utilisateur inconnu si le numéro d'identifiant ne correspond à aucun utilisateur ou à un utilisateur qui aura le même numéro que celui de la machine d'origine, ce qui n'est probablement pas ce que l'on souhaite).
L'option -r active également les droits en lecture pour tous, supprime tous les droits en écriture et autorise l'exécution pour tous si elle est autorisée pour un (propriétaire, groupe ou autres) sur le fichier initial.

Il est possible de créer une image à partir de plusieurs répertoires. Par exemple, si l'on veut sauvegarder l'ensemble des fichiers des répertoires /home/rep1 et /home/rep2, alors on fera :

   mkisofs -o image.iso /home/rep1 /home/rep2

Attention : tous les fichiers seront sauvegardés à la racine du CD (voir plus loin l'option -graft-points si l'on veut recréer une arborescence différente sur le disque).

Il est possible de monter l'image dans un répertoire pour en vérifier le contenu. Par exemple, pour monter l'image dans le répertoire /mnt/cdrom, on fera :

   mount image.iso -t iso9660 -o loop /mnt/disk

Quelques options pratiques de mkisofs
Il existe beaucoup d'autres options qui sont documentées dans la page de manuel.
Il convient de signaler également que mkisofs est par défaut lancé avec l'option -pad qui rajoute 16 blocs ou secteurs à la fin de la piste (soit 32ko) et en ajoute un certain nombre pour que la taille de l'image soit un multiple de 16. D'après la documentation, ceci est nécessaire pour assurer une lecture correcte des derniers fichiers du Cd-Rom sous Linux.

Gravure directe des données

La méthode consiste à rediriger directement la sortie de mkisofs vers cdrecord sans passer par un fichier image intermédiaire. Il faut auparavant obtenir la taille de l'image à graver. Pour cela, si les données à sauvegarder se trouvent par exemple dans le répertoire /home/copie , on tape dans une console :

   mkisofs -R -q -print-size /home/copie

L'option -R sert à créer une image au format Rock Ridge, l'option -q (quiet) sert à limiter les informations qui seront affichées et l'option -print-size va donner la taille de l'image.
Ceci renvoie la taille de l'image en nombre de secteurs. On relance ensuite mkisofs en redirigeant la sortie standard vers cdrecord. Par exemple, si la taille de l'image est de 1000 blocs, on saisira :

   mkisofs -R /home/original 2>/dev/null | cdrecord -v -dao speed=12 dev=y,z tsize=1000s -

La directive 2>/dev/null permet de rediriger les messages de mkisofs (la sortie stdout) vers le périphérique vide /dev/null afin qu'ils ne soient pas affichés (ceci n'est pas indispensable).
Les options -v et -dao sont optionnelles.
L'option tsize permet de spécifier la taille de l'image.
Le "s" à la fin sert à spécifier qu'il s'agit de secteurs (ou blocs). Si on l'omet, il faut spécifier la taille en octets (1 secteur ou bloc est équivalent à 2048 octets de données).
Enfin le signe - à la fin est obligatoire et permet de dire à cdrecord de rechercher les données dans la sortie de mkisofs.
Certains graveurs acceptent de graver sans connaître la taille de l'image. Dans ce cas, il est inutile de préciser l'option tsize (cela risque malgré tout de ne pas fonctionner en mode DAO).

Si l'on souhaite automatiser cela dans un script, on peut utiliser une variable pour stocker la taille de l'image. Par exemple, on pourra avoir quelque chose du type :

   taille=`mkisofs -R -q -print-size /home/copie`

Le symbole ` est obtenu par Alt Gr 7.
On récupère l'information dans cdrecord par :

   mkisofs -R /home/copie 2>/dev/null | cdrecord -v -dao speed=12 dev=y,z tsize=${taille}s -


Copie d'un Cd-Rom de données

Il existe deux méthodes pour cela : la copie directe d'un lecteur vers le graveur et la copie indirecte par création d'images.
Avant de commencer, il faut s'assurer qu'il s'agit d'un disque mono-session (le cas d'un disque multi-session est abordé plus loin). En effet, si le disque comporte plusieurs sessions, seule la première sera copiée. Utilisez cdrdao avec l'option disk-info pour obtenir le nombre de sessions sur le disque (utilisez le graveur pour que cdrdao lise les informations).

Copie directe

Copie avec cdrecord
La méthode la plus simple pour copier un Cd dans ce cas est d'utiliser cdrecord. Par exemple, si le disque à copier se situe dans le lecteur dont le fichier de périphérique est /dev/hdc, alors on tapera :

   cdrecord -v -dao -isosize speed=12 dev=y,z /dev/hdc

L'option -dao évite qu'il y ait deux secteurs illisibles en fin de piste (ceci n'est pas indispensable).
Avec l'option -isosize, cdrecord utilise la taille du système ISO-9660 comme taille de l'image qui sera gravée. Ceci évite de lire les deux secteurs illisibles éventuels si le disque original a été gravé en mode Track at Once et des risques de buffer under run. La taille de la piste copiée sera ainsi inférieure à celle du disque original (outre les deux secteurs, d'autres secteurs vides ajoutés en fin ne seront pas non plus copiés).
Si l'on veut faire une copie exacte du Cd-Rom (pistes de même taille), il faut supprimer cette option (si le graveur accepte la copie) et supprimer également l'option -dao si le disque original a été créé en mode Track at Once.

Copie avec cdrdao
Une autre façon de faire consiste à utiliser cdrdao. Si par exemple, les deux derniers chiffres SCSI du lecteur sont 0,0 et ceux du graveur 1,0, alors on entre dans une console :

   cdrdao copy --source-device 0,0 --device 1,0 --on-the-fly

Il faut préciser les options --source-driver et --driver si le lecteur et le graveur ne sont pas reconnus (ou entrer ces valeurs dans le fichier de configuration, voir la section Configuration des programmes plus haut).

On obtient une copie exacte si le disque original a été crée en mode Disc at Once sinon cdrdao va ajouter deux secteurs vides mais lisibles à la place des deux secteurs illisibles de fin de piste (en affichant un message du type "Warning: Padding with 2 zero sectors"). Pour qu'il ne crée pas ces deux secteurs, il faut activer l'option --tao-source.
Si l'option --on-the-fly n'est pas précisée, cdrdao va créer une image sur le disque qui sera effacée par la suite (pour la conserver, entrer l'option --keepimage).

Copie indirecte (utilisation d'une image)

C'est la méthode qu'il faut suivre si l'on ne dispose que d'un graveur qui est utilisé également comme lecteur.
Méthode simple
Le plus simple est alors d'utiliser cdrdao. Par exemple, si le disque original est dans le graveur, il suffit de taper dans une console :

   cdrdao copy --device y,z

Le programme crée une image qui est effacée à la fin (voir plus haut pour la conserver). A la fin de la lecture, cdrdao va demander d'entrer un disque dans le graveur. On peut ignorer le message éventuel, "Error: cannot determine disk status: hit enter and try again". La copie sera exacte si le disque original a été créé en mode Track at Once et cdrdao ajoutera deux secteurs vides dans le cas contraire (voir plus haut).

Et pour les H4x0rz ;-) ... (utilisation avancée)
On peut utiliser également les programmes dd ou readcd pour créer une image d'un disque. Pour cela, on tape dans une console pour dd, si le lecteur est /dev/hdc et que l'on souhaite créer une image nommée image.raw dans le répertoire courant :

   dd if=/dev/hdc of=image.raw

ou avec readcd  (il faut alors un lecteur SCSI ou émulé SCSI) :

   readcd dev=y,z f=image.raw

Il est préférable d'utiliser readcd car celui-ci fait plusieurs essais si la lecture sur le disque est difficile du fait d'un endommagement, ce que dd ne fait pas.
Dans les deux cas, il faut préciser le chemin si l'on ne souhaite pas que l'image soit créée dans le répertoire courant. Par ailleurs, le nom de l'image et l'extension (optionnelle) n'importent pas.

On grave ensuite l'image avec cdrecord :

   cdrecord -v -dao dev=0,0 image.raw

Il est possible que les deux programmes signalent des erreurs d'entrée-sortie ("Input/output error"). Ceci vient probablement de ce que le disque initial a été créé en mode Track at Once, les deux programmes ne pouvant lire les deux secteurs illisibles en fin de piste. Normalement, les images sont utilisables. Si l'on veut éviter ces erreurs, il faut déterminer la longueur de la piste avec cdrdao :

   cdrdao read-toc --device y,z image.toc

Avec la commande read-toc, cdrdao lit la Table des Matières (la TOC) et renvoie les informations de début et de fin de piste à l'écran. Il faut impérativement préciser un fichier (dont le nom importe peu) dans lequel sera stockée la longueur de la piste.
L'image est par défaut stockée dans le répertoire courant si l'on ne précise aucun chemin. Si l'on veut éviter que cdrdao crée ce fichier qui n'est pas utile ici et qu'il faudra effacer, il suffit de donner un nom de répertoire qui n'existe pas (cdrdao signale une erreur mais affiche les informations nécessaires à l'écran).
Les valeurs sont données au format mm:ss:bb avec mm le nombre de minutes, ss le nombre de secondes et bb le nombre de blocs à ajouter. Une seconde d'enregistrement représente 75 blocs et une minute 60 secondes. La conversion en nombre de blocs est donnée par cdrdao entre parenthèses.
Par exemple, si cdrdao renvoie les valeurs 00:00:00 (0) dans la colonne Start et les valeurs 00:42:55 (3205) dans la colonne Length, ceci signifie que la piste débute au secteur 0 et a une longueur de 3205 blocs (42x75 + 55).
Comme le disque a été écrit en mode Track at Once, il faut retirer les deux secteurs illisibles et copier 3203 secteurs.
Pour cela, on utilise uniquement readcd car dd continue de signaler des erreurs d'entrée-sortie :

   readcd dev=y,z sectors=0-3203 f=image.raw

qui demande à readcd de lire du secteur 0 au secteur 3202 inclus, soit 3203 secteurs (il faut entrer sectors=0-3203 car readcd arrête la lecture au début du secteur 3203 et lit ainsi jusqu'au secteur 3202).
Il suffit ensuite de graver l'image avec cdrecord comme indiqué plus haut (avec le paramètre -dao si l'on veut un Cd en mode Disc at Once, sans si l'on veut faire une copie exacte du disque et conserver un disque en mode Track at Once (les deux secteurs illisibles seront alors rajoutés)).

On peut chercher à savoir au départ s'il s'agit d'un disque gravé en mode DAO ou en mode TAO. Pour cela, on récupère les informations de début et de longueur de piste avec cdrdao puis l'on essaie de lire les deux derniers secteurs avec readcd (pour l'exemple précédent, readcd dev=y,z sectors=3203-3205 f=essai, effacer ensuite le fichier essai). En cas d'errreur, il s'agit d'un disque gravé en mode TAO (à moins que le disque d'origine ne soit endommagé).

Une autre méthode consiste à utiliser cdrdao pour faire une image et la graver (ou cdrecord pour la graver) :

   cdrdao read-cd --device y,z --datafile image.raw image.toc

Il faut impérativement préciser le nom d'un fichier pour la Table des Contenus (TOC).
Si l'option --datafile n'est pas précisée, l'image sera stockée sous le nom data.bin dans le répertoire courant.
L'image sera conforme au disque initial si celui-ci a été gravé en mode DAO et deux secteurs vides termineront la piste s'il a été réalisé en mode TAO (sauf si l'option --tao-source est activée).
L'image est ensuite gravée en utilisant le fichier TOC :

   cdrdao write /home/image.toc

Il ne faut pas préciser le nom de l'image car celui-ci est présent dans le fichier image.toc.
L'image peut également être gravée avec cdrecord (avec l'option -dao, cela conduit au même résultat et sans, l'image comportera 4 secteurs de plus que la piste du disque original (les 2 secteurs vides rajoutés par cdrdao et les 2 secteurs illisibles du au mode TAO)).

Copie "logique"
Enfin, une dernière façon de procéder est possible. Elle consiste à monter le disque à graver dans un répertoire, à en faire une image avec mkisofs puis à la graver.
Note de Jice : je nomme cette copie "logique", par opposition à "physique", car on n'a alors pas une copie parfaite ou quasi parfaite du CD d'origine, mais la copie conforme de tous les fichiers et répertoires (ce qui est quand même le but recherché !).

Par exemple, on pourra faire si le disque original est sur /dev/hdc :

   mount -t iso9660 /dev/hdc /mnt/cdrom
   mkisofs -R -J -q -print-size /mnt/cdrom
   mkisofs -R -J /mnt/cdrom 2>/dev/null | cdrecord -v -dao speed=12 dev=y,z tsize=5000s -

si mkisofs renvoie 5000 comme taille de l'image (voir plus haut) et pour une image au format Rock Ridge (-R) et Joliet (-J).
Les tailles de piste entre le disque original et la copie différeront probablement mais toutes les données seront sauvegardées.


Cd-Rom multi-sessions

Si on veut par exemple utiliser le même disque pour faire plusieurs sauvegardes successives, il faut créer un disque multi-sessions. Cela permet de créer un disque que l'on pourra lire entre temps et sur lequel on pourra par la suite rajouter des données.
Chaque session contient une piste de données ainsi qu'une Table des Matières qui est liée à la suivante, ce qui permet d'avoir accès à l'ensemble du contenu du disque.

Création d'un disque multi-sessions

La création d'un Cd-Rom de données multi-sessions est très simple. Il suffit d'ajouter quelques options à mkisofs et cdrecord.

Prenons un exemple :
Dans un premier temps, on cherche à sauvegarder le contenu du répertoire /home/session1. Pour cela, on réalise l'image de la façon habituelle :

   mkisofs -R -o session1.raw /home/session1

D'après la documentation, il est indispensable de graver l'image au format Rock Ridge (l'option -R).
On grave ensuite l'image sous cdrecord avec l'option -multi :

   cdrecord dev=y,z -v -multi session1.raw

L'option -dao peut être activée mais seulement pour la première session (cela ne semble pas fonctionner pour les autres avec cdrecord).
La première session est ainsi gravée et lisible comme n'importe quel autre CD-Rom.

Si l'on veut ensuite rajouter une autre session, il faut obtenir quelques informations sur le Cd-Rom. Pour cela, on place le Cd-Rom à graver contenant les premières sessions dans le graveur et on tape dans une console :

   cdrecord -msinfo dev=y,z

Ceci donne deux chiffres qui sont respectivement le numéro de bloc du début de la dernière session et le numéro de bloc du début de la prochaine session (en fait, en multi-sessions, chaque Table des Matières est liée à la suivante). On note respectivement ces deux chiffres xxx et yyy.
Maintenant, si on souhaite graver une autre session qui contiendra le contenu du répertoire /home/session2, il faut inclure ces informations dans mkisofs. Si le disque contenant les sessions précédentes se trouve dans le graveur (dont le fichier de périphérique est /dev/scd0), on entre :

   mkisofs -R -o session2.raw -C xxx,yyy -M /dev/scd0 /home/session2

Note : il est même possible de remplacer le paramètre -M /dev/scd0 par -M session_precedente.raw si session_precedente.raw est l'image de la dernière session gravée (bien sûr, en général on ne dispose plus de ce fichier).

On grave ensuite cette nouvelle session de façon habituelle :

   cdrecord -v -multi dev=0,0 session2.raw

Note : on peut supprimer l'option -multi si l'on ne souhaite plus rajouter de nouvelle session par la suite.

Copie d'un Cd-Rom multi-sessions

La façon la plus simple de procéder est de monter le Cd-Rom sur un répertoire, d'en faire une image avec mkisofs puis de la graver avec cdrecord (éventuellement avec l'option -multi si l'on souhaite ajouter d'autres sessions par la suite).
Le nouveau disque ne comportera qu'une seule session mais contiendra l'ensemble des fichiers du disque original, ce qui est le plus important. Voir le paragraphe Copie logique.

Si l'on souhaite malgré tout faire une copie du disque original qui contienne le même nombre de sessions, il faut obtenir les informations sur le début et la longueur de chaque session et savoir si les sessions ont été gravées en mode DAO ou en mode TAO.

Dans un premier temps, on détermine le nombre de sessions sur le disque avec la commande cdrdao disk-info --device y,z.

Ensuite, on cherche le début et la longueur de chaque session. Par exemple, supposons que le disque original soit constitué de deux sessions. On tape alors dans une console :

   cdrdao read-toc --device y,z --session 1 session1.toc

avec session1.toc le nom du fichier qui sera créé, le paramètre --session 1 permettant de lire les informations sur la première session (si l'on ne veut pas que cdrdao crée le fichier session.toc qui est inutile ici, il suffit d'entrer un nom de chemin inexistant (cdrdao renvoie un message d'erreur mais affiche les informations nécessaires)).
Supposons que sous la colonne Start, soit inscrit 00:00:00 et sous la colonne Length 03:00:06 (13506). Ceci signifie que la première session débute au bloc 0 et à une longueur de 13506 blocs ((3x60x75)+6).
On fait de même pour la deuxième session :

   cdrdao read-toc --device y,z --session 2 session2.toc

Supposons que cdrdao renvoie un début de deuxième session au bloc 24906 et une longueur de 14568 blocs et une fin de piste en 39474 (la colonne Start=, et la ligne lout) ce qui correspond également à la somme des deux premiers.
On peut alors savoir si les sessions ont été gravées en mode DAO ou en mode TAO en essayant de lire les deux derniers secteurs de chacune d'entre elles. Par exemple, pour la première session, on fera :

   readcd dev=y,z sectors=13504-13506 f=result

Si le disque a été gravé en mode TAO, readcd va renvoyer un message d'erreur (effacer le fichier result dans le cas contraire). Il n'est peut être pas nécessaire de faire cela pour les autres sessions car elles ont probablement été créées en mode TAO.
On réalise ensuite les images des deux sessions à partir du disque original en supprimant le cas échéant les 2 blocs de fin (les blocs illisibles liés à la gravure en TAO) :

   readcd dev=y,z sectors=0-13504 f=session1.raw
   readcd dev=y,z sectors=24906-39472 f=session2.raw

On grave ensuite la première session avec cdrecord :

   cdrecord -v -multi dev=y,z session1.raw

On peut ensuite vérifier, par exemple avec cdrdao que la première session gravée débute en 0 pour se terminer en 13506 et que la deuxième session débute en 24906 pour finir en 39474.

Note : il est possible de graver la première session avec cdrdao mais il faut ensuite utiliser cdrecord pour les suivantes car cdrdao décale la suivante de deux secteurs (la deuxième session est alors illisibles car les liens entre les deux ne sont plus corrects). Par ailleurs, si l'on enregistre la première session avec cdrdao, celle-ci sera enregistrée au format Mode 2, Forme 2 avec 2336 octets par secteur. La deuxième session, s'il s'agit de la dernière, sera en revanche enregistrée au format de données avec 2048 octets par secteurs. La première session doit alors être gravée avec cdrado avec l'option --multi mais la deuxième doit l'être avec cdrecord.


Copie de Cd audio

La copie d'un disque audio peut se faire d'au moins trois façons: avec cdrdao, en combinant cdda2wav et cdrecord ou encore en combinant cdparanoia et cdrecord.

Méthode 1 : cdrdao

Ce logiciel permet de faire une copie directe du lecteur vers le graveur. Il faut que les deux soient reconnus comme des périphériques SCSI (par émulation ou non). Pour ce, si par exemple les deux derniers chiffres SCSI du lecteur sont 0,0 et les deux derniers du graveur 1,0, il suffit de faire :

   cdrdao copy --source-device 0,0 --device 1,0 --on-the-fly

L'option --speed suivie de la vitesse permet de régler la vitesse de gravure.

Pour faire une copie indirecte du graveur vers le graveur, il suffit de taper :

   cdrdao copy --device y,z fichier.toc

Il faut impérativement préciser un nom de fichier (ici fichier.toc, le nom peut être quelconque) dans lequel cdrdao va enregistrer des informations sur la Table des Matières (la TOC).
Le programme cdrdao va lire les pistes et créer une image dans le répertoire courant (nommée cddaxxx.bin, xxx étant un nombre aléatoire). Pour conserver cette image, il faut utiliser l'option --keepimage.
A la fin de la lecture, il demande d'insérer un disque et d'appuyer sur la touche Entrée. A priori, on peut ignorer les erreurs du type "ERROR: Cannot determine disk status - hit enter to try" ou encore "Cannot read CD text data - maybe not supported by drive" (dans ce dernier cas, c'est que le graveur ne peut pas lire les informations CD-Text qui contiennent le nom de l'artiste, le titre de l'album et le titre des pistes, ou que ces informations ne sont pas présentes sur le disque).

Le fichier de TOC contient un certain nombre d'informations importantes. En voici un exemple pour les trois premières pistes d'un disque :

   // Track 1
   TRACK AUDIO
   NO COPY
   NO PRE_EMPHASIS
   TWO_CHANNEL_AUDIO
   SILENCE 00:00:32
   FILE "data.wav" 0 04:04:46
   START 00:00:32

   // Track 2
   TRACK AUDIO
   NO COPY
   NO PRE_EMPHASIS
   TWO_CHANNEL_AUDIO
   FILE "data.wav" 04:04:46 03:03:68
   START 00:02:42

   // Track 3
   TRACK AUDIO
   NO COPY
   NO PRE_EMPHASIS
   TWO_CHANNEL_AUDIO
   FILE "data.wav" 07:08:39 04:20:50
   START 00:02:06

Les durées sont exprimées au format mm:ss:bb, avec mm le nombre de minutes, ss le nombre de secondes et bb le nombres de blocs ou secteurs. Une seconde audio représentant 75 blocs, ce dernier compteur va de 0 à 74 (à 75, on le met à 0 et on incrémente le compteur de secondes qui va de 0 à 59).
La ligne SILENCE 00:00:32 signifie que la piste un débute par un silence de 32 secteurs (il s'agit d'un "pre-gap"). La ligne FILE "data.wav" 0 04:04:46 indique que le début de la piste 1 est fixé à 0 et qu'elle à une longueur de 04:04:46. Enfin, la ligne START 00:00:32 indique que le titre débute après 32 secteurs.
En fait, la piste est positionnée au secteur 0 du disque, le lecteur va lire depuis le début du disque et commencer à décompter le début du titre (de la chanson par exemple) à partir du secteur 32. Puis, le compteur va tourner pendant une durée de 04:04:46 avant de commencer le décompte de l'intervalle avant le deuxième titre.
Celui-ci a une durée de 00:02:46 comme indiqué sur la ligne START de la piste 2. Le titre dure lui 03:03:68.
Physiquement, la piste 1 commence au secteur 0 et à une longueur équivalente à une durée de 04:07:13 (04:04:46+00:02:42) ce qui correspond à 18538 secteurs (soit ((4x60)+07)x75+13) car l'intervalle avant la prochaine piste est inclut dedans.
La piste 1 débutant en 0, elle se termine au secteur 04:07:12 et la piste 2 débute au secteur 04:07:13. Elle a une longueur de 03:03:32 (03:03:68-00:02:42+00:02:06). La piste 3 commencera ainsi physiquement au secteur 07:10:45 (04:07:13+03:03:32).

La ligne SILENCE 00:00:32 aurait pu être omise. Dans ce cas, on aurait eu pour la piste 1 les lignes FILE "data.wav" 0 04:05:03 et START 00:00:32 et pour la piste 2 FILE "data.wav" 04:05:03 03:03:68 et START 00:02:42.
La piste 1 aurait toujours eu une longueur de 04:07:13 (04:05:03-00:00-32+00:02:42). La différence avec la version précédente est que les 32 secteurs de silence initial sont inclus dans le fichier data.wav.

On peut récupérer ces informations sur la TOC en utilisant la commande read-toc :

   cdrdao read-toc --device y,z file.toc

qui va se contenter de créer le fichier file.toc.
Si l'on ajoute l'option --fast-toc, le fichier obtenu ne contient que la durée totale des pistes ainsi que leur secteur de début, les indications sur les intervalles entre pistes étant omises. Un disque copié avec cette méthode aura perdu ces informations.

La commande show-toc permet elle d'afficher les informations contenues dans un fichier. Par exemple :

   cdrdao show-toc file.toc | less

affichera notamment la durée des intervalles (pregap), le secteur de début de la piste et le secteur de fin sur le disque.

Il est possible également d'enregistrer d'abord l'image sur le disque puis de la graver ensuite. On crée l'image par la commande :

   cdrdao read-cd --device y,z file.toc

et on la grave ensuite par :

   cdrdao write --device y,z file.toc

L'option --datafile suivie du nom à donner permet de donner un nom à l'image autre que le nom par défaut.
L'image qui est créée contient les pistes sous forme brute, c'est-à-dire le contenu des secteurs audio du secteur 0 au secteur de fin de disque, y compris les silences entre pistes. Elle sera multiple de 2352 puisque un secteur audio utilise les 2352 octets d'un secteur. En fait, si l'on fait la somme de la durée totale des pistes et qu'on les convertit en octets, on obtient la longueur du fichier image. Par exemple, si le disque précédent est limité au trois pistes alors, la piste 3 ayant une durée de 04:21:28, la durée totale de l'image est de 11:31:73 (04:07:13+03:03:32+04:21:28) ce qui correspond à 51898 secteurs. Ceci occupe 122064096 octets sur le disque (51898x2352). Dans les deux cas précédents, les 32 secteurs de silence de 32 secteurs au début du disque ne sont pas inclus dans l'image.

Une dernière chose mérite d'être signalée. Comme le précise le manuel de cdrdao, la copie effectuée sera plus ou moins exacte. Par exemple, avec certains graveurs, la durée physique des pistes est la même mais la durée du titre est augmentée d'un secteur, celui de l'intervalle étant réduit du même secteur. Ceci affecte seulement le moment où le lecteur indique la fin de la piste (il indique la fin de la piste un secteur plus tard) mais cela ne change rien à ce que l'on entend.

Méthode 2 : cdda2wav et cdrecord

La méthode consiste à extraire les pistes audio avec cdda2wav pour en faire des fichiers d'ondes (qui ont souvent l'extension .wav) puis à les graver avec cdrecord . Si le lecteur audio correspond au fichier de périphérique /dev/hdc, on enregistre les pistes avec :

   cdda2wav -v255 -B -D/dev/hdc

On grave ensuite les pistes par :

   cdrecord -v -dao -useinfo dev=y,z audio_*.wav

Tout ceci mérite quelques explications. Commençons par cdrecord.

L'option -dao demande de graver le disque en mode Disc at Once, l'option -useinfo indique qu'il faut utiliser les fichiers inf créés par cdda2wav et l'argument audio_*.wav précise que les pistes à graver correspondent aux fichiers indiqués.

En effet, cdda2wav sauvegarde les pistes dans des fichiers audio_xx.wav avec xx un nombre allant de 01 au nombre total de pistes sur le disque.
En ce qui concerne ce dernier, l'option -D sélectionne le lecteur sur /dev/hdc (il est également possible de sélectionner un périphérique SCSI, par exemple en entrant par exemple -D y,z).
L'option -v255 active le mode bavard au niveau maximal (pour les différents niveaux possibles, consulter la page de manuel, sachant qu'il faut additionner les chiffres correspondant à chaque niveau). Il faut l'activer au moins au niveau 4 pour que cdda2wav enregistrer les marques de fin de piste (pour les intervalles). Dans le cas contraire, la copie contiendra des pistes de longueur physique égale à celles de l'original mais tous les intervalles entre les pistes auront une longueur de 2 secondes (en fait 00:01:74) pour être conforme à la norme définie dans le Red Book qui définit les Cd audio.
L'option -B permet de créer un fichier .wav pour chaque piste. En l'absence de cette option, un seul fichier sera créé pour l'ensemble du disque et la copie ne contiendra qu'une seule piste.
Il existe un certain nombre d'options documentées dans la page de manuel ou dans la documentation de cdda2wav. Par exemple, l'option -t2 sauvegarde les pistes de la deuxième à la dernière. L'option -t2+4 sauvegarde les pistes 2 à 4 et l'option -t2+2 sauvegarde uniquement la piste 2. L'option -S suivie de la vitesse permet de sélectionner la vitesse du lecteur (ne pas dépasser la vitesse maximale indiquée par le constructeur pour éviter les erreurs de lecture).
L'option -J permet de créer uniquement les fichiers inf (faire par exemple cdda2wav -J -D/dev/hdc). Par défaut, le mode bavard est activé pour sauvegarder les marques de fin de pistes. Il faut activer l'option -vX avec X<4 si l'on ne veut pas les enregistrer.
Ces fichiers nommés par défaut audio_xx.inf ( xx allant de 01 au nombre total de pistes) contiennent un certain nombre d'informations importantes comme le titre de l'album, le titre des pistes, le début de la piste ("Trackstart") ou la longueur de la piste ("Tracklength"). Ces fichiers contiennent également une ligne "Index0" qui contient le début de l'intervalle entre pistes. Toutes les longueurs sont exprimées en blocs (ou secteurs).
Avec cette méthode, la copie peut être plus ou moins parfaite. Par exemple, avec certains graveurs, la durée des titres est supérieure de 8 secteurs à celle de l'originale et la longueur de l'intervalle réduite de 8 secteurs. Ceci ne change strictement à la durée totale des pistes mais affecte seulement les durées affichées par le lecteur.

Méthode 3 : cdparanoia et cdrecord

Cette méthode est identique à la précédente à la différence que l'on perd les informations sur les intervalles.
cdparanoia a ceci de différent par rapport à cdda2wav qu'il permet de faire de la correction d'erreurs, ce qui peut être intéressant dans le cas d'un CD audio rayé. Si vous entendez des craquements dans les CD copiés avec cdda2wav, essayez cdparanoia. La contre-partie est un temps de copie des pistes audio qui peut être plus long.

On lance cdparanoia pour sauvegarder les pistes par :

   cdparanoia -v -B -d /dev/hdc

Ceci va créer un ensemble de fichiers nommés trackxx.cdda.wav avec xx un nombre compris entre 01 et le nombre total de pistes. Ces fichiers sont créés dans le répertoire courant.
L'option -v active le mode bavard, l'option -B permet de créer un fichier par piste (en son absence, un seul fichier wav est créé, correspondant à la durée totale du disque) et l'option -d permet de sélectionner le lecteur.
Il est possible que cdparanoia crée un fichier track00.cdda.wav. Ce sera le cas avec l'exemple précédent du fait du silence de 32 secteurs avant le début réel de la piste 1. Il est préférable de le supprimer afin d'éviter d'avoir une piste vide au début du disque. De plus, si la durée de la piste est inférieure à 4 secondes (300 secteurs), il est fort possible que le graveur refuse de la graver et génère une erreur.
On les grave ensuite par :

   cdrecord -v -dao dev=y,z track*.cdda.wav

Par défaut, si l'extension des fichiers est wav ou au, cdrecord considère qu'il s'agit de fichiers audio et l'option -audio est activée par défaut. Il faut l'activer si l'extension des fichiers est différente.
Avec cette méthode, les intervalles entre les pistes sont tous égaux à 2 secondes (ce qui ne change rien à l'écoute du disque mais modifie seulement la façon dont le lecteur affiche les durées). Si l'on veut supprimer ces intervalles, il faut ajouter l'option defpregap=0 . De façon générale, l'option defpregap indique l'intervalle entre toutes les pistes en secteurs (sans modifier le début de la première). Si l'on veut définir séparément chaque intervalle, il faut utiliser l'option pregap=# qui définit l'intervalle avant la prochaine piste exprimé en nombre de secteurs (par exemple cdrecord -v -dao dev=y,z track01.cdda.wav pregap=75 track02.cdda.wav pregap=150 track03.cdda.wav pour un intervalle de 1 seconde entre la première piste et la deuxième et un intervalle de 2 secondes entre la deuxième et la troisième).

Le programme cdparanoia permet également de tester la capacité d'extraction du lecteur. Pour cela, il suffit de taper :

   cdparanoia -vQ /dev/hdc

qui va afficher le message "Verifying drive can read CDDA..." puis, si l'extraction audio est possible, le message "Expected command set reads OK" et afficher la TOC.
Comme pour cdda2wav, il existe un certain nombre d'autres options. Il est par exemple possible de n'extraire qu'une partie d'une piste. On peut également signaler l'option -pad qui complètera les pistes si leur longueur n'est pas multiple de 2352, évitant ainsi des erreurs de gravure (ce peut être le cas dans des cas autres que la copie, par exemple si les fichiers ont été obtenus par conversion à partir de fichiers mp3).
Les fichiers d'ondes créés par cdda2wav ou par cdparanoia sont strictement identiques. Leur longueur est égale au nombre de blocs multiplié par 2352, auquel il faut ajouter 44 octets d'en-tête du fichier.

Il est enfin possible de combiner les deux méthodes précédentes en enregistrant les pistes à partir de cdparanoia, en récupérant les informations sur les marques de fin avec cdda2wav et en gravant les pistes avec cdrecord.
Pour cela, on procède par exemple en trois étapes.
On crée les fichiers inf par :

   cdda2wav -J -D /dev/hdc track

Le paramètre track permet de créer des fichiers nommés track_*.inf.
On enregistre ensuite les pistes par :

   cdparanoia -B -d /dev/hdc 1- wav

Ceci permet de créer des fichiers qui seront nommés track*.wav du fait de la présente du paramètre track . L'option 1- est indispensable avec le paramètre wav , elle permet de sauvegarder toutes les pistes (de la 1 à la dernière).
Comme on veut utiliser les fichiers inf, il faut renommer tous les fichiers track_*.inf en track*.inf.
On utilise pour cela la commande suivante :

   for i in *.inf ; do j=$(echo $i | tr -d '_') ; mv $i $j ; done

La commande tr -d '_' permet de supprimer le caractère de soulignement. Si l'on a enregistré les pistes sous le nom track*.cdda.wav (l'option par défaut de cdparanoia ), il faut ensuite lancer la commande suivante :

   for i in track??.inf ; do j=$echo( $i | tr -d '.inf').cdda.inf ; mv $i $j ; done

On grave ensuite les pistes par :

   cdrecord -v -dao -useinfo dev=y,z track*.wav


Les CD mixtes

Il existe certains disques qui mélangent données (notamment des fichiers video) et audio d'une façon particulière, c'est-à-dire sur une même première piste. Ainsi, sur un disque, cdrdao indique une première piste audio avec un début en 15:15:15. Le début de la piste est constitué de données lisibles avec dd ou avec readcd.
La copie d'un tel disque avec cdrdao ne semble pas possible : les données sont illisibles et les pistes audio sont décalées (la piste 1 devient la piste 4 et les dernières pistes ne sont pas copiées). Ceci paraît normal dans la mesure où données et audio n'occupent pas le même espace sur un secteur.
Au demeurant, les données ont été enregistrées dans le format hybride hfs, lisibles par un PC (ici Joliet) et par un Macintosh.
Le plus simple si l'on souhaite conserver les données est de créer un Cd-Extra contenant les pistes audio dans une première session et les données dans une deuxième. Ainsi, seules les pistes audio seront affichées par le lecteur audio mais la piste de données sera accessible par un ordinateur.

Création du Cd-Extra

Pour cela, le plus simple est d'enregistrer les pistes audio avec cdda2wav ou cdparanoia (ou de combiner les deux) et de les graver avec cdrecord en mode multissession (on n'utilise pas cdrdao car il faut sauvegarder seulement les pistes audio et pas les données situées au début du disque). Par exemple, si les pistes ont été enregistrées avec cdda2wav , on fera :

   cdrecord -v -dao -multi dev=0,0 audio_*.wav

Il faut ensuite récupérer les informations sur le début de la première session et le début de la prochaine sur le disque par la commande cdrecord dev=y,z -msinfo (la copie étant dans le graveur). Ceci va renvoyer deux nombres que l'on appelera n1 et n2. Ensuite, pour faire l'image des données, le plus simple est ensuite de monter le disque au format hfs pour faire une image des données (il faut que l'option hfs soit activée dans le noyau, il s'agit de la rubrique File systems, Apple Macintosh file system support).
Pour être le plus fidèle possible, il faut même cacher les fichiers Apple en mode Joliet. Pour cela, le plus simple est d'utiliser l'option hide-joliet-list de mkisofs. On crée alors un fichier contenant la liste des fichiers et répertoires et supprimer les fichiers accessibles en Joliet afin qu'il ne reste que les fichiers Apple (et inversement certainement pour les fichiers Joliet à masquer en hfs).
Le disque original sera monté par la commande mount -t hsf /dev/hdc /cdrom (si le périphérique de lecture est lié à /dev/hdc et le répertoire de montage est /cdrom.
On crée ensuite la liste dans le répertoire courant par ls /cdrom > liste, ce qui génère le fichier nommé liste que l'on édite pour effacer les fichiers accessibles uniquement en Joliet.
On peut alors en faire une image (nommée image.raw dans le répertoire courant) par la commande mkisofs -hfs -J -hide-joliet-list liste -o image.raw -C n1,n2 /cdrom. Il est inutile d'utiliser l'option -M car il ne faut pas lier les deux sessions (la deuxième n'a pas besoin d'accéder à la TOC de la première).
On grave ensuite la deuxième session normalement avec cdrecord (cdrecord -v dev=y,z image.raw).

Copie d'un Cd-Extra

La copie d'un tel disque et d'un Cd-Extra en général peut se faire de plusieurs manières.
Une première méthode consiste à procéder comme ci-dessus en enregistrant les pistes audio avec cdda2wav ou cdparanoia et à en faire une première session pour à refaire une image de la session de données pour en refaire une deuxième session.
Une autre méthode consiste à enregistrer chaque session avec cdrdao et à les graver ensuite (on utilise cdrdao pour garder la taille de la première session).
Pour sauvegarder la première session, on fera par exemple :

   cdrdao read-cd --device y,z --session 1 --datafile session1.bin session1.toc

qui va générer une image nommée session1.bin et un fichier de la Toc nommé session1.toc. On sauvegarde ensuite la deuxième session par :

   cdrdao read-cd --device y,z --session 2 --datafile session2.bin session2.toc

On définit ici les noms des images car en l'absence de cette option cdrdao va utiliser le nom data.bin et la deuxième image viendra écraser la première (ou alors, il faut créer la première image et l'enregistrer et créer ensuite la deuxième).

On peut alors passer à la gravure des deux sessions.
On grave la première avec cdrdao car il s'agit de pistes audio (cdrecord ne créerait qu'une seule piste). Il faut toutefois modifier légèrement le fichier session1.toc du fait de la multisession. Pour cela, il faut éditer ce fichier et remplacer la première ligne CD_DA par CD_ROM_XA. On grave alors la première session par :

   cdrdao write --device y,z --multi session1.toc

Pour la deuxième session, il faut utiliser cdrecord. En effet, l'image de la deuxième session contenant l'adresse de fin de la première et l'adresse du début de cette deuxième session, il faut impérativement que celle-ci soit située exactement au même endroit sur le disque. Or, cdrdao grave cette deuxième session avec un décalage de 2 secteurs ce qui rend le disque illisible.
On utilise donc cdrecord qui ne produit pas ce décalage :

   cdrecord -v dev=y,z session2.bin

Il est possible de recréer la première session avec cdda2wav (ou cdparanoia) et cdrecord mais il faut s'assurer que cette session aura exactement la même taille que l'orginal car il faut que la deuxième soit située au même endroit. En effet, la deuxième session contient son adresse sur le disque et il faut donc que la copie soit située au même endroit.


Graver une image .bin/.cue

(par Jice)
Un logiciel windows bien connu produit ce genre de fichiers en tant qu'images de CD. Le contenu du CD est stocké dans un (gros) fichier le_cd.bin, tandis que la table des matières du CD est dans un fichier du même nom, le_cd.cue. On trouve fréquemment ce type de fichiers sur internet.

Sous Linux, vous pouvez graver cette image de cd, avec cdrdao. Il suffit simplement de remplacer le fichier .toc par le fichier .cue, car cdrdao comprend aussi la syntaxe des fichiers .cue. Par exemple :

   cdrdao write --device 1,0,0 --driver generic-mmc /home/jice/le_cd.cue

Note 1 : le seul problème que vous puissiez avoir dans ce cas provient des noms de fichiers contenant des espaces. Si vos fichiers se nomment "le cd.bin" et "le cd.cue", renommez-les respectivement "le_cd.bin" et "le_cd.cue", et éditez le fichier .cue, afin de mettre à jour la ligne qui contient le nom du fichier .bin avec le nouveau nom.

Note 2 : cdrdao ne sait pas produire de fichiers .cue à partir d'un CD. Je ne sais pas actuellement comment faire cela sous Linux.


Conclusion

(par Jice)
Cet article vous permettra d'utiliser au mieux votre graveur de CD. Pour de nombreuses opérations, vous pouvez toutefois utiliser les interfaces graphiques, telles que xcdroast, gcombust ou autres (voir la logithèque), qui utilisent elles-même les programmes présentés ici, mais simplifient le processus (tout en n'offrant pas autant de flexibilité que la ligne de commande).

Si vous souhaitez voir ici développées d'autres utilisations du graveur, merci de me le signaler. Je pense écrire des parties sur :

Je manque de temps pour écrire ces parties, aussi si vous vous en sentez la compétence, vous pouvez me faire parvenir vos contributions. Merci d'avance.

Haut


Configurer la Slackware

David, Marc, Michel, Philippe

Configuration post-installation de la Slackware

Avant-propos

Cet article concerne la post-installation des versions de la Slackware 8.0 et 8.1. Il suppose donc que vous ayez déjà installé cette distribution et que vous possédez quelques connaissances de Linux. Si tel n'est pas le cas, une lecture du Léa-Book vous apportera les bases nécessaires. De même, une lecture de l'article sur l'initialisation de la Slackware sera une bonne introduction. Vous êtes prêts ? Alors c'est parti...

Créer un utilisateur

Après l'installation de la distribution et lors du premier démarrage, il n'y a que l'utilisateur root de créé.
L'utilisation de la machine sous root n'étant pas recommandée, il est plus avisé de créer un utilisateur normal qui lui utilisera la machine sans trop se soucier de la briser par des manipulations qui pourraient s'avérer dangereuses pour son bon fonctionnement.

Il existe différents outils pour la création d'un nouvel utilisateur. Il y a des outils en mode graphique qui fonctionnent plus ou moins bien selon l'environnement et dont je ne parlerai pas ici puisque je ne leur fais pas vraiment confiance car j'ai souvent été confronté à des erreurs lors de leur utilisation. Et puis, il y a aussi les scripts bash qui eux ne m'ont jamais déçu et avec lesquels j'ai toujours réussi la tâche.

Il existe un script qui se nomme useradd et qui est livré en standard sur toutes les distributions, mais il s'avère un peu complexe pour un nouvel utilisateur. C'est pourquoi les développeurs de la Slackware ont inséré un autre script qui se nomme adduser, qui est simple à utiliser et qui interagit avec useradd. Donc voici la procédure pour créer un nouvel utilisateur avec le script adduser. Premièrement il faut être root pour la création d'un nouvel utilisateur.

On lance le script avec la commande adduser et on a comme sortie ceci :

Login name for new user []: mimi
ici on met le nom de login de l'utilisateur à créer et on accepte avec la touche [entrée] ou [enter].

User id for mimi [defaults to next available]:
on accepte l'uid c'est-à-dire le numéro d'identification de l'utilisateur défini par défaut, à moins de savoir ce que l'on fait.

Initial group for mimi [users]:
ici aussi on accepte le groupe initial qui est proposé par défaut.

Additional groups for mimi (seperated with commas, no spaces) :
il nous est demandé si l'on veut que l'utilisateur fasse partie d'autres groupes. Si l'on sait ce que l'on fait, on indique alors les groupes, séparés par des virgules et sans espace, auxquels on veut que l'utilisateur mimi appartienne. Ici je vous conseille fortement d'ajouter votre nouvel utilisateur au groupe "sys" pour qu'il puisse accéder aux périphériques son, sinon ceux-ci ne sont accessibles que par le root. On aura donc pour cette option :
Additional groups for mimi (seperated with commas, no spaces) []: sys

mimi's home directory [/home/mimi]:
on définit le répertoire que l'utilisateur mimi se verra attribuer, on accepte ce qui est proposé par défaut.

mimi's shell [/bin/bash]:
on définit quel sera le shell de notre utilisateur. Il existe plusieurs shells sous Linux dont tcsh, korn shell (ksh), etc.
Cependant, vu que le shell bash est un standard sous Linux, on accepte ce qui est proposé par défaut.

mimi's account expiry date (YYYY-MM-DD) []:
on nous demande quelle sera la date d'expiration du compte mimi. On n'en définit aucune, ce n'est pas nécessaire, donc on valide pour qu'il n'y ait pas de date d'expiration avec la touche [entrée] ou [enter].

This is it... if you want to bail out, hit Control-C. Otherwise, press ENTER to go ahead and make the account.
Ici on vous avise que si vous voulez quitter pour une quelconque raison, il vous faut utiliser les touches Ctrl+C.
Par contre si vous voulez continuer et créer le compte, pressez la touche [entrée] ou [enter].

Je suppose que vous avez accepté, voici la suite lorsque l'on accepte.

Making new account... (création du compte mimi, acceptez)

On vous demande alors des informations supplémentaires pour le compte mimi, comme le nom complet de l'utilisateur mimi (ex: Michel Moi) et d'autres informations non obligatoires pour la création du compte.

Changement de l'information utilisateur pour mimi
Entrez la nouvelle valeur ou tapez [Entrée] pour le défaut

Nom complet []: Michel Moi
No de bureau []:
Téléphone travail []:
Téléphone perso []:
Autre []:

On modifie et/ou on valide le tout par la touche [entrée] ou [enter].

Maintenant on arrive au moment crucial où il faut donner un mot de passe pour l'utilisateur.
Je vous conseille ici de l'inscrire dans un endroit sûr où vous pourrez accéder si jamais vous l'oubliez.
Changement du mot de passe de mimi
Entrez le nouveau mot de passe (minimum de 5, maximum de 127 caractères). Utilisez une combinaison de lettres en majuscule / minuscule et de nombres.
Nouveau mot de passe :

il faut faire attention à ce que vous écrivez car les lettres ou chiffres de votre mot de passe n'apparaîtront pas à l'écran.
Nouveau mot de passe (à nouveau) :
on vous demande d'inscrire à nouveau le mot de passe pour confirmation, attention de bien écrire le même mot de passe pour qu'il soit accepté.

Si tout s'est bien déroulé, vous aurez cette sortie vous confirmant que la création de l'utilisateur mimi a réussi.
Mot de passe changé.
Done...

Maintenant que l'utilisateur mimi a été créé, on va s'assurer que le mot de passe sera encrypté pour plus de sécurité.
Normalement cela devrait se faire automatiquement mais pour plus de sûreté on va procéder quand même à l'encryptage :
# pwconv mimi
Voilà votre nouvel utilisateur est créé et vous pouvez dès maintenant accéder à son compte en vous loguant sur celui-ci au prompt.

Si jamais vous vous trompez ou s'il surgit une erreur lors de la création d'un compte, assurez-vous avant de recommencer que l'utilisateur que vous avez essayé de créer n'existe plus. Pour ce faire employez la commande userdel :
# userdel mimi
Ceci supprimera le compte mimi et dès lors vous pourrez recommencer à créer un compte mimi.

Franciser la Slackware

Franciser le shell et les menus

Afin d'avoir les menus de Gnome en français (ainsi que certains messages du shell), installez le package glocale.tgz (si nécessaire ;-) puis en root modifiez le fichier/etc/profile de la façon suivante (repérez la ligne Set default...)
# Set default POSIX locale:
# export LC_ALL=POSIX
LC_CTYPE=ISO-8859-1
LANGUAGE=fr
LC_MESSAGES=fr
LC_ALL=fr_FR
LANG=fr

LESSCHARSET=latin1
export LC_CTYPE LANGUAGE LC_MESSAGES LC_ALL LANG LESSCHARSET
N'oubliez pas de commenter la ligne export LC_ALL=POSIX ;-) Sauvez le fichier, puis toujours sous root, lancez ensuite la commande suivante:

# localedef -i fr_FR -f ISO-8859-1 fr_FR

Petit test : de retour sous l'utilisateur courant, connectez vous en root (via la commandesu) et entrez un mot de passe erroné.
Le message obtenu sera : Désolé ;-)

Note : pour les personnes utilisant Windowmaker, cette opération est à faire avant la commande wmaker.inst (cela installera les menus en français).

Installer les pages man françaises

Avant d'installer les pages man en français comme décrit ci-dessous, assurez vous d'avoir mis en place la "Francisation du shell" précédemment décrite. Récupérez les traductions des pages man sur les deux sites suivants :

http://www.delafond.org/traducmanfr/mansupfr.tar.bz2
http://perso.club-internet.fr/ccb/man/man-fr-x.x.x.tar.gz (actuellement version 0.9.3)

La raison de ce doublon est la non exhaustivité de chacune des deux traductions. Donc, en fusionnant les deux, le nombre de pages man traduites sera plus conséquent.

Décompressez les deux fichiers, par exemple dans votre répertoire personnel.

Deux répertoires sont maintenant présents:

pagesdeman/
man-fr/
Comme précisé précédemment, fusionnez (en copiant) les pages man des 2 répertoires:
cp -f man-fr/man1/* pagesdeman/usr/share/man/fr/man1
...
...
cp -f man-fr/man9/* pagesdeman/usr/share/man/fr/man9
Loguez vous en root, et créez les répertoires suivants s'ils n'existent pas :
mkdir /usr/man/fr
mkdir /usr/X11R6/man/fr
Toujours sous root, copiez les pages man françaises vers les répertoires nouvellement créés:
cp -r pagesdeman/usr/share/man/fr/* /usr/man/fr
cp -r pagesdeman/usr/X11R6/man/fr/* /usr/X11R6/man/fr
Editez le fichier /usr/lib/man.conf et repérez ces lignes :
NROFF /usr/bin/groff -S -Tascii -mandoc
NEQN /usr/bin/geqn -Tascii
Modifiez les comme suit :
NROFF /usr/bin/groff -S -Tlatin1 -mandoc
NEQN /usr/bin/geqn -Tlatin1
Sauvez, et testez par exemple:man ls.

Note sur la version 8.1 : certaines pages traduites sont déja installées dans /usr/man/fr. Ajouter dans ce répertoire les pages que vous souhaitez avoir en français.

Configurer les touches mortes

Note sur la version 8.1 : elle intègre déjà le fichier /etc/inputrc. Ce qui suit ne s'adresse donc qu'aux versions précédentes

.

Même en choisissant le bon clavier AZERTY lors de l'installation ( fr-latin1.map) celui-ci peut se révéler capricieux notamment pour l'utilisation des touches Home, End et Del dans un terminal (xterm, rxvt....). Pour corriger cela, deux solutions:

- créez un fichier /etc/inputrc et ajouter la ligne export INPUTRC=/etc/inputrc dans le fichier /etc/profile (cela sera valable pour tous les utilisateurs),
- créez un fichier .inputrc et placez le dans votre répertoire personnel (donc un fichier par utilisateur).

L'exemple suivant (qui fonctionne pour les deux solutions ci-dessus) permet d'activer les touches home, del, suppr et fin (pour la liste complète des options voir la page man de readline).

# Pas de bip
set bell-style none

# Permettre de rentrer & recevoir des caractères accentués
set meta-flag on
set input-meta on
set convert-meta off
set output-meta on

# gestion des touches en fonction du type de terminal

# xterm
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
"\eOH": beginning-of-line
"\eOF": end-of-line

# rxvt
"\e[8~": end-of-line

Personnaliser le shell Bash

Vous avez sans doute remarqué lorsque vous utilisez le shell bash que celui-ci utilise un prompt et des alias assez basiques qui sont définis dans un fichier global nommé /etc/profile.
Donc, si vous désirez personnaliser un peu votre shell, que ce soit pour y ajouter des alias, des couleurs ou des fonctionnalités non définies dans le fichier /etc/profile, vous pouvez le faire en créant vos propres fichiers bash personnalisés.

Voici différents fichiers reliés au shell bash que vous pouvez créer:

.bash_logout
Ce fichier sert seulement en mode console (init 3).
Il est appelé lors d'un "exit" ou d'un "logout".
L'exemple ci-dessous nettoiera l'écran lors du "exit" ou "logout".

#$HOME/.bash_logout
clear
# End $HOME/.bash_logout
.bash_profile
Ce fichier sert aussi en mode console (init 3).
Si vous n'utilisez pas ce fichier, lorsque vous serez en mode console c'est le fichier /etc/profile qui sera lu par le shell et non votre .bashrc personnel.
Comme nous le verrons par la suite, le fichier .bashrc est appelé aussi bien en mode texte qu'en mode graphique (via un xterm), donc plutôt que de définir 2 fichiers identiques, l'exemple ci-dessous permet d'utiliser la définition du fichier .bashrc.
#$HOME/.bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# End $HOME/.bash_profile
.bashrc
C'est dans ce fichier que vous mettrez tous vos alias personnels, vos variables ainsi que la couleur du texte et autres commandes utiles. Si vous créer les fichiers .bash_logout et .bash_profile, alors ce fichier sera effectif en mode console et en mode graphique.
# Debut de $HOME/.bashrc

# Permet d'avoir des couleurs différentes selon le type des fichiers
if [ "$SHELL" = "/bin/zsh" ]; then
eval `dircolors -z`
elif [ "$SHELL" = "/bin/ash" ]; then
eval `dircolors -s`
else
eval `dircolors -b`
fi

# Quelques alias utiles pour les paresseux
# monte d'un répertoire à partir du répertoire courant
alias ..='cd ..'
# monte de deux répertoires à partir du répertoire courant
alias ...='cd ../../'
# affiche tous les fichiers dans le répertoire courant
alias ll='ls -al'

# copie un fichier ou dossier en vous prévenant si votre action
# écraseras un fichier ou dossier similaire.
alias cp='cp -i'
# Pour supprimer, l'option -i est idem que pour cp
alias rm='rm -i'
# pour déplacer, l'option -i est idem que cp et rm
alias mv='mv -i'

# rapporte le montant de l'espace disque employé par les
# fichiers dans la hiérarchie du système fichier.
# à utiliser avec précaution car l'usage de cette commande peut
# s'avérer très long ( man du pour les options "-a c h )
alias du='du -a -c -h'

# montre l'espace occupé sur les partitions montée en megabytes
alias df='df -m'

# pour permettre au root lorsqu'on fait un su, d'utiliser le display
alias to='xhost + ; su && xhost -'

# Variable PS1 et prompt coloré
# Définition des couleurs à employer pour un texte coloré.
red='\e[0;31m'
RED='\e[1;31m'
green='\e[0;32m'
GREEN='\e[1;32m'
yellow='\e[0;33m'
YELLOW='\e[1;33m'
blue='\e[0;34m'
BLUE='\e[1;34m'
magenta='\e[0;35m'
MAGENTA='\e[1;35m'
cyan='\e[0;36m'
CYAN='\e[1;36m'
white='\e[0;37m'
WHITE='\e[1;37m'
NC='\e[0m'

# Prompt coloré
export PS1="$MAGENTA[$CYAN\u@\h$MAGENTA:$CYAN\W$MAGENTA]$MAGENTA\\$ $RED\n"

# Imprime le shell,sa version et le display sur lequel vous êtes connecté.
echo -e "${GREEN}This is BASH ${YELLOW}${BASH_VERSION%.*}${GREEN} - DISPLAY on
${YELLOW}$DISPLAY${NC}\n"

# quelques sorties de commande sur le shell pour le simple plaisir
# affiche la ram utilisée et la swap
free
# affiche l'espace occupé sur les partitions
df
# affiche le jour,l'heure,le mois et l'année ainsi que le fuseau horaire
date
function _exit()
{
echo -e "${RED}Hasta la vista, baby${NC}"
}

Adapter le noyau installé

Le noyau issu de l'installation correspond sans doute en grande partie à vos besoins mais il correspond à un processeur 386 en SMP (bi-processeurs) et ne gère pas l'APM (Advanced Power Management) qui permet par exemple l'extinction des disques et de l'écran lors d'un arrêt (halt ou shutdown). C'est pour cela qu'il ma semblé nécessaire de le recompiler au plus vite.

La procédure à suivre est fort bien décrite dans le Slackware Linux Essential (en anglais) ou encore dans le Léa-Book. En voici un résumé très succinct (vérifiez avant que vous avez une disquette de boot, au cas où ...) :

# cd /usr/scr/linux
# make mrproper
# make menuconfig (ou config ou xconfig)

Une fois ici, vous pouvez si vous le souhaitez, charger le fichier de configuration du noyau issu de l'installation qui est le fichier /boot/config . Sachez que si vous ne le faites pas, à moins de tout reconfigurer par vous même, le noyau que vous obtiendrez sera très différent.

Donc si comme moi vous ne connaissez pas très bien les options de compilation:

Load an Alternate Configuration File: entrez /boot/config.
Sélectionnez votre microprocesseur : Processor type and features / Processor family / choisissez le bon microprocesseur, sans doute PPro/6x86MX.
Activez l'APM : General setup / Advanced Power Management BIOS Support.
Vous pouvez maintenant continuer la configuration comme bon vous semble puis quitter menuconfig en sauvegardant.
# make dep
# make clean
# make bzImage (ou zImage pour un petit noyau)
# make modules
Vous en avez maintenant terminé avec votre nouveau noyau et ses modules, il ne vous reste plus qu'à les installer.
Attention ici car le noyau de la Slackware (vmlinuz) et le fichier System.map sont dans le répertoire racine / et non dans le répertoire
/boot comme dans de nombreuses autres distributions.
# mv /lib/modules/2.2.19 /lib/modules/2.2.19.old
# make modules_install
# make install

Voilà c'est terminé, mais si vous le souhaitez, avant de rebooter, vous pouvez modifier votre /etc/lilo.conf pour y ajouter une section vers l'ancien noyau (encore une fois au cas où ...) et puis réinstaller lilo (commande: lilo).

NB : Ce qui est écrit ci-dessus concerne le noyau 2.2.19. Si vous utilisez un noyau 2.4.x et que vous souhaitez charger un fichier de configuration du noyau avec make menuconfig, il ne faut pas utiliser le fichier /boot/config.
Vous devez utiliser un des fichiers qui se trouve sur le cdrom de la Slack : le fichier /slackware/a1/i245.cfg pour un disque IDE ou le fichier /slackware/a1/sc245.cfg pour un disque SCSI.

Note sur la version 8.1 :

Xwindow

Petit rappel: pour choisir le runlevel au démarrage afin de booter en mode texte ou graphique, il faut modifier la ligne ci-dessous dans le fichier /etc/inittab:
id:3:initdefault: pour un démarrage en mode texte,
id:4:initdefault: pour un démarrage en mode graphique.

Installer un serveur Xfree 3.3.6

Certaines cartes un peu anciennes sont mieux supportées par la version 3.3.6 que par la 4 de Xfree comme par exemple la S3 virge DX/GX. A noter que Xfree 4.0 doit être installé. En fait toutes les bibliothèques seront en version 4, seul le serveur (ou driver) sera en version 3.3.6.

Après l'installation, ajoutez les packages suivants (cd n°2 dans /pasture/xfree-3.3.6-serveurs ou récupérez les sur le site ftp de la slackware).
- xset.tgz (inclu l'utilitaire de configuration XF86Setup),
- xvg16.tgz (obligatoire pour le package précédent),
- le package correspondant à votre carte, exemple: s3v.tgz pour la carte S3 virge (lire la description des packages pour
trouver le serveur correspondant à votre carte).

En root, exécutez XF86Setup et configurez votre souris/clavier/carte/écran.

Après les tests, confirmez la création du lien qui va être créé entre /var/X11R6/bin/X -> /usr/X11R6/bin/XF86_S3V
(XF86_S3V sera différent selon votre carte bien sûr ;-)

Notes:
- le fichier de configuration pour Xfree 3.3.6 est /etc/XF86Config, alors que celui de Xfree 4 est /etc/X11/XF86Config (ce dernier pouvant être effacé),
- n'utilisez pas le programme xf86config, car celui-ci va configurer votre carte pour Xfree 4.

Installation des drivers NVIDIA

Pour les possesseurs d'une carte graphique à base de chipset NVIDIA, cette fiche décrit l'installation des drivers (version 1.0-2313 au moment de la création de ce document). Au préalable, assurez vous que:
- le noyau est compilé sans l'option SMP (le noyau pré-compilé de la Slack l'a ;-)
- X est configuré via xf86config (fichier XF86Config en état de fonctionner)

Ce qu'il faut au minimum d'après NVIDIA:

Module Version Détermination de la version
Kernel 2.2.12 cat /proc/version
Kernel modutils 2.1.121 insmod -V
XFree86 4.0.1 XFree86 -version
binutils 2.9.5 size --version
GNU make 3.77 make --version
gcc 2.7.2.3 gcc --version

Recupérez sur le site Nvidia.fr les paquets :
NVIDIA_kernel-1.0-2314.tar.gz
NVIDIA_GLX-1.0-2313.tar.gz

Après avoir démarré en mode console (init 3 et non dans un Xterm sous X), on se met sous root ... et ...

$ tar xvzf NVIDIA_kernel-1.0-2314.tar.gz
$ tar xvzf NVIDIA_GLX-1.0-2313.tar.gz
$ cd NVIDIA_kernel
$ make install
$ cd ../NVIDIA_GLX
$ make install
On édite (toujours sous root) le fichier /etc/X11/XF86Config avec son éditeur préféré (emacs ;-):
On cherche dans la section " Device " la ligne :
Driver "nv"
que l'on remplace par
Driver "nvidia"
Dans la section Module on doit enlever le # pour avoir la ligne suivante:
Load "glx"
Dans cette même section, on enlève (en ajoutant un dièse !) si elles sont présentes, les lignes suivantes :
Load "dri"
Load "GLcore"

Et pis voilà !
PS : Après reboot, le driver n'était pas chargé malgré une ligne ajoutée dans le fichier /etc/modules.conf.
J'ai ajouté dans le fichier /etc/rc.d/rc.modules la ligne /sbin/modprobe Nvdriver.

Choisir un window manager (wm)

Comme bien souvent le gestionnaire de fenêtres par défaut d'un utilisateur dépend du contenu de son fichier ~/.xinitrc (s'il existe bien sûr). Pour configurer facilement ce fichier vous pouvez utiliser le programme xwmconfig. Entrez alors simplement:$ xwmconfig

Choisissez maintenant dans la liste qui vous est proposée votre wm préféré puis quittez le programme qui crée automatiquement le bon fichier .xinitrc dans votre répertoire personnel et prend même le soin de sauvegarder votre ancien fichier .xinitrc sous le nom de .xinitrc-backup. Maintenant, si vous pensez cela nécessaire, rien ne vous empêche d'éditer ce fichier pour le mettre à votre goût.

En réalité xwmconfig se contente de recopier dans votre répertoire personnel un des fichiers du répertoire /etc/X11/xinit/. Voici un exemple de ce que peut contenir ce répertoire :

$ ls -l /etc/X11/xinit/
total 40
lrwxrwxrwx 1 root root 11 Dec 30 22:44 xinitrc -> xinitrc.kde
-rwxr-xr-x 1 root root 546 May 3 2001 xinitrc.e
-rwxr-xr-x 1 root root 559 Jun 3 2001 xinitrc.fvwm2
-rwxr-xr-x 1 root root 539 Feb 13 2001 xinitrc.fvwm95
-rwxr-xr-x 1 root root 546 May 14 2001 xinitrc.gnome
-rwxr-xr-x 1 root root 536 Mar 29 2001 xinitrc.kde
-rwxr-xr-x 1 root root 538 Oct 4 1999 xinitrc.openwin
-rwxr-xr-x 1 root root 540 Jun 14 2001 xinitrc.sawfish
-r--r--r-- 1 root root 666 Jun 4 2001 xinitrc.twm
-rwxr-xr-x 1 root root 554 Jun 14 2001 xinitrc.wmaker
Vous pouvez donc en tant que root appliquer directement des modifications aux fichiers de ce répertoire afin que tous les utilisateurs en bénéficient à travers le programme xwmconfig. Vous pouvez également choisir ici quel sera le wm par défaut en cas d'absence d'un fichier .xinitrc dans le répertoire personnel. Il suffit pour cela de faire pointer le lien xinitrc vers le fichier xinitrc.* de votre choix (ici le fichier xinitrc.kde).

Configurer son accès internet

Modem RTC

La Slackware met à notre disposition un outil (en mode texte) pour configurer une connexion internet par modem.

Loguez-vous en root, et lancez la commande pppsetup. Les différentes informations à fournir sont:

numéro de téléphone: entrer ATDTnum_tel,
le port sur lequel se trouve votre modem,
la vitesse du modem (pour un modem 56K choisissez 115200),
répondez NO à la question Does your service use callback,
la chaîne d'init de votre modem. A moins de savoir ce que vous faites, tapez simplement enter afin de choisir la chaîne
par défaut (AT&FH0),
le nom de domaine de votre fournisseur (ex: free.fr),
le numéro de DNS (entrer un des deux n° que votre fournisseur vous a donné).
la méthode d'authentification (généralement PAP),
votre login,
votre mot de passe,
Enfin, le contenu des fichiers générés vous est présenté: validez par enter si tout vous semble correct. Toujours en root, éditez le fichier /etc/resolv.conf afin d'y rajouter le second numéro DNS. Afin de permettre à tous les utilisateurs de se connecter, modifiez les droits des fichiers suivants:
chmod +s /usr/sbin/pppd
chmod +s /usr/sbin/chat
Et voilà: pour lancer la connexion, /usr/sbin/ppp-on et pour l'arrêter, /usr/sbin/ppp-off.
Attention les utilisateurs n'ont pas /usr/sbin dans leurs PATH. Créez vous donc un script ou si vous êtes sous windowmaker, utilisez wmppp.

Modem ADSL Alcatel SpeedTouch USB

Si vous avez L'ADSL et un modem Alcatel SpeedTouch USB vous pouvez suivre dans ses grandes lignes l'installation des drivers de Benoît Papillault décrite dans le Léa Book (si celle-ci ne vous est pas familière, lisez donc cet article de Serge et Jice avant de lire ce qui suit).

Pour la Slackware, ne modifiez pas votre fichier /etc/modules.conf mais éditez le fichier /etc/rc.d/rc.modules et repérez ces lignes:

...
### USB Host Controllers:
# Universal Host Controller Interface (Intel standard):
#/sbin/modprobe usb-uhci
# Universal Host Controller Interface (alternate JE):
#/sbin/modprobe uhci
# Open Host Controller Interface (Compaq/Microsoft/National standard):
#/sbin/modprobe usb-ohci
...
Il ne vous reste plus qu'à décommenter la ligne correspondant au bon module, le plus souvent usb-uhci, et à ajouter une petite ligne pour n_hdlc (je n'en ai trouvée aucune dans le fichier). Vous obtenez donc ceci :
...
### USB Host Controllers:
# Universal Host Controller Interface (Intel standard):
/sbin/modprobe usb-uhci
/sbin/modprobe n_hdlc
# Universal Host Controller Interface (alternate JE):
#/sbin/modprobe uhci
# Open Host Controller Interface (Compaq/Microsoft/National standard):
#/sbin/modprobe usb-ohci
...
Afin que ces modifications deviennent tout de suite effectives entrez simplement :
# /etc/rc.d/rc.modules
Il est inutile de créer vous même le fichier /etc/ppp/peers/adsl puisque celui-ci est déjà fourni par B.Papillault et se trouve après installation en /usr/local/share/speedtouch/ (ceci est bien sûr valable pour toutes les distributions).
Il vous suffit donc de recopier ce fichier dans le bon répertoire (/etc/ppp/peers/ qui est d'ailleurs à créer sur la Slackware) puis de l'éditer afin d'y mettre le bon nom de user et éventuellement d'apporter une ou deux autres modifications de votre cru.
Enfin vous pouvez maintenant éditer votre fichier /etc/fstab pour y ajouter une ligne pour le montage des périphériques USB comme votre modem. Ajoutez donc la ligne suivante :
none /proc/bus/usb usbdevfs defaults 0 0
Voilà si vous avez bien suivi l'article de Serge et Jice en le corrigeant comme ci-dessus : ça marche ! Alors pour votre premier essai, entez donc les lignes suivantes :
# mount /proc/bus/usb
# /usr/local/bin/modem_run -f /usr/local/share/speedtouch/mgmt.o -m
# pppd call adsl
Si vous procédez de la façon et dans les conditions décrites ci-dessus (noyau 2.2.19) vous ne chargerez pas les modules ppp_generic, ppp_async et ppp_synctty. Ces modules ne sont pas nécessaires pour l'ADSL, si vous préférez les charger quand même modifiez cette section de votre fichier /etc/rc.d/rc.modules en conséquence.
# Load PPP by default:
# Check kernel version to determine module names to use
if [ "`uname -r | cut -f 1,2 -d .`" = "2.2" ]; then
# This module is for PPP support:
/sbin/modprobe ppp
else # assume 2.4 or newer
# This module is for PPP support:
/sbin/modprobe ppp_generic
# This PPP plugin supports PPP over serial lines:
/sbin/modprobe ppp_async
# Use this plugin instead for HDLC (used for high-speed leased lines like T1/E1)
# /sbin/modprobe ppp_synctty
fi
# This module provides compression for PPP (optional):
/sbin/modprobe ppp_deflate

Un petit firewall... temporaire

Note : Fonctionne seulement avec un noyau 2.4.x. Et il peut y avoir quelques erreurs selon votre version d'iptables.

Voici un firewall (mur de feu) minimaliste et clé en main pour que vous puissiez vous connecter tout de suite avec un minimum de sécurité.
Ce firewall vous laisse faire ce que vous voulez sur l'Internet, mais interdit tout dans le sens extérieur vers votre machine. Même le ping ! Donc il ne peut pas servir pour serveur sur Internet. De plus, le partage de la connexion Internet est implémenté.

Le script mini-firewall.sh :

#!/bin/sh
#Load modules
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_state
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_REJECT
/sbin/modprobe ip_conntrack

IPT="/usr/sbin/iptables"

#Interfaces
I_Externe="ppp0"
I_Interne="eth0"
I_Lo="lo"

Lan="xxx.xxx.xxx.xxx/yyy" #Range intranet addresses, ex : 192.168.10.5/10 = 5 addresses = 5 hosts

#By default : Forbiden all
$IPT -F
$IPT -F -t nat
$IPT -X

$IPT -P INPUT DROP
$IPT -P OUTPUT REJECT
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

#Activation foward
echo 1 >/proc/sys/net/ipv4/ip_forward

echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 >/proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

#turn on source address verification
for f in /proc/sys/net/ipv4/conf/*/rp_filter;
do echo 1 > $f
done
#Disable ICMP Redirect Acceptance
for f in /proc/sys/net/ipv4/conf/*/accept_redirects;
do echo 0 > $f
done
for f in /proc/sys/net/ipv4/conf/*/send_redirects;
do echo 0 > $f
done
# Disable Source Routed Packets
for f in /proc/sys/net/ipv4/conf/*/accept_source_route;
do echo 0 > $f
done
# Log Spoofed Packets, Source Routed Packets, Redirect Packets
for f in /proc/sys/net/ipv4/conf/*/log_martians;
do echo 1 > $f
done

#LoopBack
$IPT -A INPUT -i $I_Lo -j ACCEPT
$IPT -A OUTPUT -o $I_Lo -j ACCEPT

#Unlimited traffic on intranet
$IPT -A INPUT -i $I_Interne -s $Lan -j ACCEPT
$IPT -A OUTPUT -o $I_Interne -d $Lan -j ACCEPT

#Create our own chain
$IPT -N FollowInput
#Forbiden from outside
$IPT -A FollowInput -m state --state NEW -i! $I_Externe -j ACCEPT
#Accept ESTABLISHED and RELATED
$IPT -A FollowInput -m state --state ESTABLISHED,RELATED -j ACCEPT
#Apply our own chain
$IPT -A INPUT -j FollowInput
$IPT -A FORWARD -j FollowInput

#Mask intranet from outside
$IPT -t nat -A POSTROUTING -o $I_Externe -j MASQUERADE

Comme vous pouvez le constater, il n'y a rien d'autre à faire que le lancer, et modifier l'intervalle des adresses IP de votre réseau local (xxx.xxx.xxx.xxx/yyy). Il charge les modules utiles et établit les règles minimales.
Surtout modifiez-le selon vos besoins et dites-vous bien qu'il n'est là qu'en dépannage.
N'oubliez pas qu'un firewall ne vous protège pas complètement. Il faut rester vigilant.

Configurer les périphériques

Imprimante

Pour configurer votre imprimante vous pouvez utiliser APSFilter qui est présent en standard. Rendez-vous dans son répertoire et lancez l'installation.
# cd /usr/lib/apsfilter
#./SETUP
Il ne vous reste qu'à lire les indications qui s'affichent à l'écran (en anglais) et à suivre le menu de haut en bas, étape par étape. Je suis désolé mais je n'ai pas vraiment envie de vous le détailler ici, ce serait un peu long car il possède de nombreuses options. Quand vous hésitez, choisissez simplement la réponse proposée par défaut, il y a de fortes chances pour que ce soit la bonne.
Si comme moi vous possédez une HP Deskjet de la série 700, installez d'abord le binaire pnm2ppa car celui-ci est nécessaire mais n'est pas dans la Slackware (sinon vous ne pourrez rien imprimer). Il doit figurer dans le répertoire /usr/bin/ avec les propriétés suivantes (enfin à la date que vous voulez ;-) :
$ ls -l /usr/bin/pnm2ppa
-rwxr-xr-x 1 root bin 448764 Dec 31 12:04 /usr/bin/pnm2ppa
Lors de l'installation avec APSFilter ne recherchez pas votre imprimante dans les HPDJ Printers mais dans les PPA Printers et tout devrait fort bien fonctionner.

Carte son

Pour pouvoir bénéficier du son, vous devez éditer le fichier /etc/rc.d/rc.modules et y repérer les lignes suivantes :
### Sound support ###
# Sound Blaster Pro/16 support:
#/sbin/modprobe sb io=0x220 irq=5 dma=3 dma16=5 mpu_io=0x300
# Sound Blaster Live support:
#/sbin/modprobe emu10k1
# MAD16 support:
#/sbin/modprobe mad16 io=0x530 irq=7 dma=0 dma16=1
# AD1816(A) sound driver:
#/sbin/modprobe modprobe ad1816 io=0x530 irq=5 dma=1 dma2=3 ad1816_clockfreq=33000
# ES1370 support, such as Sound Blaster 128PCI:
#/sbin/modprobe es1370
# ES1371 support, such as Sound Blaster 64V PCI:
/sbin/modprobe es1371
# ESS Maestro driver:
#/sbin/modprobe maestro
# (For information on configuring other sound cards with Linux,
# see the documentation in /usr/src/linux/Documentation/sound/)
Il suffit maintenant de décommenter la ligne correspondant à votre carte son. Si elle ne figure pas, procédez par essais et erreurs. Pour une SB 16 PCI généralement reconnue comme une Ensoniq j'ai décommenté la ligne suivante :
...
# ES1371 support, such as Sound Blaster 64V PCI:
/sbin/modprobe es1371
...
Maintenant, pour que cette modification devienne effective entrez simplement :
# /etc/rc.d/rc.modules
Normalement vous avez alors du son en tant que root mais pas en tant que user.
Si vous voulez que vos utilisateurs bénéficient aussi du son, vous avez plusieurs solutions : Il ne vous reste plus qu'à vérifier que tout cela a fonctionné en écoutant... ce que vous voulez. ;-)

Tablette Wacom

Ceci n'est pas vraiment une fiche car l'installation est déjà décrite sur Léa:
http://lea-linux.org/hardware/graphire.php3

Mais voici mes remarques pour l'adaptation à la Slack. Lisez d'abord la fiche pour comprendre les commentaires suivant :
Il faut avoir une attention particulière aux options du noyau pour bien générer les modules :

evdev
mousedev
wacom
hid
input
usb-uhci ou usb-ohci (suivant votre contrôleur USB)
usbcore
Une fois que les modules sont compilés, il faut « dédièzer » dans le fichier /etc/rc.d/rc.modules les lignes correspondant aux modules ci-dessus.
La version 8 de la Slack est livrée avec un wacom_drv.o qui ne gère pas l'USB: changez le avec celui indiqué dans la fiche Léa. Par rapport à l'article, le fichier de configuration pour Xfree est /etc/X11/XF86Config.
On reboot, et ça marche.

Graveur IDE

La configuration d'un graveur IDE se fait avec la fiche du Léa-book. Ensuite, si comme moi, vous n'avez qu'un seul graveur qui fait office de lecteur cdrom, il faut modifier le lien /dev/cdrom pour qu'il pointe sur /dev/scd0:
#cd /dev
#rm cdrom
#ln -s /dev/scd0 /dev/cdrom
En effet, le lien /dev/cdrom sert à généraliser le nom du périphérique cdrom. Certaines applications, reliées au son, sont configurées pour utiliser /dev/cdrom. Ce lien /dev/cdrom rend la configuration plus facile.

Gérer les packages

Comme vous l'avez sans doute remarqué, la distribution Slackware n'utilise pas le format rpm mais les .tgz pour la gestion des paquets. Il existe deux outils pour la gestion de ces paquets. L'un, nommé pkqtool, est un ensemble de scripts reliés par un menu qui vous permet d'installer, de supprimer et de gérer facilement ces paquets. L'autre, employé par les utilisateurs plus aguerris qui veulent avoir un meilleur contrôle sur ce système de gestion, est constitué de scripts indépendants : installpkg, explodepkg, upgradepkg, removepkg et makepkg.

Définition des paquets
Les paquets .tgz ne sont en fait qu'un ensemble de répertoires zippés et tarés où se situent normalement les programmes quand on les compile et installe à partir de sources. Ils contiennent aussi un script bash qui sert entre autre à leur installation. Il est bon de savoir, pour tout nouvel utilisateur de cette distribution, que ce système de gestion, contrairement au système rpm, ne gère pas les dépendances. Pour certains cela s'avère être un plus mais pour d'autres, moins familiers avec les problèmes de dépendances, cela peut rapidement devenir un cauchemar. En effet bien souvent le simple fait d'installer un paquet ne veut pas dire que celui-ci est prêt à fonctionner correctement, surtout s'il lui manque une librairie. Pour palier à ce problème (s'il en est un), la meilleure façon de procéder est, après l'installation d'un paquet, de le lancer en ligne de commande. Normalement, si une librairie ou un autre paquet n'a pas été installé mais est nécessaire au bon fonctionnement du programme, la ligne de commande se révèle assez bavarde pour que l'utilisateur puisse avoir une idée de la librairie ou de l'utilitaire manquant. La commande ldd permet aussi de savoir quelle librairie manque à un programme (ldd nom_programme affiche la liste de toutes les librairies requises).

Description de la gestion des paquets.
Dans le répertoire /var/log se trouvent différents sous-dossiers contenant des informations sous forme de fichiers textes dont se servent les outils de gestion de paquets Slackware. Il faut savoir que ces sous-dossiers servent à placer des fichiers lorsqu'on installe, désinstalle ou procède à la mise à jour d'un paquet. Il n'est pas conseillé et même néfaste de modifier ou déplacer ces fichiers sous peine de se retrouver avec un mauvais fonctionnement des outils de gestion.

Les principaux sous-dossiers sont :

/var/log/packages
Dossier où se trouve une fiche de ce qui est installé lorsque l'on utilise installpkg ou pkgtool.

/var/log/scripts
Dossier où se trouve une fiche qui liste ce qu'a produit le fichier doinst.sh du paquet que l'on a installé.

/var/log/removed_packages
Dossier où se trouve une fiche de ce qui est désinstallé avec removepkg.

/var/log/removed_scripts
Dossier où se trouve une fiche de ce qu'a produit removepkg qui, pour bien réussir la désinstallation, lit dans

/var/log/scripts
La fiche qui se rapporte au programme à désinstaller.

/var/log/disk_contents
Dossier où se trouvent les fiches de description des programmes contenus sur le cdrom d'installation. Lorsque l'on installe, désinstalle ou met à jour un programme, l'outil utilisé lit la fiche correspondant à ce programme et donne une brève description de celui-ci et sa version.

/var/log/setup
Dossier où se trouvent quelques scripts de configuration utilisés dans une fonction de pkgtool. Ce dossier est aussi utilisé par certains scripts de gestion de paquets lors de l'utilisation d'options spéciales comme la désinstallation préventive de paquets qui y place la sauvegarde du paquet. Quelques fichiers y sont aussi placés temporairement lors de certaines actions mais ils sont supprimés dès que ces actions se terminent.

Il existe d'autres dossiers se rapportant aux outils de gestion de paquets se trouvant dans /var/log mais je vous laisse les découvrir car il ne sont pas à mes yeux aussi importants que ceux dont je viens de vous parler.

Description de pkgtool
Cet outil s'utilise normalement en mode console (init 3) mais peut aussi s'utiliser dans un shell en mode graphique, il peut avoir des ratés dans ce mode à cause de certaines fonctions qu'il utilise bien que les dernières versions aient amélioré cet usage en mode graphique. Je vous incite donc à vous procurer la dernière version de ce paquet que l'on peut facilement récupérer sur un site ftp Slackware dans le dossier /current ftp://ftp.slackware.com/pub/slackware/slackware-current/

Pkgtool possède une interface texte avec un menu interactif fourni par la librairie Dialog qui sert principalement à avoir des menus colorés en mode texte. Il offre une vision globale des paquets installés sur votre machine, soit pour l'installation, la désinstallation ou l'obtention d'un descriptif de ces paquets. Il possède également quelques autres fonctions non négligeables mais moins importantes. Pkgtool possède 6 fonctions que l'on peut utiliser de cette façon :

Fonction 1 : Current, Install packages from current directory
Cette option permet lorsqu'elle est utilisée, d'installer un ou des paquets qui se trouvent dans le répertoire courant d'où on a lancé pkgtool. Si un ou plusieurs paquets se trouvent dans ce répertoire, un dialogue interactif vous propose d'installer, de passer outre l'installation ou de quitter l'installation.

Fonction 2 : Other, Install packages from other directory
Cette fonction vous permet d'installer un paquet à partir d'un répertoire autre que le répertoire courant. Une fenêtre vous demande d'indiquer le chemin entier où se trouvent le ou les paquets à installer. Le dialogue interactif est le même que pour la fonction 1.

Fonction 3 : Floppy, Install packages from floppy disks
Cette fonction vous permet de faire l'installation d'un ou plusieurs paquets à partir d'une disquette ou de plusieurs disquettes. Un menu vous propose dans un premier temps de lui indiquer quel genre de disquettes est utilisé et sur quel périphérique se trouvent la ou les disquettes. La deuxième fenêtre vous propose de lui indiquer le nom de la série de disquettes que vous voulez installer en indiquant les noms de chacune séparés par des espaces. Je n'ai jamais réussi à comprendre ce mécanisme de série de disquettes, alors je ne peux vraiment pas vous en décrire la procédure. Si vous ne possédez qu'une disquette pour faire l'installation, n'indiquez rien dans la partie prévue à cet effet.
La troisième fenêtre vous demande d'insérer la disquette prévue pour l'installation si cela n'a pas été fait. Ici vous avez trois options, continuer l'installation, passer outre la première série de disquettes indiquée dans la fenêtre précédente pour passer à la suivante ou quitter le processus d'installation. Il est important de savoir qu'il ne faut pas utiliser de dossier spécifique sur la disquette sinon l'utilitaire ne peut pas trouver les paquets.

Fonction 4 : Remove, Remove packages that are currently installed
Cette fonction vous permet de sélectionner dans une liste de paquets déjà installés sur votre machine, le ou les paquets que vous désirez désinstaller. Une brève documentation de ce que fait le désinstallateur vous est fournie lorsque vous en faites l'usage.

Fonction 5 : View, View the list of the files contain in packages
Cette fonction sert exclusivement à se renseigner sur les paquets déjà installés et ceci à travers une brève description du contenu et de l'utilité de chaque paquet. Vous n'avez qu'à sélectionner le paquet dans la liste qui vous est offerte pour obtenir sa description. Cette fonction donne aussi une vue d'ensemble des paquets installés sur la machine.

Fonction 6 : Setup, Choose Slackware installation scripts to run again
Cette fonction sert principalement à réutiliser pour une raison quelconque les scripts de configuration fournis avec la distribution. Cette fonction offre 8 choix de scripts à réutiliser pour une configuration spécifique.

Les choix dans l'ordre sont :
[]0scrollkeeper
Sert normalement à générer la documentation de l'environnement Gnome avec Scroolkeeper.
[]Cdrom
Sert à initialiser le script de démarrage rc.cdrom qui a pour fonction de localiser le périphérique sur lequel est identifié le cdrom et de le monter au démarrage. Je ne vous conseille pas d'activer cette option à moins que vous ne sachiez ce que vous faites.
[]Fontconfig
Permet de choisir un autre jeu de fontes pour la console.
[]Liloconfig
Permet de configurer lilo en mode expert ou de l'installer automatiquement. A utiliser seulement si vous avez des connaissances assez approfondies sur le sujet. En mode expert ce script vous permet de générer un nouveau fichier lilo.conf, d'y ajouter de nouvelles partitions à charger, de le réinstaller, de vérifier la configuration de celui-ci, etc.
[]Mouse
Permet de configurer une souris de différents types : PS2, série ... ainsi que l'utilitaire gpm (utilisation de la souris en mode console).
[]Netconfig
Permet de configurer le réseau ainsi que le serveur de Mails si ceux-ci sont installés.
[]Timeconfig
Permet de configurer l'heure sous linux en local ou GMT.
[]Xwmconfig
Permet de choisir son gestionnaire de fenêtres par défaut.

Tous ces scripts ne seront peut-être pas accessibles ou fonctionnels si lors de l'installation vous avez omis d'installer certains composants.

Une partie des fonctions de pkgtool décrites plus haut peuvent aussi être utilisées avec divers scripts fonctionnant en ligne de commande. Voici un bref aperçu de ces utilitaires ainsi qu'une courte description de leur utilisation.

Description de installpkg
Installpkg est utilisé pour installer un paquet précompilé sur votre machine. Son utilisation se résume à unzipper et untarer le paquet dans le répertoire root (/) de votre système de fichiers et à exécuter un script nommé "doinst.sh" se trouvant dans le paquet .tgz, si bien sûr un tel script se trouve dans le paquet. Ce script doinst.sh sert normalement à refaire les liens symboliques nécessaires à l'utilisation du programme que l'on veut installer mais il peut aussi servir à d'autres usages que je ne décrirai pas ici car le sujet pourrait être vaste. La meilleure façon de savoir à quoi est utilisé ce script, c'est de regarder comment est fait un paquet et de voir à quoi ressemble le script. Il y a un script pour ce faire que je décrirai plus loin et qui se nomme explodepkg.

Dans la plupart des cas, j'utilise installpkg en tapant en ligne de commande : installpkg nom_du_paquet.tgz. Si comme moi vous êtes un peu soucieux de savoir quels sont les fichiers que va installer le paquet, vous pouvez avoir un aperçu de l'installation via un fichier .log sans installer le paquet. Pour avoir cet aperçu avant l'installation, je lance cette commande : installpkg -warn le_paquet.tgz > paquet.log. Ce qui crée un fichier .log et ce sans installer le paquet. Je peux alors vérifier par un "less paquet.log" ce qui sera installé avec ce paquet et ainsi prévoir d'éventuels écrasements de fichiers (pour faire une sauvegarde du ou des fichiers qui seront écrasés par l'installation et pouvoir les réinstaller si nécessaire après celle-ci). Pour plus d'informations sur les options à passer à cet utilitaire : man installpkg

Description de explodepkg
Explodepkg est utilisé pour extraire un paquet sans appeler le script d'installation doinst.sh et ce dans le répertoire courant d'où est lancée la commande. Il ne modifie pas la base de données se trouvant dans /var/log/packages. C'est un outils qui s'avère utile quand on veut simplement voir comment est construit un paquet .tgz ou encore quand on souhaite changer la configuration du script /install/doinst.sh et refaire le paquet avec l'utilitaire "makepkg" dont je parlerai plus loin. Je ne conseille pas à un utilisateur sans expérience d'essayer de modifier ce script sans avoir acquis auparavant une connaissance de l'usage d'un tel script car il pourrait sans le vouloir endommager son système.

Il n'y a qu'une façon d'utiliser ce script, c'est de se placer dans un répertoire temporaire et de lancer la commande explodepkg paquet.tgz. Par la suite vous n'avez qu'à visiter les différents dossiers pour voir ce qu'il installe et lire le fichier /install/doinst.sh pour vous donner une idée sur la procédure d'installation. Voyez man explodepkg pour un usage plus descriptif.

Description de upgradepkg
Cet outil sert principalement à faire la mise à jour de paquets qui sont déjà installés sur votre machine. La seule chose qu'il fait est d'installer le paquet en écrasant les fichiers existants du programme et en retirant ceux qui ne sont plus nécessaires à son bon fonctionnement. On peut résumer son utilisation à deux commandes. Si le nom du nouveau paquet et celui de l'ancien sont exactement semblables, alors un upgradepkg nom_du_paquet.tgz suffit. Par contre si le nouveau et l'ancien paquet ne sont pas identifiés de la même manière, alors pour que le paquet soit mis à jour sans problème, il faut procéder ainsi : upgradepkg ancien_paquet%nouveau_paquet.tgz. Vous pouvez aussi mettre à jour plusieurs paquets en même temps si le nom des paquets anciens et nouveaux est identique et si ces paquets se trouvent dans le même dossier par un : upgradepkg *.tgz.

Description de removepkg
Cet outil sert principalement à désinstaller un paquet. Pour ce faire, il utilise les fiches des répertoires /var/log/packages et /var/log/scripts précédemment créées dans ces dossiers lors de l'installation du paquet.

Normalement un removepkg paquet.tgz suffit pour désinstaller complètement le paquet. Par contre il existe une option qui peut s'avérer utile à l'utilisateur qui désire désinstaller un paquet mais qui ne sait si ce paquet est vital au système et qui, pour une raison quelconque, ne possède pas le cdrom d'installation. En effet, l'option -preserve est tout indiquée dans ce cas. Un simple removepkg -preserve nom_du_paquet désinstalle le paquet et place l'arborescence complète du paquet désinstallé dans le répertoire /var/log/setup/tmp/preserved_packages/nom_du_paquet. Si pour une raison quelconque le paquet s'avère important, alors l'utilisation de makepkg sera une aide précieuse. Pour refaire le paquet on se place dans /var/log/setup/tmp/preserved_packages/nom_du_paquet et on lance la commande makepkg nom_du_paquet.tgz ( ne pas oublier l'extension .tgz). Ceci reconstruit le paquet comme il était originellement et l'utilisateur peut le réinstaller sans crainte. Consultez man removepkg pour un usage plus descriptif.

Description de makepkg
Cet outil est utilisé pour créer un paquet propre au système Slackware. Il permet de compresser le contenu du dossier courant et de ses sous-dossiers tout en convertissant les liens symboliques dans un script nommé doinst.sh qui servira à recréer ces liens lors de futures installations ou désinstallations. Makepkg utilise les utilitaires tar et gzip pour créer le paquet, ainsi il peut y avoir deux genres d'extensions pour l'usage du paquet, soit .tar.gz ou plus couramment .tgz.

Je ne ferai pas la description de son utilisation maintenant pour la simple et bonne raison qu'elle nécessite une bonne connaissance de la compilation de sources, des différents usages des utilitaires make, ./configure et make install, ainsi que quelques notions de sécurité et d'administration concernant les permissions sur les fichiers et répertoires. Donc je réserve cette description pour un autre texte que je ferai sur la création de paquet Slackware avec l'utilitaire makepkg. Si vous êtes curieux, consultez man makepkg pour avoir une petite idée de la création de paquets, mais qui n'est pas exhaustive.

Conclusion
Il existe quelques autres utilitaires pour la gestion de paquets mais qui ne sont pas vraiment reliés au système de la Slackware. Il y a rpm2tgz et rpm2targz qui sont en fait des scripts pour convertir des paquets rpm en paquet .tgz ou tar.gz. Je ne vous expliquerai pas leur fonctionnement pour la simple et bonne raison qu'une mauvaise utilisation de ces scripts peut briser votre système. Ils nécessitent une bonne connaissance des paquets rpm vu que ceux-ci utilisent la gestion des dépendances et que la Slackware ne le fait pas. Sachez cependant que le rpm possède un script, semblable au doinst.sh du système paquet de la Slackware, qui se nomme .spec et qui est beaucoup plus complexe à gérer. Alors si vous vous sentez aventureux et bien allez-y mais sans ma bénédiction. Je vous aurai prévenus.
Il y a aussi rpm2tgz, rpm2targz et rpm2cpio qui peuvent être utilisés mais, pour la même raison que celle évoquée plus haut, je vous renvoie aux pages man.
Les outils de la Slackware pour la gestion de paquets ne sont pas à mon avis ce qu'il y a de plus sophistiqué. Cependant une bonne connaissance de ceux-ci et un peu d'expérience de leur utilisation vous permettront de faire la même chose qu'avec les outils rpm mais plus simplement et surtout sans les fichus échecs liés aux dépendances des rpm. Si vous dénichez des erreurs dans cet article, j'en suis désolé. J'ai écrit ce texte sur les outils de gestion de paquets car je crois qu'il peut servir aux débutants qui se perdent parfois dans ce système, la documentation française sur le sujet étant vraiment restreinte.

Haut


Mini-distribution TOMSRTBT

Par Marc <spi.mj@wanadoo.fr>

Pour commencer, laissons donc Tom Oehser nous présenter lui-même sa distribution à l'aide de deux petites phrases issues de sa FAQ et d'un logo comparatif :
 

Tomsrtbt is the most GNU/Linux on one floppy disk.
Tomsrtbt stands for : Tom's floppy which has a root filesystem and is also bootable.
        #####
       #######
       ##O#O##
       #VVVVV#
     ##  VVV  ##
    #          ##
   #            ##
   #            ###          .~.
  QQ#           ##Q          /V\
QQQQQQ#        #QQQQQQ      // \\
QQQQQQQ#     #QQQQQQQ      /(   )\
  QQQQQ#######QQQQQ         ^`~'^

 Other distributions       tomsrtbt

La mini-distribution de Tom Oehser se propose donc d'offrir le maximum sur le support minimum, et son appellation Tomsrtbt peut se comprendre comme : Tom(')s r(oo)t b(oo)t. Ceci peut se traduire (assez peu élégamment) par : la disquette amorçable de Tom pour l'administration. Bref la Tomsrtbt est la disquette dont vous aurez besoin le jour où ... vous ne parviendrez plus à démarrer votre système et où il vous faudra intervenir en urgence ... ne serait-ce que pour sauvegarder vos fichiers les plus importants avant de devoir tout réinstaller :-(

La version dont nous allons parler ici est la 1.7.361. Aucune configuration minimale n'est mentionnée pour son fonctionnement. Des tests sur un 486 33 Mhz avec 12 Mo de RAM n'ont posés aucun problème (pas de problème non plus bien sûr sur des configurations plus performantes). On peut cependant penser que la configuration minimale pour son utilisation doit être un 386 disposant de 4 Mo de RAM. Dans un tel cas, l'occupation de la RAM serait bien sûr différente de celle décrite ici un peu plus bas.
 

Creation de la disquette

Avant toute chose, il vous faut bien sûr vous procurer cette distribution ou plus exactement le fichier qui vous permettra de créer sa disquette. Pour ce faire, aller sur le site de Tom : http://www.toms.net/. Suivez le lien Tomsrtbt puis choisissez un site de téléchargement. Pour créer la disquette à partir de Linux, téléchargez le fichier : tomsrtbt-1.7.361.tar.gz
Maintenant que vous possédez ce fichier, effectuez les opérations suivantes.
1) Logez-vous comme administrateur avec la commande : su
2) Extrayez les fichiers de l'archive compressée en utilisant : tar -xvzf tomsrtbt-1.7.361.tar.gz. Notez que ceci crée le répertoire tomsrtbt-1.7.361.
3) Placez-vous dans le répertoire ainsi créé : cd tomsrtbt-1.7.361. Ce répertoire contient maintenant les fichiers suivants : buildit.s, clone.s, fdflush.s, fdformat, install.s, licence.html, settings.s, tomsrtbt.FAQ, tomsrtbt.raw et unpack.s.
4) Introduisez une disquette (vierge, sans défaut, 1.44 Mo) dans le premier lecteur de disquette (fd0).
5) Entrez : ./install.s
6) Patientez un peu ... Après formatage à 1.722 Mo et vérification, puis copie de l'image et vérification, vous êtes normalement maintenant en possession d'une Tomsrtbt.

Si vous souhaitez vérifier ce que contient cette disquette, et que vous n'obtenez qu'un message d'erreur, démontez si nécessaire votre lecteur de disquettes avec la commande : umount /mnt/floppy ; puis montez-le avec la commande : mount /dev/fd0u1722 /mnt/floppy (tout ceci en admettant que vous ayez un répertoire /mnt/floppy destiné à cet usage). Vous devriez maintenant constater qu'elle contient les cinq fichiers suivants : boot.b, map, rc.custom.gz, settings.s et zImage.

NB : Vous pouvez également créer cette disquette à partir de Windows. Comme je ne l'ai pas fait, je n'en parlerai pas plus, et vous renvoie pour cela à la FAQ de la Tomsrtbt ... Et oui, il fallait y penser avant :-p
 

Démarrage

Comme elle réside en RAM, la Tomsrtbt est une distribution que l'on installe à chaque utilisation. Ceci est des plus simple.
1) Insérez la disquette puis démarrez ou redémarrez votre ordinateur.
2) A l'invite boot, appuyez sur <Enter>
3) Au message vous invitant à choisir votre résolution d'écran, appuyez sur <Enter> si vous voulez consulter les choix possibles, puis entrez le numéro correspondant à votre choix. Si vous souhaitez utiliser le classique 80 x 25 (numéro 0) vous pouvez aussi plus simplement appuyer sur <Space> au lieu de <Enter> car ce choix est le choix par défaut.
4) A l'écran vous présentant les choix possibles pour votre clavier, entrez le numéro 16 correspondant au clavier fr. Attention le numéro 1, clavier azerty, n'est pas le meilleurs choix pour un clavier français, et le choix par défaut correspond à un clavier qwerty.
5) A l'invite de login, entrez : root ; puis le mot de passe par défaut : xxxx
6) Retirez la disquette, vous êtes maintenant sous Linux en tant que root.

Des commentaires vous guident tout au long de cette phase de démarrage / installation. Faites particulièrement attention lors du choix du clavier, si vous commettez une erreur n'hésitez pas à recommencer l'installation : cette option de la Tomsrtbt est un de ses points forts, vous n'aurez pas à entrer ",qn qsh" pour obtenir la page man ash :-)
 

Aperçu

Attention : maintenant que vous allez commencer à utiliser cette disquette, souvenez-vous que vous êtes root, pour le meilleur et pour le pire ! Aucune protection même minime (du type alias rm='rm -i') n'est prévue. Bien sûr vous êtes seul responsable de ce que vous ferez.

Les quelques lignes de commandes proposées ci-dessous, bien que normalement totalement inoffensives, peuvent engendrer un plantage de votre système dû, par exemple, à la saturation du répertoire racine (voir plus bas). Mais bon ... je ne suis pas un expert et, pour une fois, je n'ai rien cassé lors de mes essais ... alors continuons.

La Tomsrtbt utilise le shell ash (et non l'habituel bash) et les librairies libc5. Elle propose quatre consoles texte classiquement accessibles par <Alt>+<F1> à <F4>. Elle s'installe en RAM de la façon suivante (commande mount) :
/dev/ram0 : répertoire / de type minix
/dev/ram1 : répertoire /usr de type minix
/dev/ram3 : répertoire /tmp de type minix
Notons juste ici que le système de fichiers utilisé n'est pas l'habituel ext2 mais minix.
(Note de Jicé : minix est plus adapté que ext2 pour des petits systèmes de fichiers, comme une disquette, ou ici pour de petits RAM-disks).

La taille et l'espace occupé pour ces répertoires sont les suivants (commande df) :
répertoire / : 694 Ko utilisés à 98%
répertoire /usr : 2 387 Ko utilisés à 96%
répertoire /tmp : 4 049 Ko utilisés à 0%
En réalité la taille du répertoire /tmp dépend de la quantité de RAM disponible. Le plus petit répertoire /tmp que j'ai obtenu ne faisait que 249 Ko utilisés à 0%.

Les répertoires / et /usr étant remplis, il vous faudra, si vous souhaitez stocker temporairement des fichiers, soit utiliser le répertoire /tmp soit créer, par exemple, un répertoire /home (ou /root) en /dev/ram4 (si votre ordinateur dispose d'une marge de RAM suffisante par rapport à celle déjà utilisée).
Pour créer ce répertoire, procédez ainsi :
1) créez un système de fichier de type minix en ram4 : mkfs.minix /dev/ram4
2) créez le répertoire /home : mkdir /home
3) montez ce répertoire : mount /dev/ram4 /home

Vous disposez maintenant d'un répertoire /home au format minix de 4 Mo. Si vous souhaitez plus d'espace, précisez la taille en Ko à la première ligne. Si vous souhaitez un autre format que minix comme ext2 ou dos, utilisez mke2fs ou mkdosfs au lieu de mkfs.minix, etc. (vous avez aussi le droit de lire les pages man :-). Faites cependant attention, le peu de place disponible dans le répertoire / peut engendrer des messages d'erreur lors, par exemple, de l'écriture des fichiers mtab ou mtab.tmp liés à la commande mount.
Donc de façon plus générale, si vous avez besoin d'un peu de place dans le répertoire /, supprimez y quelques fichiers dont vous pensez ne pas vous servir cette fois (n'oubliez pas que vous êtes pour l'instant en RAM, et que donc tout est temporaire).

L'arborescence à la racine de la Tomsrtbt est intéressante. Voici les fichiers que l'on y trouve (commande ls /) :
/bin, /cdrom, /dev, /etc, /fl, /lib, /mnt, /proc, /sbin, /tmp, /usr et /var.

On remarque ici quelques particularités par rapport au shéma classique. Comme nous l'avons déjà aperçu, la Tomsrtbt ne dispose pas de répertoire /home ou /root ; d'autre part l'habituel répertoire /sbin n'est ici qu'un lien vers le répertoire /bin et trois répertoires (/cdrom, /fl et /mnt) sont déjà prévus pour monter un cdrom, une disquette (fl(oppy), enfin je suppose) et un ou des disques durs et leurs partitions (mnt, et les éventuels répertoires que vous pouvez y créer avec la commande mkdir).
Tout ceci se comprend fort bien si l'on ne perd pas de vue la vocation "root and boot" de cette distribution. Ici l'utilisateur standard est root et, de ce fait, le "sbin" devient du "bin", d'autre part il n'est pas là a priori pour se bâtir un sweet home (même si un peu de place libre peut-être bien utile). Enfin, comme nous sommes en RAM, les opérations de montage (et démontage) vont tenir une place prépondérante si nous voulons pouvoir effectuer quelque chose d'un tant soit peu durable.

Voici donc quelques exemples de montage dans lesquels nous admettrons que votre cdrom est en hdc, votre lecteur de disquette en fd0, votre Windows en hda1 (première partition du premier disque dur) et votre répertoire / Linux en hdb1 (première partition du second disque dur).
1) accès au cdrom : introduisez votre cd puis entrez : mount /dev/hdc /cdrom ... Quand vous avez terminé, entrez : umount /cdrom puis retirez votre cd.
2) accès au lecteur de disquette : même chose que pour le cd en utilisant les commandes mount /dev/fd0 /fl puis umount /fl
3) accès au disque Windows : mkdir /mnt/windows puis mount /dev/hda1 /mnt/windows et enfin umount /mnt/windows
4) accès au disque Linux : mkdir /mnt/linux puis mount /dev/hdb1 /mnt/linux et en fin umount /mnt/linux

Tout en travaillant sur des partitions minix, etx2, msdos fat 16 et fat 32, je n'ai pas rencontré de problème avec ces commandes lors des opérations de montage. Si tel n'était pas votre cas, n'oubliez pas que l'option -t permet de préciser le type du système de fichiers.
Si vous n'êtes pas sûr des lettres et numéros (hda1, hdc, etc) attribués à vos différents lecteurs et à leurs partitions, vous pouvez utiliser la commande dmesg qui liste les messages affichés au démarrage du système. Sans vous donner obligatoirement la réponse en toutes lettres, elle vous aidera à vous remémorer votre configuration grâce à des lignes telles que :
...
hda : Quantum Bigfoot, 5748 MB etc.
hdb : Maxtor, 14655 MB etc.
hdc : Compaq dvd-rom etc.
...
floppy drive(s) : fd0 is 1.44 M
...
Partition check :
hda : hda1
hdb : hdb1 hdb2 hdb3 < hdb5 hdb6 hdb7 >
...

Une fois ces opérations pour le moins en partie effectuées, vous pouvez utiliser les commandes que la Tomsrtbt met à votre disposition pour résoudre votre problème, si problème il y a. La plupart des commandes sont dans le répertoire /usr/bin (et non /bin) et de toute façon ces deux répertoires constituent à eux seuls le path de la Tomsrtbt (commande echo $PATH). Ces commandes sont beaucoup trop nombreuses pour que nous les passions ici en revue et, en toutes confidences, il y en a même certaines que je ne connais absolument pas :-( Si vous hésitez sur l'utilisation de certaines de ces commandes, vous pouvez avoir recours aux pages man incluses dans la distribution (commande : man nom_commande)

Même si la Tomsrtbt d'origine constitue une excellente disquette de démarrage et d'administration, notez qu'il est possible de la personnaliser sans grandes difficultés (tout est déjà prévu). Pour ce faire je me contenterai à ce jour de vous renvoyer à la FAQ de Tom Oehser ... Vraiment, il est très fort ce Tom !

Haut


Nasgaïa GNU/Linux

par Marc et Jonesy

Future distribution GNU/Linux francaise.


Nasgaïa est un projet de distribution GNU/Linux qui a pris naissance dans le cerveau de Martial sous le nom de Domino, puis a vu le jour sur les forums de Léa. Rien d'étonnant donc si son équipe de départ est essentiellement composée de fervents Léatiens : Martial bien sûr, mais aussi Michel, Arnaud, Jonesy et Marc. Mais, au-delà de ce qui précède, Nasgaïa est en fait tout simplement l'envie de quelques passionnés de créer leur propre distribution et, pour les moins techniciens d'entre eux, de participer d'une façon ou d'une autre à cette création.

L'esprit

Plusieurs aspects sont ici prépondérants mais le premier d'entre eux est l'aspect humain, comme en témoigne le premier des articles de la Charte du projet : La personne humaine passe avant tout. Chacun travaille selon ses compétences, ses envies et le temps dont il dispose. Il reste donc autant que possible libre dans sa participation qui, cela va de soi, ne saurait être que volontaire et bénévole. Les décisions concernant les grands axes à adopter sont prises en commun et en public, tout simplement sur les forums du site ou sur quelque chat.
L'aspect légal n'est pas à négliger non plus. D'une façon générale, Nasgaïa a opté pour la licence GPL pour tout ce qui concerne les sources et pour la licence FDL pour ce qui est des documents (ceci ne concerne bien sûr que les créations, les licences originales des logiciels et documents inclus étant naturellement conservées). Cependant si un participant le souhaite, il peut opter pour une autre licence tant que celle-ci reste conforme à l'esprit du Libre. Pour résumer on peut dire que, si chacun reste le propriétaire de son travail, il le met volontiers et gracieusement à la disposition de tous.
Le dernier aspect que nous entreverrons, fondamental lui aussi, est l'aspect technique. Le principal objectif est ici de faire le plus simple et le plus compréhensible possible, sans préjuger des intentions de l'utilisateur et donc sans ne rien lui imposer d'office. Le point de départ de Nasgaïa est une LFS, mais sa version finale ne devrait tout de même pas être aussi minimaliste qu'une LFS ! Elle se veut une distribution générique, relativement accessible et donnant une base solide et sécurisée dans les domaines d'utilisation les plus courants tels l'internet, les réseaux, le développement ou le multimédia. Notons également que Nasgaïa est totalement optimisée i686 ce qui signifie que son fonctionnement nécessite au minimum un processeur Pentium II ou compatible, ceci afin d'obtenir une distribution non seulement stable mais rapide. Pour l'instant, bien que déjà évoqué, aucun portage n'est réellement prévu vers d'autres plateformes.

La distribution

Nasgaïa s'est fixée un certain nombre d'objectifs précis. La distribution doit tenir sur un seul cdrom, sources incluses, et donc offrir un choix raisonné de programmes dans leur version la plus récente possible. Elle inclut également le dernier noyau stable, non patché et très modulaire, un support ext2, ext3 et reiserfs, devfs et devfsd, une organisation du système de fichiers claire et logique. Un programme d'installation et de configuration, alliant autant que faire se peut légèreté et efficacité, est prévu. Il reste cependant à écrire ou à trouver : diverses possibilités sont à l'étude à ce jour. Le système de paquets spécifique (les .nba) est déjà fonctionnel dans ses grandes lignes. Celui-ci facilite la gestion, installation, désinstallations des programmes sans toutefois gérer les dépendances qui seront signalées.

Les programmes fournis sont presque exclusivement sous licence GPL, ou autres licences conformes à cet esprit, et accompagnés de leurs sources originales. Une sélection a été faite afin d'éviter au maximum les redondances inutiles et de ne proposer que ceux qui, à notre avis, offre le meilleur rapport simplicité / qualité / performance. Ces programmes sont installés en incluant leur aspect développement, comme si l'utilisateur les avait lui-même compilés.
Côté console on trouve notamment : vim, mc, sendmail, fetchmail, pine, w3m... Bref tout ce qu'il faut pour gérer confortablement son pc, se connecter ou encore effectuer des tâches réseau (firewall, passerelle, etc) ou de développement. Côté graphique les programmes précédents peuvent bien sûr tourner dans un xterm, un aterm ou encore un gnome-terminal puisque l'environnement de bureau Gnome est inclus dans Nasgaïa. Cet environnement y est d'ailleurs accompagné de quelques gestionnaires de fenêtres incontournables tels wmaker, e16, fluxbox ou icewm. Pour les inconditionnels de twm, ils pourront aussi s'ils le souhaitent, continuer à l'utiliser. Dès lors, pour occuper dignement tous ces sympathiques gestionnaires, notons dans la liste des programmes au programme : nedit, rox-filer, sylpheed, galeon, mozilla, xchat, gimp, xmms, xcdroast, mplayer... Enfin la connexion internet devrait être simplifiée au maximum, Nasgaïa offrant notamment un support pour les cas particuliers les plus répandus tels que AOL avec pengaol ou l'ADSL speedtouch USB avec les drivers de B. Papillault, sans oublier bien sûr les modems classiques avec ppp.
Mais, vous l'avez sans doute remarqué, l'environnement de bureau KDE est le grand absent de ce qui précède. En effet les environnements Gnome et KDE offrent pour une large part les mêmes services ; dans ce cadre Gnome a été préféré pour des raisons d'universalité, de performances et parfois de licences. Cependant que les amateurs de KDE se rassurent, si celui-ci ne figure pas sur le cdrom, il devrait être téléchargeable sous forme de paquets nba et donc très facilement installable. D'autre part les outils de développement de Nasgaïa seront simplifiés et mis à disposition. Chacun pourra ainsi créer aisément ses propres paquets nba et, n'en doutons pas, se fera un plaisir de les mettre à la disposition de tous les Nasgaéens. Mais il faut bien l'avouer, cet aspect du programme Nasgaïa, par ailleurs très généreusement hébergé par la Tux Family, souffre encore aujourd'hui d'un manque cruel : un serveur FTP !

Bien sûr une documentation minimale accompagne tous ces jolis programmes. Les inénarrables pages man en français, quand elles existent. L'incontournable, indescriptible, seul et unique Léa-Book, pour répondre à toutes les questions concernant les aspects généraux de GNU/Linux. Un modeste Nasgaïa-Book (encore à rédiger, avis aux amateurs) traitant des points les plus spécifiques de Nasgaïa : installation, configuration, gestion des paquets...

Et vous ?

Si ce qui précède n'a pas satisfait totalement votre curiosité mais l'a mise en éveil, tant mieux ! Nasgaïa évolue rapidement et, à vouloir être trop précis, il faudrait réécrire cet article chaque semaine. Vous souhaitez toutefois en savoir plus, connaître l'état d'avancement de ce projet, nous dire un petit bonjour ? Rendez-vous donc sur le site de Nasgaïa, consultez la page équipe, la charte, la liste des programmes, les forums de développement, enfin tout ce que vous voulez puis laissez nous un gentil message sur le forum Visiteurs. N'hésitez pas ! Une petite remarque, un simple avis peut nous être très utile, cela a déjà été plusieurs fois le cas. Vous aimeriez participer plus activement ? Quelles que soient vos compétences et le temps dont vous disposez votre aide est la bienvenue : rédacteur, graphiste, testeur, programmeur ou simple inspecteur des travaux finis ?

A vous de choisir et à bientôt.
Note : cet article a été rédigé dans le cadre du partenariat entre Léa-Linux et Nasgaïa. Toute l'équipe de Nasgaïa remercie donc vivement son amie Léa pour son soutien et lui souhaite bonheur, prospérité et longue vie.
Note de Léa : houlala je suis toute rouge :-)

Haut


Fin du chapitre