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.
Dans cette section, vous trouverez des articles sur l'installation, la configuration et l'utilisation de logiciels sous Linux.
Si vous cherchez :
.tar.gz
ou .tar.bz2
ou .tar
(on dit : d'après les sources), installation qui fonctionne avec
toutes les distributions mais qui présente le désavantage de ne pas utiliser la gestion des programmes de votre distribution.par Fred
Les diverses méthodes pour installer StarOffice 5.1a. (peut aussi fonctionner pour les version supérieures !)
[user@localhost home]# mount /mnt/cdrom(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 :
[user@localhost home]# find /mnt/cdrom -name 'so51_*'
/mnt/cdrom/logiciels/so51_33lnx.tar.gz
Deux cas différents peuvent arriver :
[user@localhost home]# tar xfv /mnt/cdrom/logiciels/so51_33lnx.tar
staroffice/.................
...............
...............
[user@localhost home]# tar xzfv /mnt/cdrom/logiciels/so51_33lnx.tar
staroffice/.................
...............
...............
[user@localhost home]# cd starofficeTrouvez le programme d'installation :
[user@localhost staroffice]# _
[user@localhost staroffice]# find -name setupLe programme d'installation s'appelle : install/setup. Passez dans le répertoire contenant le programme d'installation (setup) :
install/setup
[user@localhost staroffice]# cd installRestez-y pour la suite.
[user@localhost install]# _
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]$ ./setupUne 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/sofficeou bien par les icônes crées dans les menus de KDE (cherchez bien !) lors de l'installation.
[user@localhost install]$ suPuis lancez la commande d'installation :
Password: xxxxxxxx (mot de passe du root)
[root@localhost install]# _
[root@localhost install]# ./setup /netLe 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/setupEt maintenant user peut lancer StarOffice par la commande :
[user@localhost home]$ /home/user/Office51/bin/sofficeou bien par les icônes crées dans les menus de KDE (cherchez bien !) lors de l'installation.
Et c'est tout (heureusement!)
par Anne
Installer OpenOffice et le correcteur orthographique
Tout comme pour StarOffice, il est possible d'installer OpenOffice de trois manières :
urpmi ooffice
(et c'est tout ; il s'agit en fait d'une installation multi-utilisateurs (ou réseau)). Passez directement à l'installation du dictionnaire français.Pour les utilisateurs de Debian : ajouter cette ligne à votre fichier
/etc/apt/sources.list
:
deb http://ftp.freenet.de/pub/ftp.vpn-junkies.de/openoffice/ woody main contrib
puis mettez apt à jour :root@pingu # apt-get update
Ceci fait vous n'avez maintenant plus aucun fichier à modifier, tout se fera automatiquement.
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).
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 suppressionPour 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
.
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é !
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
Le dictionnaire français du correcteur orthographique n'étant pas fourni dans le package d'installation de base d'OpenOffice.
Utiliser la macro fourni par OpenOffice : (qui marche très bien)
Télécharger la macro : ici (récupérez la dernière version).
Note 1 : Utilisateurs Debian
En tant que root, pour que la macro marche il faut supprimer un lien symbolique:
rm /usr/lib/openoffice/share/dict/ooo/dictionary.lst
et copier un fichier de configuration a ça place d'un autre :
cp /etc/dictionary.lst /usr/lib/openoffice/share/dict/ooo/
Note 2 : si vous souhaitez que n'importe quel utilisateur puisse installer un nouveau dictionnaire pour tout le monde, il faut que cet utilisateur ait les droits d'écriture.
A faire en tant que root:
chmod +w /usr/lib/openoffice/share/dict/ooo
chmod +w /usr/lib/openoffice/share/dict/ooo/dictionary.lst
Lancer OpenOffice
Note: faites le en tant que root si vous souhaitez l'installer pour tous les utilisateurs de votre ordinateur.
Ouvrir le fichier DicOOo.sxw
Cliquer sur exécuter
Sélectionner la langue dans laquelle vous souhaitez continuer l'installation
Cliquer sur Lancer DicOOo
Sélectionner le type d'installation que vous souhaiter faire puis Suivant.
Cliquer sur Récupérer la liste (Il va sur internet chercher la liste des dictionnaires disponibles).
Sélectionner les langues que vous souhaitez avoir (attention si vous les mettez tous cela peut jouer sur la rapidité de votre système). La sélection multiple se fait comme d'habitude avec la touche [Control].
Suivant
Cliquer sur Récupérer la liste
C'est la liste des Dictionnaires de césures (exemple: en français on met le . juste après le mot, en anglais, on rajoute un espace entre les deux. Autre exemple : en France, on ne coupe pas les mots n'importe où, en général, en met le mot à la ligne, ou on le coupe au niveau d'une syllabe. En Anglais américain, on coupe partout !!! ).
Idem que pour sélectionner les langues.
Suivant
Le dictionnaire des synonymes (ne peut être installer que en mode root).
Suivant
Il télécharge tous les dictionnaires que vous avez sélectionné et les installe.
Terminer
C'est presque terminer. Fermer OpenOffice puis relancer avec l'utilisateur
que vous souhaitez.
Aller paramétrer les dictionnaires dans le menu Outils -> Options -> Paramètres linguistiques
Langues : dans Environnement Linugistique sélectionner dans le menu déroulant Français(France).
Linguistique : sélectionner OpenOffice MySpell Spelréplchecker et ALT 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é :).
Merci à Valta.
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 :
--prefix=PREFIX
: installe OpenOffice dans le répertoire PREFIX
(par défaut,
dans /usr/local
.--single
: installe OpenOffice en mode mono-utilisateur (par défaut, en mode
multi-utilisateurs).--interactive
: installe OpenOffice en mode interactifExemple : Je souhaite installer OpenOffice en mode mono-utilisateur dans le répertoire /home/anne
anne@pingu$ /opt/install --prefix /home/anne --single
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:
/chemin_vers_OO/OpenOffice.org1.0.1/soffice private:factory/swriter &
/chemin_vers_OO/OpenOffice.org1.0.1/soffice private:factory/scalc &
/chemin_vers_OO/OpenOffice.org1.0.1/soffice private:factory/simpress &
/chemin_vers_OO/OpenOffice.org1.0.1/soffice private:factory/sdraw &
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 ;)).
[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 connexion à 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 connexion, 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 !
par Jean-Christophe
L'éditeur des vrais hommes ;)
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.
vi XF86Config
vi nom_du_fichier
].
i
] ou [Insert
] pour insérer du texte
à l'endroit où se trouve le curseur,A
] pour ajouter du texte à la fin d'une ligne.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.
:q!
[Entrée] pour quitter sans sauver,:w
[Entrée] pour enregistrer,:wq
[Entrée] pour enregistrer et quitter,x
efface le caractère qui se trouve sous le curseur,dd
efface la ligne sur laquelle se trouve le curseur,:u
[Entrée] permet d'annuler (ou :undo
).:
]help
pour en savoir plus sur vi,:
]help howto
pour débuter...:
]se all
pour afficher toutes les options.
[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
ab |
Utiliser a comme une abbréviation pour b |
[r ]c |
Remplacer le caractère sous le curseur par c |
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 occurrence de str |
[:]g/^$/d |
Efface toutes les lignes vides |
[: ]n fichier |
Ouvre le fichier fichier |
[: ]q! |
Quitter vi sans enregistrer les modifications |
[: ]wq |
Enregistrer et quitter |
[: ]sh |
Lance un shell ; lorsque vous tapez exit dans ce shell, vous
revenez à vi |
[: ]file nom |
Change le nom du fichier courant, équivalent à "enregistrer sous" lorsque vous enregistrerez. |
[: ]x ,y w
fichier |
Enregistre les lignes x à y dans le fichier fichier |
[: ]x ,y w>> 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 |
[h],
[l],
[k],
[j]
ou [<-], [->], [ ![]() ![]() |
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). |
[/ ]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 ,y s/ 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
occurrence, 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 ,y g/ str /cmd |
Recherche entre les lignes x et y
(optionnel) la chaîne str et exécuter la commande
vi cmd
sur chaque occurrence |
[~ ] |
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 ][V ][ 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-V 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 (vous pouvez aussi taper [Entrée] ; la Ctrl-M ou [Entrée] renvoient tous les deux un CR, i.e. le caractère de code 13), 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, peut être ajouté dans le fichier ~/.vimrc) |
[: ]set number |
Affiche le numéro de ligne devant chaque ligne |
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 ;)
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 :
Ctrl+u, lâchez les touches (au moins le 'u'), puis :
Ctrl+x, lâchez les touches, puis :
u
Vous disposez également des combinaisons suivantes :
|
|
|
|
---|---|---|---|
|
|
||
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
||
|
|
||
|
|
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
||
|
|
||
|
|
|
|
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
Effet |
---|---|
|
|
|
|
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).
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+xqui é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 !
|
Effet |
|
Effet |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
Effet |
|
Effet |
---|---|---|---|
|
|
|
|
|
|
|
Effet |
---|---|
|
|
|
|
|
|
|
|
Pour diviser l'écran d'emacs en deux fenêtres et les manipuler, il faut utiliser :
|
Effet |
---|---|
|
pour couper horizontalement en 2 la fenêtre où se trouve le curseur |
|
pour couper verticalement en 2 la fenêtre où se trouve le curseur |
|
pour changer de fenêtre active |
|
pour ne garder que la fenêtre du curseur |
|
pour ouvrir un fichier dans une autre fenêtre |
|
pour afficher le contenu d'un répertoire dans une autre fenêtre |
par Hélène
A l'attention de ceux qui utilisent ce "couteau suisse" et qui ne parlent pas un mot de Lisp !.
Un mode d'Emacs est schématiquement, une fonction, qui serait appelée à chaque chargement d'un fichier donné, ou automatiquement au lancement d'Emacs. Dans ce cas, une ligne sera rajoutée dans le fichier de configuration .emacs.
On pourrait aussi parler de bibliothèque, de librairies, qui sont ajoutées au programme principal pour en augmenter les fonctionnalités.
Cette "fonction" se présente comme un fichier .el écrit en Lisp, (parfois d'une archive de plusieurs fichiers), qui sera copié dans un sous-répertoire donné où Emacs pourra aller le lire et l'utiliser.
Que fait-on avec ce fichier (cette archive) une fois téléchargée ?
/usr/share/emacs/site-lisp/
par exemplebyte-compile-file NOM-DU-FICHIER
RET, ou, en mode Dired avec B sur le nom du fichier, mais ce n'est pas du tout obligatoire.
N.B. Si vous ne savez pas où mettre le fichier .el, regardez où sont les autres fichiers .el dans votre arborescence... ou, si vous voulez le mettre ailleurs, il ne faudra pas oublier de rajouter dans le .emacs une ligne qui ressemblerait à ça (à adapter à chaque cas personnel) (setq load-path (cons "/home/helen/softs/" load-path))
Emacs est un fantastique éditeur de textes, mais parfois, en travaillant avec lui, on peut avoir envie d'écouter de la musique, et ceci, sans avoir à utiliser un autre programme. La fonction mpg123.el est faite pour ça !
Il faut bien sûr avoir sur son disque dur le programme mpg123, qui est fourni avec la plupart des distributions, ou qui peut être téléchargé et installé sans difficultés (voir la logithèque de Léa), la fonction mpg123.el en sera le front end.
/usr/share/emacs/site-lisp/
.emacs
, et rajouter la ligne : (autoload 'mpg123 "mpg123" "A Front-end to mpg123" t)
La fonction autoload permet de dire à Emacs qu'une fonction existe, et dans quel fichier. Il se chargera ensuite de charger le fichier en question au premier appel de cette fonction.
mpg123
RET. Il vous sera demandé le chemin du fichier (ou du sous-répertoire dans lequel sont les fichiers) à écouter et « let's listen the music ! » comme il est conseillé dans le minibuffer.A ce niveau là, on se trouve devant une fenêtre à partir de laquelle on va pouvoir piloter son écoute musicale avec une vingtaine d'options (réglage du son, choix des pistes, pause, retour en arrière, avance, etc...) il suffit de lire et de choisir la touche à taper ! Et bien sûr, personne ne vous empêche de continuer votre travail dans une autre fenêtre !
On peut écouter aussi ses .ogg, puisque le front end fonctionne aussi avec ogg123 (voir la logithèque de Léa).
Ispell est un correcteur orthographique bien connu. Pour l'utiliser en langue française, il est recommandé d'adjoindre à son .emacs la ligne suivante :
(setq ispell-dictionary "francais")
On l'appelera ensuite avec M-x ispell-buffer
, ou ispell-region
selon ce que l'on souhaite. Mais si on veut qu'au fur et à mesure de la frappe, les fautes soient signalées ? Flyspell est fait pour ça !
Si vous n'avez pas déjà flyspell.el
dans votre distribution, vous pouvez le télécharger à l'INRIA. Ensuite, vous rajouterez (setq flyspell-default-dictionary "francais")
dans votre .emacs, afin de pouvoir l'appeler quand vous en aurez besoin, et avoir un dictionnaire français.
On peut simplement taper M-x flyspell-mode
RET pour activer le mode de correction à la volée.
Bien entendu, on peut aussi automatiser son chargement en ajoutant
(autoload 'flyspell-mode "flyspell" "On-the-fly spelling checker." t)
au .emacs, ce qui le rendra opérationnel à chaque lancement d'Emacs (mais ce n'est pas forcément souhaitable, à vous de voir..).Enfin, on peut l'appeler à volonté, en lui affectant une touche : par exemple, après avoir rajouté dans le .emacs
;; Pour que F2 lance flyspell
(global-set-key [f2] 'flyspell-mode)
en tapant F2 on lancera le mode de correction automatique.
Flyspell changera la couleur du mot mal orthographié, ou inconnu de son dictionnaire. Un appui sur le bouton du milieu de la souris fera apparaître un menu contextuel qui permet, soit de corriger le mot, en utilisant un de ceux qui sont proposés, soit de l'ajouter au dictionnaire, soit de l'accepter pour cette session ou pour ce buffer uniquement. Les doublons seront marqués d'une autre couleur.
À noter que Flyspell est très pratique en édition LaTeX puisqu'il sait reconnaître les balises TeX et ne pas s'y arrêter. On peut rajouter
(add-hook 'LaTeX-mode-hook 'flyspell-mode)
à cet effet.
Les scripts POV-ray sont de simples fichiers texte, et bien entendu, un simple éditeur de texte permet de les éditer, donc Emacs le peut ! Mais il peut faire beaucoup plus aussi... On voudrait avoir une coloration syntaxique agréable, bien pratique pour corriger un script et le mettre au point, avoir des indentations automatiques, et aussi lancer le rendu des images sans avoir à ouvrir une seconde fenêtre où on ouvrira un shell ( M-x shell ou eshell selon les habitudes de chacun) pour lancer la commande adéquat. pov-mode.el le fait !
L'installation de ce fichier est identique à ce qui a été vu plus haut, il sera copié à l'endroit où Emacs pourra le retrouver. Ensuite, c'est tout simple, il suffit d'ouvrir un fichier avec l'extension .pov pour bénéficier des avantages de ce mode. Ne pas oublier toutefois d'ajouter ces quelques lignes dans le .emacs :
(autoload 'pov-mode "pov-mode.el" "PoVray scene file mode" t) (add-hook 'pov-mode-hook 'turn-on-font-lock) pour la coloration syntaxique.
Ensuite, sans quitter le buffer actif, un simple C-c C-c (avec choix possible quant à la qualité, la définition, etc..) lancera le rendu..
Plus de détails sur le site : http://www.acc.umu.se/~woormie/povray/.
Emacs a de nombreux modes pour faire de la programmation en de nombreux langages. Comme pour POV, ils permettent les indentations, la coloration syntaxique, etc... et sont spécifiques au langage choisi (C, lisp, php, html).
Donc, si on édite un fichier .php, il suffit d'avoir php-mode.el
et au lancement d'un fichier .php, les fonctionnalités incluses dans ce mode seront immédiatement actives. De même, avec html pour lequel il existe plusieurs modes.
Toutefois, si on édite un fichier html, dans lequel il y a des lignes de php, par exemple, la coloration syntaxique "s'emmêle les pieds", ce que comprend un mode, l'autre l'interprète mal, et le résultat devient bien difficile à lire... C'est là que mmm-mode
(ou multi mode, mmm étant l'abréviation de multi major modes) est indispensable.
Ce mode pourra soit être appelé à la demande, soit automatiquement lors du lancement d'Emacs, et dans ce cas, à l'ouverture d'un fichier d'extension .php, il sera opérationnel.
mmm-mode
s'installe de façon tout à fait standard : décompresser l'archive, lire le fichier INSTALL, taper successivement :
./configure
make
make install
Normalement, les fichiers doivent être arrivés au bon endroit de l'arborescence pour être trouvés par Emacs.. ensuite, il suffira d'une ligne (require 'mmm-mode)
pour que tout soit opérationnel.
À ce niveau, dans votre script html, vous verez vos lignes php surlignées d'une couleur différente, les instructions seront aussi colorisées, etc.. et vous n'aurez plus d'excuse pour générer des erreurs !!!
Plus de renseignements sur le site d'XEmacs.
Bien entendu, si les couleurs ne vous plaisent pas, vous avez tout loisir de les personnaliser, mais là, ça n'a plus rien à voir avec notre sujet, et pourrait faire l'objet d'un autre article.
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.
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 :
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).
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
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-gnusEnsuite, 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. |
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 --norewriteL'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
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") |
Et nous sommes maintenant dans le vif du sujet, la configuration de gnus. Tout ce qui suit doit être ajouté dans le fichier ~/.gnus
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") |
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") |
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") |
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") |
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") |
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") |
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") |
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).
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.
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 :)
Ce document est libre, selon les termes de la licence GNU FDL
par Fred, ajouts de Jean-Thomas MUYL(maston28)
ou comment préserver votre identité sur internet
Il fonctionne suivant le principe suivant, chaque personne utilisant GPG dispose de deux clés :
Note: dans la suite je n'emploierai plus l'expression "crypter" qui est un anglicisme mais chiffrer qui est le terme français adapté.
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, ou 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 chiffrer un message, c'est similaire. Je dois connaître la clé publique du destinataire. Je passe à GPG le message à chiffrer 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 chiffré (que même moi, je ne peux déchiffrer). Je l'envoie au destinaire qui le déchiffre 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.
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.
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é.
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, choisissez 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, chiffrer, vérifier, déchiffrer). 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 pouvoir ê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...)
Si personne ne connait votre clé publique, personne ne pourra vérifier l'authenticité de vos messages, ni vous envoyer des messages chiffré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. C'est la méthode que je vous encourage à utiliser.
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
Je supposerai que le message que nous souhaitons signer est : ~/message.txt. Il y a plusieurs méthodes :
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.
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 (--armor
) 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-----
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 (--clearsign
)lisible 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.
Comme il y a plusieurs façons de signer, il y a plusieurs façon de vérifier la signature.
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>"
À 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.
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.
Pour chiffrer 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).
Chiffrer (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.
Chiffrer (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.
Vous avez reçu le message chiffré : message.txt.gpg (ou message.txt.asc si l'option --armor a été utilisée). Pour le déchiffrer, 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échiffre 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 chiffrage, au cas où vous en ayez plusieurs).
À 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).
Il est possible d'utiliser kgpg pour 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.
Ajout de Jean-Thomas MUYL (maston28)
Le menu d'édition de clé de gpg possède cependant d'autres options intéressantes, et certaines méritent de s'y attarder...
Essayons la commande help
pour avoir une liste des options disponibles :
Commande> help
quit quitter ce menu
save enregistrer et quitter
help afficher cette aide
fpr afficher l'empreinte
list lister la clé et les noms d'utilisateurs
uid sélectionner le nom d'utilisateur N
key sélectionner la clé secondaire N
check lister les signatures
sign signer la clé
lsign signer la clé localement
nrsign signer la clé de façon non-révocable
nrlsign signer la clé de façon locale et non-révocable
adduid ajouter un utilisateur
addphoto ajouter une photo d'identité
deluid enlever un utilisateur
addkey ajouter une clé secondaire
delkey enlever une clé secondaire
addrevoker ajouter une clé de révocation
delsig supprimer les signatures
expire changer la date d'expiration
primary marquer le nom d'utilisateur comme principal
toggle passer de la liste des clés secrètes aux clés privées et inversement
pref lister les préférences (expert)
showpref lister les préférences (bavard)
setpref donner la liste de préférences
updpref préférences mises à jour
passwd changer le mot de passe
trust changer la confiance
revsig révoquer les signatures
revkey révoquer une clé secondaire
disable désactiver une clé
enable activer une clé
showphoto montrer la photo d'identité
Tout d'abord, regardons ce que donne la commande uid :
Commande> uid
pub 1024D/6D30A93E créée: 2003-10-05 expire:
never confiance: u/u
sub 2048g/A6FCFC89 créée: 2003-10-05 expire:
never
(1) Jean-Thomas MUYL (maston28) <jtmaston@wanadoo.fr>
(2) plopppp (plop) <plopppp@plopp.com>
(3). coin_pwet (pwet) <coin@pwet.com>
Il y a ici 3 utilisateurs déclarés pour la même clé. Aucun n'est sélectionné. La plupart des commandes de ce menu nécessitent qu'un ou plusieurs utilisateurs soient sélectionnés :
Commande> uid 2
pub 1024D/6D30A93E créée: 2003-10-05 expire:
never confiance: u/u
sub 2048g/A6FCFC89 créée: 2003-10-05 expire:
never
(1) Jean-Thomas MUYL (maston28) <jtmaston@wanadoo.fr>
(2)* plopppp (plop) <plopppp@plopp.com>
(3). coin_pwet (pwet) <coin@pwet.com>
Vous pouvez donc constater que l'utilisateur sélectionné a une étoile *
après son numéro.
Pour déselectionner tous les utilisateurs, utilisez uid 0
Imaginons maintenant que vous souhaitiez supprimer l'utilisateur sélectionné. Procédez comme suit :
Commande> deluid
Enlever réellement cet utilisateur ? yes
(1) Jean-Thomas MUYL (maston28) <jtmaston@wanadoo.fr>
(2). coin_pwet (pwet) <coin@pwet.com>
Si vous avez plusieurs adresses de courriel, vous voudrez sans doute pouvoir signer avec la même clé pour ces différentes adresses. Il vous faut donc ajouter de nouveaux utilisateurs via la commande adduid
Commande> adduid
Nom réel: Moi même maitre du monde
Adresse e-mail: autre_adresse@email.com
Commentaire: eureka
Vous utilisez le jeu de caractères 'iso-8859-1'.
Vous avez sélectionné ce nom d'utilisateur:
"Moi même maitre du monde (eureka)
<autre_adresse@email.com>"
Changer le (N)om, le (C)ommentaire, l'(E)-mail ou (O)K/(Q)uitter ? O
Vous avez besoin d'un mot de passe pour déverrouiller la
clé secrète pour
l'utilisateur: "Jean-Thomas MUYL (maston28) <jtmaston@wanadoo.fr>"
clé de 1024 bits DSA, ID 6D30A93E, créée le
2003-10-05
pub 1024D/6D30A93E créée: 2003-10-05 expire:
never confiance: u/u
sub 2048g/A6FCFC89 créée: 2003-10-05 expire:
never
(1) Jean-Thomas MUYL (maston28) <jtmaston@wanadoo.fr>
(2). Moi même maitre du monde (eureka)
<autre_adresse@email.com>
Voila ! Simple non ?
Essayons maintenant de changer le mot de passe défini à la première génération de clé avec la commande passwd
Commande> passwd
La clé est protégée.
Vous avez besoin d'un mot de passe pour déverrouiller la
clé secrète pour
l'utilisateur: "Jean-Thomas MUYL (maston28) <jtmaston@wanadoo.fr>"
clé de 1024 bits DSA, ID 6D30A93E, créée le
2003-10-05
Entrez le mot de passe.
Entre le nouveau mot de passe pour cette clé secrète.
Entrez à nouveau le nouveau mot de passe pour cette clé
secrète.
Vous pouvez également ajouter une photo à votre clé. Cependant attention, celle-ci doit obligatoirement être au format JPEG. De plus, elle sera stockée dans votre clé publique, ainsi, si elle est trop grosse, votre clé publique risque fort de devenir intransportable...
Commande> addphoto
Pick an image to use for your photo ID. The image must be a JPEG
file.
Remember that the image is stored within your public key. If you
use a
very large picture, your key will become very large as well!
Keeping the image close to 240x288 is a good size to use.
Enter JPEG filename for photo ID:
De la même manière, la commande showphoto
vous montreras la photo liée à la clé.
Voilà pour les principales options de ce menu, à vous ensuite de tester les autres ou de regarder dans la documentation de gpg à quoi elles correspondent.
ATTENTION, aucune des modifications que vous ferez ne seront prises en compte si vous n'utilisez pas save
avant de fermer le menu !
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é.
En réalité, kgpg n'est pas le seul outil graphique, mais c'est à mon sens le plus développé et le plus simple d'utilisation. Il est surtout profondément intégré dans kde (je ne sais pas pour gnome)...Une fois vos clés créées, vous allez voir apparaître dans konqueror de nouvelles options sur les fichiers :
Si vous cliquez sur crypter fichier, vous allez devoir choisir pour qui vous voulez chiffrer (crypter=chiffrer) ce fichier (avec quelle clé publique).
Votre mot de passe vous sera alors demandé, et le fichier chiffré sera créé. Pour déchiffrer un fichier, cliquez simplement dessus, il sera automatiquement déchiffré.
Il existe un applet pour kgpg qui simplifie encore plus ce travail, il se place dans une boite à miniature de la barre des taches KDE. Vous pouvez chiffrer-dechiffrer des fichiers grâce à lui en faisant un simple glisser-déposer.
Mais cet outil a d'autres options, un simple clic permet de le voir :
Etudions quelles sont ces options :
Dans les deux cas vous devrez choisir la clé adéquate, et entrer votre mot de passe
La procédure pour utiliser kmail avec sa clé gpg est détaillée dans ce truc et astuce ainsi que celui-ci
Voilà, avec cela vous devez pouvoir vous en tirer avec GPG (ou PGP). Il est possible de signer et chiffrer 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 chiffrage/déchiffrage, signature/vérification.
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). Chiffrer 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.
par Fred
Utiliser ASpell pour faire la correction orthographique de vos textes.
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.
[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"
[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.
[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 !
[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
lang francais
Et c'est tout, maintenant pour utiliser gaspell vous pouvez taper :
gaspell /ou/c/est/UN-TEXTE-FRANCAISVoilà.
run-with-aspell <programme> <paramètres de programme>Simplissime ! Mais dans la mesure du possible essayez de remplacer les appels à ispell par : aspell check.
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.
Jean-Marc LICHTLE, 10 février 2002
Utilisation de GnuPlot, LATEX et LYX
Le présent document s'applique aux versions suivantes des logiciels :
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.
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.
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 :
Les différentes phases de la création d'un document L ATEX contenant des graphiques Gnuplot peuvent se résumer comme suit :
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.
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.
Mais passons aux choses sérieuses...
|
Le premier graphique est obtenu en tapant simplement > plot sin(x) à l'invite de Gnuplot. Ce premier résultat appelle les commentaires suivants:
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
|
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.
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...
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 !
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.
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.
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.
|
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.
|
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.
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é !
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 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.
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.
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.
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
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.
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.
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 !
par Fred
Faites fonctionner des programmes Windows sous Linux en utilisant Wine.
[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.
[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 :
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.conf où X 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 :
[Drive A]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 :
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
[Drive F]Voilà, il ne reste plus qu'a modifier la section [wine] de façon que le disque temporaire soit pris en compte correctement :
Path=/tmp
Type=hd
Label=Tmp Drive
Filesystem=win95[Drive G]
Path=${HOME}
Type=network
Label=Home
Filesystem=win95
[wine]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.
Windows=c:\windows
System=c:\windows\system
Temp=f:\
Path=c:\windows;c:\windows\system
# Profile=c:\windows\Profiles\Administrator
GraphicsDriver=x11drv
# mkdir /mnt/win_cEt cela comblera Wine.
# mkdir /mnt/win_c/windows
# mkdir /mnt/win_c/windows/system
$ wine winhelpPour 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.
$ 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.
$ wine /mnt/cdrom/autorun.exePour 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.
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.
rpm -i xtel-{version}.{arch}.rpmIl faut bien sur être root pour pouvoir installer ce paquetage. Maintenant XTEL est installé mais pas configuré.
[root@localhost]# rpm -ql xtel | grep -E "(xtel\.services|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 :
/etc/xtel/xtel.services
/etc/xtel/xtel.lignes
# 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
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 :
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 :
# default: on
# description: serveur pour les connexions Minitel
# V0.0: Cree le 23 novembre 2001 par JPV
service xtel
{
socket_type = stream
wait = no
user = root
server = /usr/X11R6/bin/xteld
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
}
Il faut quand même savoir qu'XTEL souffre de quelques problèmes (à mon sens) :
La table de correspondance est la suivante :
minitel | emission-commande |
---|---|
ENVOI | A |
RETOUR | B |
REPETITION | C |
GUIDE | D |
ANNULATION | E |
SOMMAIRE | F |
CORRECTION | G |
SUITE | H |
CONNEXION_FIN | I |
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.
par Jean-Christophe 'Jice' Cardot
révision par Jean-Marc Lichtle, puis Jice et Anne, puis Jean-Thomas MUYL (maston28)
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.
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 :
rpm
s'adresse à la base de données
des paquetages installés, qui consigne les noms courts en plus
des noms de fichiers complets. L'indication du numéro de version
n'est donc en général pas nécessaire (sauf si le
même package est installé 2 fois avec 2 versions différentes).rpm -ivh toto.rpm
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.
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 :
rpm -Uvh --oldpackage toto.rpm
>rpm -e toto
rpm -e toto-version
e
" correspond à "erase" (effacer en anglais).
Afficher la liste de tous les paquetages déjà installés
J'imagine que "a
" doit signifier "all" ;-) :
rpm -qa
rpm -qa | less
Trouve un paquetage identifié par son nom (toto) :
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 :
rpm -qa --last
Pour trier par taille :
rpm -qa --queryformat '%{name} %{size}\n'
| sort -n +1 | column -t
Obtenir la liste des fichiers contenus dans un paquetage toto qui est déjà installé :
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. :
rpm -qi toto
i
" est mis pour "information" ? rpm -qip toto.rpm
Avec un "p
" comme "package".
Nota :
p
s'applique aussi à d'autres syntaxes,
par exemple rpm -qlp toto.rpm
pour avoir la liste des fichiers d'un
paquetage non encore installé.rpm
-qlip toto.rpm
donnera à la fois les infos et la
liste des fichiers du paquetage toto.rpm.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 (le CD en général) et faites :
for i in *.rpm ; do rpm -qpli $i | grep le_fichier && echo $i ; done
ou bien :
rpm -q -p -filesbypkg *.rpm | grep le_fichier
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.
rpm
ne veut pas installer le paquetage totoIl existe plusieurs options. Premièrement : ne pas vérifier les dépendances.
rpm -i --nodeps toto
Deuxièmement : forcer l'installation, en cas de conflit avec certains autres rpm
.
rpm -i --force toto
Enfin, combinez les deux options pour vraiment obliger rpm
à procéder à l'installation.
rpm
ne veut pas désinstaller le paquetage totoIl suffit alors de faire :
rpm -qa | grep toto
toto-1.1
toto-1.2
rpm -e toto-1.1
rpm2cpio
, et ensuite utiliser la commande cpio
pour extraire le ou les fichiers.
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.
man 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>
où <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
.
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.
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.
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.
urpmi koffice
pour chercher et installer Koffice,
urpmi mplayer
, etc.)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.
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
Ajout de Jean-Thomas MUYL
Si vous possédez une connexion à haut débit (ce n'est pas obligatoire, mais conseillé
pour utiliser cette option), vous pouvez utiliser des sources main
contrib
et update
situées sur internet.
L'outil en ligne à cette adresse vous permet
de configurer vos sources urpmi facilement selon votre distribution et votre localisation géographique.
Si vous avez une connexion à haut débit, je vous conseille même de commencer par un urpmi.removemedia -a
pour ne plus utiliser les cdroms comme sources, et ainsi être plus à jour !
Note : le fichier de configuration de urpm est /etc/urpmi/urpmi.cfg
et les bases de données dans /var/lib/urpmi
.
Pour supprimer la source mes_rpm, taper :
urpmi.removemedia mes_rpm
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).
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
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 ;-)
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
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
.
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
Les commandes urpm sont encore trop peu connues, et la maintenance de votre
Mandrake sera bien plus aisée avec leur utilisation.
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
:
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.
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).
/etc/apt/sources.list
: contient la liste des dépôts pour la récupération des packages. Ces dépôts
peuvent être des CD-ROM, un emplacement sur votre disque dur, des URL./etc/apt/apt.conf
: fichier de configuration de apt-get/var/cache/apt/archives
: contient les packages qui ont été downloadés pour être installés.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 : apt-cdrom --cdrom /mnt/cdrom add
Il vous reste alors à insérer successivement tous les CD en votre possession qui contiennent les packages
Redhat.
apt-get
avec l'argument
install
.apt-get install package1 [package2...]
apt-get install mplayer
installera mplayer et les packages éventuellement nécessaires
pour régler les dépendances.source
.apt-get source galeon
vous permet de récupérer le RPM source de galeon.apt-get
avec l'argument
upgrade
. Il est plus sûr au préalable d'exécuter la commande apt-get update
pour mettre
à jour la base de données locale et s'assurer que la mise à jour est réalisée avec la dernière version
du dit package disponible.apt-get upgrade mplayer
mettra à jour mplayer et les packages éventuellement nécessaires
pour régler les dépendances.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.
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.
Enfin la commande apt-cache
vous permet d'obtenir un certain nombre d'informations sur les packages
installés :
search
.apt-cache search chaine_de_caractères
(la chaîne de caractères peut contenir
des expressions régulières).>apt-cache search mplayer
mplayer - MPlayer, the Movie Player for Linux.
mplayer-skins - A collection of skins for MPlayer.
transcode - A Linux video stream processing utility.
depends
.apt-cache depends chaine_de_caractères
>apt-cache depends mplayer
mplayer
Depends: libdvdread
Depends: libdvdcss
libdvdcss2
Depends: gtk+
Depends: SDL
Depends: divx4linux
Depends: lame
Depends: libvorbis
Depends: lirc
Depends: libdv
Depends: aalib
Depends: arts
par Marc
RMS would be proud.
Cette page s'adresse principalement à ceux qui, découvrant Debian ou une distribution dérivée, souhaitent acquérir facilement et rapidement quelques informations nécessaires pour "bien" gérer leurs paquets Debian et ceci notamment à travers les programmes apt et dpkg. Elle peut donc également intéresser en partie tous ceux qui, bien que n'utilisant pas Debian, souhaitent utiliser ces mêmes programmes pour gérer leurs paquets.
Aucune connaissance spécifique préalable n'est réellement nécessaire pour aborder les informations contenues ci-dessous qui, partant de quelques généralités sur Debian et ses paquets, vous conduiront jusqu'à la compilation de ses paquets sources en passant par la gestion de ses paquets binaires. De nombreuses lignes de commandes sont proposées, nous y distinguerons celles qui peuvent être effectuées en tant qu'utilisateur, précédées d'un $, de celles qui doivent être effectuées en tant que root, précédées d'un #.
De façon générale toutes les commandes d'informations peuvent être entrées en tant qu'utilisateur alors que toutes les commandes d'actions (installer, désinstaller...) doivent être entrées en tant que root ; cette règle admet quelques exceptions notamment pour ce qui est du traitement des paquets sources.
Quelques points très généraux concernant Debian, ses "distributions" (ou versions) et ses paquets, sont à connaître si vous souhaitez comprendre comment fonctionne le système de gestion des paquets et, par exemple, la configuration de apt. Les voici brièvement présentés.
Il existe en permanence trois "distributions" Debian : stable, testing et unstable. Chacune de ces distributions porte un nom mais, mis à part pour l'unstable où ceci est sans conséquence, il ne faut pas confondre la distribution et son nom. A ce jour, la stable est la Woody, la testing est la Sarge, quant à l'unstable elle se nomme toujours Sid (pour Still In Development).
La distribution stable est la distribution officielle de Debian, c'est elle qui est recommandée notamment pour un usage professionnel. Les seules modifications qu'elle subit au cours de son existence sont des corrections de bugs et de trous de sécurité. Elle est la seule à être officiellement suivie par l'équipe de sécurité de Debian. La distribution testing représente la future distribution stable. Plus à jour que cette dernière (notamment quand celle-ci arrive en fin de vie) elle permet, hormis l'aspect sécurité, de bénéficier de la qualité et de tous les avantages du système de gestion des paquets Debian. La distribution testing peut être recommandée pour un usage personnel. La distribution unstable (pas vraiment instable par ailleurs) est constituée des paquets à l'essai avant d'être admis en testing. La plus à jour de toutes, elle souffre cependant parfois de ruptures dans le système de gestion des paquets. L'unstable s'adresse donc plutôt aux développeurs ou à ceux qui veulent être à la pointe quitte à perdre un peu en facilité d'utilisation.
Au sein de ces distributions, les paquets sont répartis en trois grandes catégories principalement selon les licences mises en jeu : main, non-free et contrib. Les paquets main sont libres et représentent seuls la distribution officielle, non seulement sa base mais encore le gros des troupes. Les paquets non-free sont non-libres (pour simplifier un peu) alors que les paquets contrib sont libres mais dépendent de paquets non-libres. Autrement dit, quand vous utilisez une distribution Debian (stable, testing ou unstable), le plus souvent vous n'utiliserez soit que des paquets main soit des paquets des trois catégories. C'est votre choix.
Outre la classification en trois grandes catégories dont nous venons de parler, deux divisions binaires sont à considérer au sein des paquets Debian. La première concerne les paquets libres parmi lesquels il faut distinguer les paquets sources (les deb-src) qui sont à compiler, des paquets précompilés ou binaires (les .deb). Pour simplifier nous pouvons dire qu'à chaque source correspond un binaire ou parfois plusieurs binaires obtenus avec des options de compilation différentes. La seconde division concerne les paquets us et non-us ; ces derniers étant simplement ceux qui ne peuvent être exportés depuis un serveur situé aux USA.
On peut enfin aussi trouver d'autres classifications des paquets comme leur niveau de priorité ou la section à laquelle ils appartiennent. Les niveaux de priorité vont de required (requis) à extra, en passant par important, standard et optionnal (optionnel). Les paquets requis sont nécessaires au fonctionnement de votre distribution et ne doivent pas être supprimés, c'est le cas par exemple de dpkg. La suppression de paquets importants risquerait de compromettre la santé de votre système, comme c'est le cas de apt. La priorité des paquets va ainsi décroissant jusqu'à extra ; les choix faits dans les dernières catégories relevant plus de l'utilisateur que des nécessités du système. D'autre part, les différentes sections auxquelles les paquets appartiennent sont par exemple : admin, base, devel, misc, net... mais cette dernière distinction est moins utile pour notre propos.
Comme parler d'un paquet de façon isolée n'a pas toujours beaucoup de sens, nous pouvons de plus distinguer six degrés de liaison entre paquets : depends, recommends, suggests, conflicts, replaces et provides. Les paquets depends sont ce que l'on appelle généralement les dépendances d'un paquet et sont donc obligatoires ; les paquets recommends sont recommandés pour accompagner un autre paquet ; les paquets suggests sont suggérés en complément. Notez la gradation entre "suggérer" et "recommander". Des paquets conflits sont en conflit et ne peuvent donc pas être installés simultanément ; un paquet replaces remplace certains fichiers d'un autre paquet par les siens ; un paquet provides procure un autre paquet.
Signalons pour en terminer que le nom d'un paquet Debian suit toujours cette structure:
nom-du-logiciel_numéro-de-version_nom-de-l'architecture.deb
comme par exemple cmatrix_1.2a-2_i386.deb
dont nous allons bientôt parler plus en détails.
Si vous souhaitez réaliser les commandes décrites ici, créez un nouveau répertoire ($ mkdir reptmp
),
entrez dans ce répertoire ($ cd reptmp
), et placez-y l'archive cmatrix_1.2a-2_i386.deb
comme décrit ci-dessous. Vous pourrez à la fin tout effacer en supprimant simplement le répertoire ($ rm -rf reptmp
).
Comme indiqué, faites le tout en tant que simple utilisateur.
Nous allons maintenant explorer un paquet debian, cmatrix_1.2a-2_i386.deb
,
à l'aide d'outils standards et donc disponibles sur toutes les distributions. Ceci nous permettra de
mieux comprendre ensuite le fonctionnement des outils de gestion des paquets tels que apt et dpkg.
Donc, si vous le souhaitez, vous pouvez télécharger
cmatrix_1.2a-2_i386.deb
(sous Debian apt-get install -d cmatrix
le placera en /var/cache/apt/archives/
sans l'installer) et utiliser les commandes proposées ci-dessous quelle que soit votre distribution.
Un paquet debian est une archive ar (et non tar), c'est donc avec cette commande que nous allons tout d'abord en afficher le contenu.
$ ar -t cmatrix_1.2a-2_i386.deb
debian-binary
control.tar.gz
data.tar.gz
Nous voyons que ce paquet, comme tout paquet Debian, contient à ce premier niveau trois fichiers :
un fichier texte debian-binary
et deux archives : control.tar.gz
et data.tar.gz
.
Afin de poursuivre nous allons maintenant extraire le contenu de l'archive ar.
$ ar -xv cmatrix_1.2a-2_i386.deb
x - debian-binary
x - control.tar.gz
x - data.tar.gz
Ceci fait nous pouvons facilement connaître le contenu de chacun de ces trois fichiers.
Un $ cat debian-binary
nous renvoie seulement 2.0
.
Ceci correspond à la version du format de fichier .deb utilisée. A ma connaissance seul ce format 2.0
est actuellement en cours. Examinons maintenant le contenu de l'archive data.tar.gz
.
$ tar -ztf data.tar.gz
./
./usr/
./usr/share/
./usr/share/doc/
./usr/share/doc/cmatrix/
./usr/share/doc/cmatrix/README
./usr/share/doc/cmatrix/TODO
./usr/share/doc/cmatrix/copyright
./usr/share/doc/cmatrix/changelog.gz
./usr/share/doc/cmatrix/changelog.Debian.gz
./usr/share/man/
./usr/share/man/man1/
./usr/share/man/man1/cmatrix.1.gz
./usr/share/consolefonts/
./usr/share/consolefonts/matrix.fnt
./usr/share/consolefonts/matrix.psf.gz
./usr/lib/
./usr/lib/menu/
./usr/lib/menu/cmatrix
./usr/bin/
./usr/bin/cmatrix
Comme son nom l'indique cette archive contient les données, autrement dit les fichiers
qui seront installés sur votre disque. Nous retrouvons ici sans peine de la documentation, une page man,
des fontes, une entrée pour le menu Debian et enfin l'exécutable cmatrix. Si vous le souhaitez
vous pouvez tester dès lors cet exécutable sans réellement l'installer. Pour cela entrez :
$ tar -zxvf data.tar.gz ./usr/bin/cmatrix
Un répertoire usr/bin/
contenant le fichier cmatrix
a été créé dans le répertoire courant.
Sans changer de répertoire, entrez : $ usr/bin/cmatrix
La Matrice devrait
s'afficher sur votre (x)terminal, appuyez sur Q pour quitter. Mais peut-être cela n'a-t-il pas fonctionné ?
Un problème de dépendances ? Pour le savoir nous pourrions utiliser la commande
ldd
mais nous allons plutôt explorer le contenu de l'archive control.tar.gz
dont nous pouvons supposer qu'elle contient des informations permettant le contrôle
de l'installation ou de la désinstallation du paquet.
$ tar -ztf control.tar.gz
./
./postinst
./postrm
./md5sums
./control
Cette archive ne contient que quatre fichiers : postinst, postrm, md5sum
et
control
. Le fichier postinst
est un script bash de post-installation,
c'est-à-dire effectué en fin d'installation, après que l'archive data.tar.gz
ait été désarchivée. Le fichier postrm
est aussi un script bash mais de
post-déinstallation, c'est-à-dire effectué en fin de désinstallation, sans doute après que
les fichiers de data aient été supprimés. Bien qu'ils ne figurent pas ici, on peut aussi trouver
dans une archive de contrôle un script preinst
et un script prerm
dont je vous laisse deviner l'utilisation. Pour ce qui est des deux autres fichiers présents ici,
md5sums
contient les sommes de contrôle md5 nécessaires pour la vérification
de l'intégrité des fichiers du paquet et control
contient de précieuses informations
sur le paquet. Extrayons puis affichons le contenu de ce dernier fichier.
$ tar -zxvf control.tar.gz ./control
$ cat control
Package: cmatrix
Version: 1.2a-2
Section: misc
Priority: optional
Architecture: i386
Depends: libc6 (>= 2.3.2.ds1-4), libncurses5 (>= 5.4-1)
Recommends: console-tools
Suggests: cmatrix-xfont
Installed-Size: 108
Maintainer: Edward Betts "edward@debian.org"
Description: Console Matrix simulates the display from "The Matrix"
It is based on the screensaver from the movie's website. It works with
terminal settings up to 132x300 and can scroll lines all at the same rate
Outre diverses informations (section misc ou divers, priorité optionnelle) nous trouvons
une ligne Depends qui nous permet de répondre à la question que nous nous posions précédemment :
libc6 (>= 2.3.2.ds1-4)
et libncurses5 (>= 5.4-1)
constituent les
dépendances de notre paquet. De plus il est recommandé d'installer le paquet
console-tools
; le paquet cmatrix-xfont
étant lui simplement suggéré.
Voilà nous avons aperçu toutes ces notions dans la partie Debian : distributions et paquets ;
nous n'en dirons pas plus sur le sujet pour l'instant, mais nous nous réfèrerons par la suite à
tout ce que nous venons de découvrir ainsi.
Apt et dpkg sont les deux principaux outils de gestion des paquets sous Debian en ligne de commande.
Les mots apt, dpkg et gestion sont ici à prendre au sens large. Ce que nous entendons par gestion concerne
aussi bien l'installation, la désinstallation que les multiples informations que l'on peut recueillir sur les
paquets ou encore les questions de dépendances, conflits, mises à jour... Ces différents thèmes nous
conduirons à parler de apt et de sa famille comme apt-get, apt-cache, apt-file
mais aussi de la famille de dpkg comme dpkg-deb
ou dpkg-reconfigure
.
De façon générale cette partie étant structurée par thèmes (et non par types de commandes) nous
donnerons ici la préférence à apt qui est plus abouti que dpkg, n'utilisant ce dernier que lorsqu'il
s'avère nécessaire ou apporte quelque chose de plus. Enfin si vous êtes allergiques aux lignes de
commandes, la partie suivante Interfaces textes et graphiques vous propose
une brève présentation de quelques programmes.
Une façon simple et courante de faire connaissance avec une distribution consiste à
télécharger l'iso de son premier CD d'installation, puis à essayer de l'installer. Si vous procédez ainsi avec
Debian et sa version stable, à la fin de l'installation vous devriez posséder un fichier
/etc/apt/sources.list
ressemblant à ceci (mes CDs datent un peu mais cela ne
change rien à l'affaire, je pense. Notez que bien qu'il s'agisse d'une version stable Woody
le mot unstable figure dans le fichier... je ne sais pourquoi).
$ cat /etc/apt/sources.list
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-1 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb http://security.debian.org/ stable/updates main
Ce fichier sources.list
, comme son nom l'indique, sert à préciser à apt
où il peut aller chercher les listes de paquets et paquets pour les installations et les mises à
jour par exemple. C'est un fichier fondamental pour la configuration de apt. Ici il ne comporte
pour l'instant que deux lignes, la première correspondant au premier CD, la seconde aux mises
à jour de sécurité puisque nous sommes en stable. Ces mises à jour nécessitent bien sûr une
connexion internet (si nous n'en avions pas cette ligne serait commentée, avec un # au début),
mais supposons pour l'instant que vous possédiez une connexion rtc et deux autres CDs d'installation
et que donc vous souhaitiez les ajouter. Pour cela entrez simplement : # apt-cdrom add
Apt s'occupe de tout, démonte le lecteur CD, l'ouvre, vous demande d'insérer le CD, le monte,
fait sa petite cuisine, démonte puis vous rend la main. Si cela ne fonctionnait pas plusieurs causes
sont possibles, d'un mauvais point de montage du répertoire /cdrom/
dans votre
fichier /etc/fstab
à un CD défectueux... Je ne peux savoir. Admettons que tout
fonctionne et que vous procédiez ainsi pour vos deux autres CDs, votre fichier sources.list
ressemble maintenant à ceci.
$ cat /etc/apt/sources.list
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-3 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-2 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-1 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb http://security.debian.org/ stable/updates main
Voilà. Si on peut envisager d'utiliser une version stable avec un jeu de CDs et une connexion rtc,
l'utilisation d'une version testing ou unstable est difficilement envisageable sans une connexion haut débit.
Voyons donc maintenant comment indiquer à apt d'aller chercher listes et paquets sur les serveurs
Debian. S'il n'est guère possible d'ajouter une source CD en éditant directement le fichier sources.list
,
c'est au contraire en éditant celui-ci que l'on ajoute habituellement une source réseau.
Voici le sources.list
du PC où est rédigé cet article.
$ cat /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian/ testing main
deb http://non-us.debian.org/debian-non-US testing/non-US main
deb-src http://ftp.fr.debian.org/debian/ testing main
deb-src http://non-us.debian.org/debian-non-US testing/non-US main
Ce fichier sources.list
, assez minimal, ne comporte que quatre lignes.
Les deux dernières (deb-src) concernent les paquets sources Debian, nous verrons cela dans la partie
Compiler un paquet deb-src. Les deux premières concernent les binaires
(.deb) et leur lecture permet de comprendre aisément que ce PC utilise les paquets main "us"
(us n'est pas spécifié, première ligne) et non-us (seconde ligne) de la distribution testing. Si
tous les paquets étaient utilisés "contrib" et "non-free" figureraient après "main" ; si une autre
distribution était utilisée (stable ou unstable) ceci figurerait à la place de "testing". Donc, pour
un dernier exemple, le fichier sources.list
internet correspondant (à peu près, les
paquets non-free en plus... disons qui le remplacerait avantageusement) au fichier CD que nous
avions précédemment pour une stable serait celui-ci.
$ cat /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian/ stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main
Il est important de penser à mettre à jour les listes des paquets à chaque fois que l'on modifie
le fichier sources.list
. De plus si on utilise des sources internet, il faut aussi penser
à les actualiser à chaque fois que l'on souhaite installer de nouveaux paquets, mettre à jour ses
paquets ou même rechercher des informations. Ceci se fait très simplement en une ligne de commande :
# apt-get update
Que se passe-t-il alors ? Apt va récupérer sur les serveurs les fichiers packages.gz
décrivant les paquets disponibles. Les informations sont alors entreposées dans les fichiers du répertoire
/var/lib/apt/lists/
de votre distribution. Nous reparlerons de ces fichiers un peu plus loin.
Un autre répertoire à connaître est /var/cache/apt/archives/
; c'est en effet dans
celui-ci que apt entrepose tous les fichiers binaires qu'il récupère sur les serveurs lors d'une
installation ou d'une mise à jour. Notons accessoirement que l'on trouve aussi dans ce répertoire
un répertoire partial/
contenant, au cas où, les paquets qui n'ont pu être que
partiellement téléchargés. Rappelons au passage que pour connaître la taille occupée
par ces archives, il vous suffit d'entrer : $ du -sh /var/cache/apt/archives/
Faut-il maintenant préciser que, lors d'installations réseaux puis de mises à jour,
la taille du répertoire archives/
a tendance à fortement augmenter ?
Heureusement ce répertoire est assez simple à gérer. La commande # apt-get clean
en supprime tout simplement le contenu (sauf le fichier lock) ; mieux, si vous avez de la place,
la commande # apt-get autoclean
n'en supprime que les paquets devenus obsolètes.
D'autre part, vous pouvez fort bien effacer "à la main" certains paquets (et donc en conserver d'autres)...
ceci ne gènera nullement le bon fonctionnement de apt.
Une petite question pour clore cette partie. Nous avons vu que si la distribution unstable
s'appelle toujours Sid, les autres distributions portent un nom changeant. A ce jour, où la testing
se nomme Sarge, cela modifierait-il quelque chose si au lieu de "testing" il était indiqué "sarge"
dans le fichier sources.list
? Non pour ce qui est de ce jour, mais oui pour ce
qui est de l'avenir. En effet le jour où la Sarge passera en stable, si sarge était écrit dans ce fichier
nous passerions alors en stable ; alors que si testing y est écrit, nous resterons en testing
(et donc passerons en ?).
Il y aurait sûrement encore beaucoup à dire concernant la configuration et la gestion
de apt comme parler du fichier /etc/apt/apt.conf
ou du répertoire
/etc/apt/apt.conf.d/
permettant de modifier le comportement par défaut de
apt ; de l'utilisation d'une distributions mixte (testing / unstable par exemple) ou encore d'un proxy...
mais n'étant ni omniscient ni omnipotent je m'en tiendrai là. Une dernière chose tout de même,
si vous ne parvenez pas à configurer apt manuellement, essayez donc la commande # apt-setup
qui permet de nombreuses configurations et dont voici une petite copie du premier écran.
Afin d'éviter d'inutiles répétitions au sein de cette page, je ne donnerai parfois dans cette partie que des explications théoriques et vous renverrai le cas échéant aux autres parties pour les exemples pratiques.
Nous avons vu dans la partie Exploration d'un paquet .deb comment
nous pouvions à l'aide de commandes standards interroger un paquet téléchargé. Il existe bien sûr
des commandes apt et dpkg permettant de faire de même plus facilement ; il existe aussi des
commandes permettant de faire bien plus. Si vous souhaitez pouvoir effectuer certaines
des interrogations présentées ci-dessous sur des paquets non-installés et non-téléchargés,
mais figurant dans le sources.list, vous devrez tout d'abord installer apt-file
puis le mettre à jour. Ceci se fait en deux lignes de commandes.
# apt-get install apt-file
# apt-file update
Maintenant que tout est prêt, voici un petit jeu de questions - réponses.
Quels sont les paquets installés et bien configurés ?
La commande dpkg -l
permet de lister toutes sortes de paquets comme ceux
non-installés, installés ou encore ceux désinstallés sous certaines conditions. Nous l'utilisons
ci-desous avec différents filtres grep
afin de répondre à différentes questions.
Les lignes correspondant aux paquets bien installés et configurés commencent par "ii", pour les
lister nous entrons alors : $ dpkg -l | grep ^ii | less
La liste de ces commandes installées rique d'être assez longue. Aussi si vous voulez
simplement connaître le nombre de paquets ainsi listés, utilisez : $ dpkg -l | grep ^ii | wc -l
Quels sont les paquets "autres" (que les précédents) ?
Pour répondre à cette question, il nous suffit de demander à grep
d'inverser le filtre
utilisé précédemment. Nous obtenons ainsi toutes les lignes ne commençant pas par "ii" sans toutefois
inclure les paquets qui n'ont "jamais été installés" et dont, comme nous le verrons plus bas, les lignes
commencent par "un" (copie d'écran incomplète).
$ dpkg -l | grep -v ^ii
rc emacsen-common 1.4.15 Common facilities for all emacsen.
hi kernel-headers 2.4.27-2 Header files related to Linux kernel version
hi kernel-headers 2.4.27-2 Linux 2.4.27 kernel headers for PPro/Celeron
hi alsa-modules-2 1.0.6a+5 ALSA driver modules
hi kernel-image-2 2.4.27-2 Linux kernel image for version 2.4.27 on PPr
hi kernel-pcmcia- 2.4.27-2 Mainstream PCMCIA modules 2.4.27 on PPro/Cel
rc xemacs21-mule 21.4.16-1 Editor and kitchen sink -- Mule binary
rc xemacs21-suppo 21.4.16-1 Editor and kitchen sink -- architecture inde
Certaines lignes, ici relatives au noyau (kernel), commencent par "hi" et concernent des
paquets installés puis marqués comme à conserver (voir Mettre à jour sa distribution).
D'autres lignes, ici relatives à xemacs, commencent par "rc", il s'agit de paquets qui ont été
supprimés mais restent configurés (voir Désinstaller des paquets).
Lors de vos essais, si vous procédez à d'autres types d'interrogations avec dpkg -l
,
peut-être rencontrerez-vous aussi de très nombreuses lignes commençant par "un" ; il s'agit de paquets
non-installés non-configurés. Si vous souhaitez absolument à en voir la liste, puis à les compter,
entrez ces deux commandes : $ dpkg -l "*" | grep ^un | more
puis
$ dpkg -l "*" | grep ^un | wc -l
Il est possible de faire bien d'autres interrogations avec dpkg -l
mais
celles-ci ne nous apporteraient que peu par rapport à ce qui suit. Une astuce tout de même.
Par défaut dpkg -l
sort ses résultats sur 80 colonnes, il s'en suit que ceux-ci
sont souvent tronqués (noms des paquets, définitions). Pour remédier à cela il suffit de faire précéder
cette commande par la définition de variable COLUMNS=132. Par exemple :
$ COLUMNS=132 dpkg -l | grep -v ^ii
Quel paquet pour faire ceci ou cela ?
Nous sommes souvent bien prosaïques. Nous souhaitons par exemple installer un économiseur
d'écran, nous nous demandons alors desquels nous pouvons facilement disposer pour
faire notre choix et peu importe le reste. La commande apt-cache
permet de répondre assez facilement (mais pas toujours parfaitement) à des questions de ce type,
il suffit pour cela d'employer l'option search
et quelques options et/ou mots clés.
Donc par exemple (copie d'écran incomplète):
$ apt-cache search screensaver
cmatrix - Console Matrix simulates the display from "The Matrix"
electricsheep - Screensaver showing collective dream of sleeping computers
kscreensaver - additional screen savers released with KDE
kscreensaver-xsavers - KDE hooks for standard xscreensavers
ktux - Tux screensaver for KDE
lockvc - Screensaver to lock your Linux console(s)
xscreensaver - Automatic screensaver for X
xscreensaver-gl - GL(Mesa) screenhacks for xscreensaver
Apt est allé chercher le mot clé proposé dans les noms des paquets ainsi que dans
leurs descriptions dans les fichiers du répertoire /var/lib/apt/lists/
Ceci donnera parfois bien plus de réponses que vous ne le souhaiteriez. Dans ce cas vous
pouvez affiner la recherche en entrant plusieurs mots clés (ou en les modifiants).
Ainsi précisons que nous souhaitons un économiseur pour nos consoles:
$ apt-cache search screensaver console
cmatrix - Console Matrix simulates the display from "The Matrix"
lockvc - Screensaver to lock your Linux console(s)
Maintenant que nous n'avons que peu de réponses, nous pouvons demander à apt
d'afficher en même temps les informations sur les paquets sélectionnés en utilisant l'option "-f" :
$ apt-cache search -f screensaver console
Ceci nous permet de comparer facilement
les différents candidats... Nous parlerons plus amplement de ces informations un peu plus bas dans :
Qui est ce paquet ? Enfin notons une autre possibilité pour mieux cerner les réponses obtenues :
celle-ci consiste à demander à apt de ne chercher que dans les noms des paquets. Cette méthode
suppose cependant soit que le nom du paquet ait un rapport direct avec la fonction que nous
recherchons, soit que nous connaissions déjà partiellement le nom d'un paquet recherché correspondant.
Comparez par exemple les différences des résultats suivants (sorties d'écran incomplètes).
$ apt-cache search --names-only screensaver
kscreensaver - additional screen savers released with KDE
kscreensaver-xsavers - KDE hooks for standard xscreensavers
xscreensaver - Automatic screensaver for X
xscreensaver-gl - GL(Mesa) screenhacks for xscreensaver
$ apt-cache search --names-only matrix
cmatrix - Console Matrix simulates the display from "The Matrix"
cmatrix-xfont - X11 font for Console Matrix
wmmatrix - View The Matrix in a Window Maker dock application
La méthode de recherche est loin d'être performante à 100%. Souvent il vous faudra tâtonner avec les mots clés et options avant de trouver ce que vous cherchiez... Vous découvrirez aussi sans doute ainsi des paquets dont vous ne soupçonniez pas l'existence.
Dans quel paquet se trouve ce fichier ?
Deux cas de figure sont ici possibles. Soit vous possédez un fichier et vous vous demandez
de quel paquet il provient, soit vous aimeriez installer un fichier mais vous ne savez pas dans
quel paquet le trouver. Nous venons par exemple d'utiliser la commande apt-cache
,
mais de quel paquet vient-elle ? Pour le savoir il suffit d'entrer:
$ dpkg -S /usr/bin/apt-cache
apt: /usr/bin/apt-cache
Celle-ci provient du paquet apt, tout simplement (alors que la commande apt-file
provient du paquet apt-file et doit donc être installée en plus). Nous avons ici utilisé le chemin
complet de la commande afin de bien préciser quel fichier nous intéressait. En moins précis vous
pouvez essayer : $ dpkg -S apt-cache
afin de comparer. Apt-file
permet de faire ce même type de recherches sur des paquets qui n'ont pas été installés mais sont
accessibles via le fichier sources.list
. Ainsi vous savez que, pour compiler un
paquet source Debian, la commande dpkg-buildpackage
est nécessaire, mais
vous ne l'avez pas. Pour savoir dans quel paquet elle figure, entrez:
$ apt-file search dpkg-buildpackage
dpkg-cross: usr/bin/dpkg-buildpackage
dpkg-dev: usr/bin/dpkg-buildpackage
dpkg-dev: usr/share/man/man1/dpkg-buildpackage.1.gz
La commande recherchée figure dans deux paquets : dpkg-cross
et
dpkg-dev
. En examinant ces deux paquets vous découvririez que dpkg-croos
,
comme son nom le suggère, est uniquement nécessaire pour effectuer des compilations
croisées et que dpkg-deb
, qui fait d'ailleurs partie de ses dépendances,
vous suffira tant que vous ne souhaitez que compiler pour votre architecture. Mais peut-être
ne savez-vous pas comment recueillir ces informations ? Justement nous allions en parler.
Qui est ce paquet ?
Pour répondre à cette question, nous allons considérer trois possibilités : le paquet est installé ;
le paquet n'est ni téléchargé ni installé mais figure dans le sources.list
et le paquet
a été récupéré quelque part (éventuellement hors du sources.list, CD, serveur...) et n'est pas
encore installé. Commençons par ce dernier cas car il est le plus proche de ce que nous avons
vu dans la partie Exploration d'un paquet .deb. Cette fois cependant
nous n'utiliserons pas des outils standards, mais les outils Debian et ce sera bien plus simple
et rapide. Pour obtenir les informations générales sur le paquet il suffit d'utiliser
la commande dpkg-deb -I nom_paquet.deb
. Pour reprendre notre exemple:
$ dpkg-deb -I cmatrix_1.2a-2_i386.deb
nouveau paquet Debian, version 2.0.
taille 16156 octets : archive de contrôle= 1006 octets.
471 octets, 13 lignes control
645 octets, 10 lignes md5sums
173 octets, 5 lignes * postinst #!/bin/sh
160 octets, 5 lignes * postrm #!/bin/sh
Package: cmatrix
Version: 1.2a-2
Section: misc
Priority: optional
Architecture: i386
Depends: libc6 (>= 2.3.2.ds1-4), libncurses5 (>= 5.4-1)
Recommends: console-tools
Suggests: cmatrix-xfont
Installed-Size: 108
Maintainer: Edward Betts "edward@debian.org"
Description: Console Matrix simulates the display from "The Matrix"
It is based on the screensaver from the movie's website. It works with
terminal settings up to 132x300 and can scroll lines all at the same rate
Comme nous le voyons, d'après ce que nous avons appris, cette commande affiche le contenu du fichier
debian-binary
, les noms des fichiers présents dans l'archive control.tar.gz
ainsi que le contenu du fichier control
de cette archive. Affichons maintenant
les données contenues dans le paquet à l'aide de la commande dpkg-deb -c nom_paquet.deb
Pour reprendre notre exemple:
$ dpkg-deb -c cmatrix_1.2a-2_i386.deb
drwxr-xr-x root/root 0 2005-01-05 20:21:25 ./
drwxr-xr-x root/root 0 2005-01-05 20:21:26 ./usr/
drwxr-xr-x root/root 0 2005-01-05 20:21:26 ./usr/share/
drwxr-xr-x root/root 0 2005-01-05 20:21:24 ./usr/share/doc/
drwxr-xr-x root/root 0 2005-01-05 20:21:26 ./usr/share/doc/cmatrix/
-rw-r--r-- root/root 2066 2000-04-04 03:29:58 ./usr/share/doc/cmatrix/README
-rw-r--r-- root/root 258 1999-05-13 17:12:03 ./usr/share/doc/cmatrix/TODO
-rw-r--r-- root/root 415 2005-01-05 16:17:03 ./usr/share/doc/cmatrix/copyright
-rw-r--r-- root/root 846 2002-04-01 04:01:31 ./usr/share/doc/cmatrix/changelog.gz
-rw-r--r-- root/root 862 2005-01-05 16:17:03 ./usr/share/doc/cmatrix/changelog.Debian.gz
drwxr-xr-x root/root 0 2005-01-05 20:21:20 ./usr/share/man/
drwxr-xr-x root/root 0 2005-01-05 20:21:26 ./usr/share/man/man1/
-rw-r--r-- root/root 918 2005-01-05 20:21:20 ./usr/share/man/man1/cmatrix.1.gz
drwxr-xr-x root/root 0 2005-01-05 20:21:26 ./usr/share/consolefonts/
-rw-r--r-- root/root 4096 1999-05-13 16:55:30 ./usr/share/consolefonts/matrix.fnt
-rw-r--r-- root/root 1738 1999-05-13 17:49:51 ./usr/share/consolefonts/matrix.psf.gz
drwxr-xr-x root/root 0 2005-01-05 20:21:25 ./usr/lib/
drwxr-xr-x root/root 0 2005-01-05 20:21:25 ./usr/lib/menu/
-rw-r--r-- root/root 401 2005-01-05 16:17:03 ./usr/lib/menu/cmatrix
drwxr-xr-x root/root 0 2005-01-05 20:21:26 ./usr/bin/
-rwxr-xr-x root/root 12920 2005-01-05 20:21:26 ./usr/bin/cmatrix
Cette fois c'est le contenu de l'archive data.tar.gz
qui nous est présenté
(comme avec tar -ztf
et l'option "-v" que nous n'avions pas ajoutée lors
de notre exploration standard). Notez que si vous préférez vous pouvez entrer
dpkg -I nom_paquet.deb
et dpkg -c nom_paquet.deb
;
dpkg
appellera alors pour vous dpkg-deb
. Si ce dernier
utilise directement les informations contenues dans le paquet pour afficher ses résultats,
ceci n'est pas le cas des commandes dpkg et apt que nous allons voir maintenant qui
elles utilisent des fichiers de données placés respectivement en /var/lib/dpkg/
et /var/lib/apt/
.
Si vous souhaitez explorer un paquet qui est installé, que vous possédiez ou non son
archive, vous pouvez utiliser la commande dpkg -p nom_paquet
pour afficher
ses informations et la commande dpkg -L nom_paquet
pour afficher ses fichiers.
Par exemple donc : $ dpkg -p apt
puis $ dpkg -L apt | more
Enfin si le paquet n'est ni téléchargé, ni installé mais figure dans le sources.list
,
vous pouvez utiliser la commande apt-cache show nom_paquet
pour afficher
ses informations et la commande apt-file list nom_paquet
pour afficher ses fichiers.
Par exemple : $ apt-cache show dpkg-dev dpkg-cross | less
puis $ apt-file list dpkg-dev
Je ne fais pas de copies des sorties d'écran pour toutes ces dernières commandes et
vous laisse le soin de les examiner par vous-mêmes si vous le souhaitez. Enfin pour observer
plus particulièrement le jeu des dépendances d'un paquet la commande apt-cache
depends nom_paquet
s'avère une aide précieuse. Par exemple:
$ apt-cache depends apt
apt
Depends: libc6
Depends: libgcc1
Depends: libstdc++5
|Suggests: aptitude
|Suggests: synaptic
|Suggests: gnome-apt
Suggests: wajig
Suggests: dpkg-dev
Suggests: apt-doc
Replaces: libapt-pkg-doc
Replaces: libapt-pkg-dev
Pour ce qui est de la compréhension des lignes précédentes et des termes Depends, Suggests ou Replaces, merci de vous référer à la partie Debian : distributions et paquets.
La commande apt-get install nom(s)_paquet(s)
est-il bien nécessaire
de la présenter ? Nous la retrouvons partout et l'avons déjà utilisée dans cette page ;
c'est elle qui permet d'installer un paquet à partir du fichier sources.list
.
Cette commande gère les dépendances et les conflits. Si seul le paquet demandé doit être
installé elle procèdera à son installation sans rien vous demander, par contre si d'autres
paquets doivent être installés (dépendances) ou supprimés (conflits) elle vous demandera
confirmation avant d'opérer.
Il est possible d'utiliser des caractères comme ? ou * et des expressions
plus complexes pour désigner des groupes de paquets. Soyez tout de même prudents,
l'option "-s" vous permet par exemple de simuler ce qui devrait être réalisé. Deux autres
options sont aussi bien utiles. L'option "-y" répond oui pour vous à toutes les questions
triviales mais ne répond pas aux questions qui pourraient mettre la santé de votre système en jeu.
L'option "-d" permet dans le cas d'une installation via internet de seulement télécharger les
paquets qui sont alors mis en attente en /var/cache/apt/archives/
pour une installation ultérieure. Voyons à titre illustratif une simulation de l'installation
du serveur web apache.
# apt-get install -s apache
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
apache-common apache-utils mime-support
Suggested packages:
apache-doc apache-ssl apache-perl
The following NEW packages will be installed:
apache apache-common apache-utils mime-support
0 upgraded, 4 newly installed, 0 to remove and 4 not upgraded.
Inst mime-support (3.28-1 Debian:testing)
Inst apache-utils (1.3.33-2 Debian:testing)
Inst apache-common (1.3.33-2 Debian:testing)
Inst apache (1.3.33-2 Debian:testing)
Conf mime-support (3.28-1 Debian:testing)
Conf apache-utils (1.3.33-2 Debian:testing)
Conf apache-common (1.3.33-2 Debian:testing)
Conf apache (1.3.33-2 Debian:testing)
Quatre paquets seront installés puis configurés, le paquet demandé, apache, et trois dépendances : apache-common, apache-utils et mime-support. Notons également que trois suggestions d'installation sont faites : apache-doc, apache-ssl et apache-perl. Autrement dit le mainteneur de ce paquet pense que ces paquets pourraient bien vous être utiles mais, comme ils ne sont pas absolument nécessaires, il vous les suggère simplement. Enfin quatre paquets apparaissent comme non mis à jour... mais ceci n'a rien à voir avec l'opération que nous venons de demander.
Si vous souhaitez installer un paquet ne provenant pas de votre sources.list
mais de "je ne sais où" (un CD, un site... ) mieux vaut d'abord l'inspecter soigneusement.
Ensuite vous pourrez utiliser la commande dpkg
pour l'installer :
# dpkg -i nom_paquet.deb
Lors de leur installation certains paquets vous posent des questions concernant leur
configuration et utilisent pour cela debconf
. Si vous regrettez les choix faits
à ce moment, il est toujours possible de revenir à ces questions de configuration en utilisant
dpkg-reconfigure
(sinon vous pouvez aussi toujours procéder à la main...).
Debconf propose plusieurs interfaces possibles (dialog, readline, gnome, kde, editor...) mais
aussi quatre niveaux de questions (critical, high, medium et low). Le niveau critical ne vous
questionnera que si l'équilibre de votre système est en danger alors qu'à l'opposé le niveau low
vous interrogera sur tout. Je pense qu'utiliser ce dernier niveau est une bonne chose. Les questions
posées ne sont pas si nombreuses et, au pire, si comme moi vous ne savez que répondre à
quelques questions, vous choisirez simplement les réponses proposées par défaut... ceci aura
au moins l'avantage de vous montrer quelles questions il serait bon que vous vous posiez.
Donc si vous le souhaitez, reconfigurez debconf : # dpkg-reconfigure debconf
Choisissez l'interface qui vous convient le mieux (je choisis dialog), lisez l'écran d'information
puis choisissez le niveau low comme ci-dessus. Voilà c'est déjà fini. N'oubliez pas que vous
pouvez utiliser ainsi dpkg-reconfigure
pour tous les paquets possédant
une telle procédure d'installation, un exemple fréquent étant :
# dpkg-reconfigure xserver-xfree86
A peine une distribution installée qu'il faut bien souvent penser à la mettre à jour, bien
qu'en fait avoir "la dernière version possible" de tel ou tel programme ne soit pas vraiment
un objectif majeur en soi. Sous Debian avec apt ces mises à jour se font avec une facilité
déconcertante. Bien sûr rappellons tout de même que la première chose à faire est, comme
avant une installation, d'actualiser la liste des paquets (# apt-get update
).
Ceci fait une petite commande se charge de presque tout : # apt-get upgrade
Avec une version stable les mises à jour portent sur des corrections de bugs et de trous de sécurité des paquets et sont, si importantes, peu nombreuses. Avec les versions testing et unstables se sont presque quotidiennement de nouvelles versions des paquets installés qui sont proposées : une connexion haut débit est requise. Avant de procéder à une mise à jour, il est possible, comme avant une installation, de procéder à une simulation en utilisant l'option "-s". Simulons donc une mise à jour.
# apt-get upgrade -s
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages have been kept back:
kernel-headers-2.4.27-1 kernel-headers-2.4.27-1-686 kernel-image-2.4.27-1-686 kernel-pcmcia-modules-2.4.27-1-686
The following packages will be upgraded:
pcmcia-cs
1 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
Inst pcmcia-cs [3.2.5-8] (3.2.5-9 Debian:testing)
Conf pcmcia-cs (3.2.5-9 Debian:testing)
Ici un seul paquet serait actualisé, pcmcia-cs (daemon pour les cartes pcmcia),
et quatre paquets qui pourraient être mis à jour seront conservés : kernel-headers-2.4.27-1,
kernel-headers-2.4.27-1-686, kernel-image-2.4.27-1-686 et kernel-pcmcia-modules-2.4.27-1-686.
Comme nous le voyons une mise à jour ne concerne donc pas toujours tous les paquets
qui pourraient l'être. Nous allons en parler dans quelques lignes. Avant de procéder,
la commande apt-show-versions -u
vous permet de visualiser simplement
quelles sont les versions des paquets qui sont ou pourraient être impliquées.
$ apt-show-versions -u
kernel-headers-2.4.27-1/testing upgradeable from 2.4.27-2 to 2.4.27-6
kernel-headers-2.4.27-1-686/testing upgradeable from 2.4.27-2 to 2.4.27-6
kernel-pcmcia-modules-2.4.27-1-686/testing upgradeable from 2.4.27-2 to 2.4.27-6
kernel-image-2.4.27-1-686/testing upgradeable from 2.4.27-2 to 2.4.27-6
pcmcia-cs/testing upgradeable from 3.2.5-8 to 3.2.5-9
Nous constatons que les changements de versions à effectuer sont vraiment mineurs.
Une fois la mise à jour réalisée avec # apt-get upgrade
, quatre paquets du
noyau ne seront toujours pas mis à jour, pourquoi ? Deux raisons sont possibles : soit ils
ont été marqués par nous-même "hold" c'est-à-dire à conserver ; soit leur mise à jour
demanderait la suppression (conflits) ou l'ajout (dépendances) de nouveaux paquets
(éventuellement les deux mais dans ce cas ce serait plutôt la première raison qui primerait).
En effet la commande apt-get upgrade
ne retranche ni n'ajoute d'elle-même
aucun paquet. Si ceci est nécessaire et que l'on veut procéder à la mise à jour, il faut
utiliser la commande apt-get dist-upgrade
. Essayons une simulation
(nous avons mis à jour entre temps le paquet pcmcia-cs ).
# apt-get dist-upgrade -s
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following packages have been kept back:
kernel-headers-2.4.27-1 kernel-headers-2.4.27-1-686
kernel-image-2.4.27-1-686 kernel-pcmcia-modules-2.4.27-1-686
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
Rien ne serait changé, les quatre paquets du noyau seraient conservés, ceci est dû
au fait qu'ils ont été marqués hold, à conserver ; peut-être vous souvenez-vous à ce propos
que ces paquets nous sont apparus comme "hi" dans S'informer sur les paquets
quand nous avons utilisé la commande dpkg -l | grep -v ^ii
Afin de pourvoir
être sûr de conserver ainsi certaines versions des paquets lors des mises à jour, voici
comment il faut procéder. La commande dpkg --get-selections
permet d'obtenir la liste
de sélection des paquets qui sont tous marqués install, à installer, par défaut. Nous allons tout d'abord
créer un fichier /etc/apt/selections
en redirigeant la sortie de cette commande :
# dpkg --get-selections > /etc/apt/selections
Vous devez maintenant éditer cette liste afin de remplacer les "install" des paquets que vous souhaitez conserver par des "hold". Vous pouvez utiliser l'éditeur nano qui est fort simple, mes lignes concernées ressemblent à ceci:
# nano /etc/apt/selections
...
kenolaba install
kernel-headers-2.4.27-1 hold
kernel-headers-2.4.27-1-686 hold
kernel-image-2.4.27-1-686 hold
kernel-image-2.6.8-1-686 install
kernel-pcmcia-modules-2.4.27-1-686 hold
...
Les modifications effectuées et le fichier sauvegardé, vous devez indiquer à dpkg
les nouvelles règles de sélection que vous venez de définir. Ceci se fait ainsi :
# dpkg --set-selections <p /etc/apt/selections
Comme nous en verrons un exemple dans la partie
Compiler un paquet deb-src, lorsque vous souhaitez juste
marquer un seul ou peu de paquets, vous pouvez aussi procéder directement
en ligne de commandes avec : echo "nom_paquet hold" | dpkg --set-selections
.
De même pour vérifier le statut d'un paquet de façon isolée, vous pouvez
utiliser la commande dpkg -s nom_paquet | head -n 4
Bien sûr si vous ne souhaitez plus conserver un paquet lors des mises à jour,
il suffit de procéder inversement en remplaçant hold par install. Si vous ne souhaitez
pas faire ainsi, une autre possibilité consiste à utiliser l'option --ignore-hold
soit avec upgrade
soit avec dist-upgrade
.
Ceci donne une ligne de commande de ce type : # apt-get dist-upgrade --ignore-hold
Pour conclure, notez que seuls les paquets que vous avez vous-mêmes désignés
comme à conserver doivent rester ainsi lorsque vous avez procédé à une mise à jour
complète de votre distribution à l'aide des commandes apt-get upgrade
et apt-get dist-upgrade
. Nous retrouverons par ailleurs cette
dernière commande, mais pour une autre utilisation, dans
Changer de distribution.
La commande apt-get remove nom(s)_paquet(s)
qui permet de
supprimer des paquets s'utilise de la même façon que la commande
apt-get install nom(s)_paquet(s)
qui, nous l'avons vu, permet de les installer.
Certaines des options que nous avons alors rencontrées sont toujours d'actualité
comme "-s" pour une simulation, ? ou * ou autres pour désigner
des groupes de paquets, "-y" pour répondre oui aux questions triviales comme
les demandes de confirmation de suppression sur des paquets non vitaux. Nul
n'est toujours bien inspiré, aussi simulons une intention de désinstallation de apt.
# apt-get remove -s apt
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
apt apt-file apt-show-versions apt-utils aptitude base-config
libapt-pkg-perl tasksel
WARNING: The following essential packages will be removed
This should NOT be done unless you know exactly what you are doing!
apt
0 upgraded, 0 newly installed, 8 to remove and 4 not upgraded.
Remv base-config (2.53.5 Debian:testing)
Remv apt-show-versions (0.07 Debian:testing)
Remv apt-file (2.0.3-7 Debian:testing)
Remv libapt-pkg-perl (0.1.13 Debian:testing)
Remv tasksel (2.15 Debian:testing)
Remv aptitude (0.2.15.8-1 Debian:testing)
Remv apt-utils (0.5.27 Debian:testing)
Remv apt (0.5.27 Debian:testing)
La première chose à voir est le WARNING qui nous avertit clairement
que nous risquons là de faire une grosse bêtise et donc de ne procéder que si nous sommes
bien sûr de nous. En effet nous simulons ici la désinstallation d'un paquet dont le niveau
de priorité est important. Certes nous ne procéderons pas à la réelle désinstallation de apt.
Nous voyons d'autre part qu'outre le paquet demandé, apt, sept autres paquets seraient
aussi supprimés car leur bon fonctionnement dépend de celui-ci. Ainsi de la même façon que
apt-get install
gère les dépendances, nous pouvons dire que
apt-get remove
gère les dépendances inverses.
Par défaut apt-get remove
supprime les données des paquets
mais pas leurs fichiers de configuration (quand ils existent), c'est pour cela que
des paquets installés puis supprimés peuvent apparaître comme désinstallés mais
configurés. Ainsi dans S'informer sur les paquets avons
nous vu certains paquets xemacs apparaître comme "rc" en utilisant la commande
dpkg -l | grep -v ^ii
Si vous souhaitez également supprimer les fichiers de configuration liés à un
paquet, il suffit d'ajouter l'option --purge
ce qui donne :
apt-get remove --purge nom_paquet
. Mais même en procédant ainsi,
après un certain nombre d'installations suivies de désinstallations, votre système
comportera des fichiers, généralement des bibliothèques, devenus inutiles mais
toujours là. Pour les trouver afin de les supprimer utilisez la commande :
$ deborphan
. Entrée telle quelle celle-ci ne recherche que dans
les bibliothèques et affiche la liste des orphelines. Voici une petite commande bien utile
pour faire automatiquement le ménage parmi celles-ci (notez l'utilisation de l'option "-y") :
# deborphan | xargs apt-get remove --purge -y
Il ne s'agit ici que de changer de distribution ou version Debian. La première chose à savoir est que s'il est considéré comme facile d'upgrader, il est aussi considéré comme difficile, voir impossible, de downgrader. Par upgrader il faut comprendre passer de stable en testing ou unstable, ou bien de testing en unstable ; par downgrader il faut comprendre une tentative inverse. Ce n'est certes pas dans le cadre d'une utilisation normale le genre d'opérations que l'on effectue au quotidien... Je me contenterai donc ici de vous parler brièvement de mon expérience personnelle sans chercher à en tirer de quelconques généralités ou vérités, en espérant simplement qu'elle pourra vous être utile. Je ne parlerai d'ailleurs que d'upgrade, n'ayant jamais essayé de downgrader.
Maladresse, PC trop chatouilleux, malchance... les deux fois où j'ai essayé d'installer directement une distribution testing ou unstable, ceci s'est soldé par un échec. La première fois je n'eus pas de clavier dès le premier écran d'installation, la seconde fois j'eus un beau kernel panic dès le premier boot. Par contre à chaque fois que j'ai installé d'abord une base de distribution stable puis l'ai ensuite upgradée soit en testing soit en unstable, tout s'est passé à merveille.
Quand je souhaite être assuré du résultat, je procède donc maintenant toujours ainsi :
j'installe une base texte minimale avec le premier CD de la distribution stable (en n'utilisant ni
dselect
ni tasksel
... mais la procédure va bientôt changer
avec le nouvel installateur), l'ensemble pèse au total bien moins de 100 Mo. Lors de
cette installation, je n'effectue que quelques configurations généralement proposées par
le programme comme le clavier, l'heure, le réseau : l'important étant de pouvoir se connecter
aux serveurs d'une façon ou d'une autre. Ceci fait j'édite le fichier sources.list
pour le faire correspondre à ce que je souhaite. Deux lignes suffisent amplement pour
un premier temps comme:
deb http://ftp.fr.debian.org/debian/ unstable main
deb http://non-us.debian.org/debian-non-US unstable/non-US main
Il ne manque plus que deux lignes de commandes et un peu de temps pour passer en testing ou unstable avant de pouvoir terminer l'installation et la configuration:
# apt-get update
# apt-get dist-upgrade
Pour ceux que les lignes de commandes ennuient, ou qui simplement souhaitent
essayer autre chose, voyons brièvement deux interfaces de gestion des paquets :
aptitude
en mode texte et synaptic
en mode graphique.
Aptitude est une interface texte qui va remplacer, remplace déjà, dselect.
Lancez aptitude
en entrant son nom dans un terminal en tant que simple
utilisateur ou à l'aide de votre menu "Debian / Apps / System /". Si les actions que
vous demandez le nécessitent, ce programme vous proposera de lui-même de passer
en root ou encore vous pourrez passer en root grâce au menu "Actions / Devenir
administrateur". La copie d'écran ci-dessous, correspondant à une résolution standard de
80 colonnes fois 25 lignes, montre justement ce menu Actions ainsi que la définition du
programme aptitude.
Pour débuter trois touches sont particulièrement intéressantes. La touche F10 permet d'ouvrir les menus que vous pouvez quitter avec la touche Echap (Esc). La touche ? donne un accès à l'aide que vous pouvez quitter avec la touche Entrée (Enter) ; à tout moment la touche Q vous permet de quitter le programme. Les principaux menus d'aptitude sont Actions, Défaire, Paquet, Rechercher, Options, Vues et Aide. Nous ne les décrirons pas ici, de nombreux raccourcis clavier permettent de plus de court-circuiter ces menus.
Comme toute interface texte un peu complexe aptitude
requiert une
petite période d'adaptation ; synaptic
qui est une interface graphique
semble plus facile à prendre en main. Normalement synaptic ne peut pas être appelé en
tant qu'utilisateur depuis un terminal en entrant simplement $ /usr/sbin/synaptic
;
ceci n'est pas une raison pour vous connecter directement en mode graphique en tant que root.
La façon la plus simple de lancer synaptic est d'aller le chercher dans le menu
"Debian / Apps / System /". Si vous ne possédez pas ce menu ou n'y trouvez pas synaptic,
vous pouvez aussi entrer dans un xterminal la commande utilisée normalement par ce menu :
$ /usr/sbin/su-to-root -X -c /usr/sbin/synaptic
Une première fenêtre s'ouvrira, vous demandant le mot de passe root puis, en même temps que synaptic, une seconde fenêtre de présentation (très) rapide. Les principaux menus de synaptic sont Fichier, Edition, Paquet, Catégories et Aide. De façon générale un clic gauche permet de faire une sélection, un clic droit d'obtenir un menu contextuel. Dans la copie d'écran ci-dessous, le paquet synaptic a été sélectionné parmi les paquets Administration système.
Il existe d'autres interfaces de gestion des paquets possibles comme dselect ou encore tasksel. Mais dselect est en fin de vie, comme nous l'avons vu aptitude le remplace ; quant à tasksel, il propose des sélections de paquets par (trop) grands thèmes comme "Environnement graphique de bureau" ou "Serveur web" ainsi qu'une entrée "Choix manuel des paquets" qui appelle aptitude... Considérons donc que la boucle est bouclée mais notez cependant que si tasksel nécessite aptitude, la réciproque n'est pas vraie.
Nous avons vu dans la partie Debian : distributions et paquets qu'il fallait distinguer les paquets sources (deb-src) des paquets précompilés ou binaires (.deb). Jusqu'à présent nous n'avons vraiment parlé que des paquets binaires, voyons donc maintenant comment compiler les paquets sources. Plusieurs méthodes sont possibles pour créer un paquet binaire à partir d'un paquet source. Seules les grandes lignes de l'une d'elles sont indiquées ici afin de vous permettre de faire vos premiers pas facilement.
La première fois vous devez tout d'abord installer deux paquets : dpkg-dev
et fakeroot. Le paquet dpkg-dev
est ici indispensable car il vous fournit
notamment la commande dpkg-buildpackage
comme nous l'avons vu dans
S'informer sur les paquets. Le paquet fakeroot
est facultatif, il vous permettra simplement ici d'utiliser cette commande sans être root,
ce qui est tout de même un avantage du point de vue sécurité. Donc :
# apt-get install dpkg-dev fakeroot
Ceci fait, comme nous l'avons évoqué dans Configurer et gérer apt,
afin de pouvoir récupérer facilement des paquets sources, vous devez modifier votre fichier
/etc/apt/sources.list
afin d'y inclure deux lignes similaires à celles-ci
(ici pour une distribution testing):
deb-src http://ftp.fr.debian.org/debian/ testing main
deb-src http://non-us.debian.org/debian-non-US testing/non-US main
Enfin, comme après chaque modification de ce fichier, ou comme avant chaque
nouvelle installation, une mise à jour des listes des paquets disponibles s'impose :
# apt-get update
Les préparatifs généraux étant terminés, entrons dans le vif du sujet. Pour ce qui est
de la compilation de ses paquets sources, Debian vous facilite bien la vie puisqu'il existe
une commande apt-get build-dep
permettant d'installer tout ce qui sera
nécessaire à la compilation que vous souhaitez réaliser (hormis les commandes triviales
comme gzip, tar... et hormis les sources du paquet). Donc si vous souhaitez compiler
nom_paquet, entrez : # apt-get build-dep nom_paquet
Tout le nécessaire à la compilation de ce paquet étant installé, sauf ses sources, il vous faut maintenant les télécharger. Créez d'abord un répertoire de travail, placez-vous ensuite dans ce répertoire pour y télécharger les sources que vous souhaitez compiler. Notez que cette partie se fait en mode utilisateur.
$ mkdir un_repertoire
$ cd un_repertoire
$ apt-get source nom_paquet
Cette dernière commande télécharge dans le répertoire courant les trois fichiers
nom_paquet.tar.gz
, les sources ; nom_paquet.dsc
,
la description du paquet et nom_paquet.diff.gz
, les modifications apportées
aux sources. Elle crée également dans ce répertoire un répertoire nom_paquet-version
contenant en fait les sources désarchivées. Si vous ne souhaitez pas que apt désarchive
les sources après les avoir téléchargées, utilisez l'option --download-only
et donc la commande apt-get source --download-only nom_paquet
...
mais de toute façon il vous faudra bien désarchiver les sources.
Il ne vous reste plus maintenant qu'à compiler les sources pour créer le paquet binaire.
Pour ce faire vous devez tout d'abord vous placer dans le répertoire les contenant :
$ cd nom_paquet-version
Ceci fait soit vous passez directement à la phase
de compilation et de création du paquet, soit vous apportez avant cela quelques modifications
par exemple au code source, nous verrons un exemple un peu plus bas. Notez que si
vous souhaitiez compiler directement le paquet sans rien modifier vous auriez pu tout
simplement ajouter l'option "-b" à la commande apt-get
précédente ce qui
aurait donné apt-get source -b nom_paquet
. Apt aurait alors non seulement
téléchargé et désarchivé les sources mais encore lancé la compilation et la création du paquet.
Compilez donc votre paquet : $ fakeroot dpkg-buildpackage
Un fichier binaire nom_paquet.deb
a ainsi été créé dans le répertoire père
du répertoire courant (celui des sources). Avant de passer à l'installation, vous devriez pouvoir tester
le binaire que vous venez de compiler (./nom_binaire
) Ceci fait il ne vous reste
plus qu'à vous rendre dans le répertoire père et à installer (cette dernière opération se fait en root).
$ cd ..
# dpkg -i nom_paquet.deb
Récapitulons et illustrons ce qui précède à l'aide de cmatrix que nous commençons à bien connaître.
# apt-get build-dep cmatrix
$ mkdir matrix
$ cd matrix
$ apt-get source cmatrix
$ cd cmatrix-1.2a
Nous cherchions dans S'informer sur les paquet un économiseur d'écran console. Ceci n'est pas le mode de fonctionnement par défaut de cmatrix. Puisque nous disposons du code source, nous allons modifier ce détail, cmatrix s'arrêtera alors par défaut avec n'importe quelle touche et non uniquement avec Q. Pour cela éditez le fichier cmatrix.c puis repérez le groupe de lignes:
int i, j = 0, count = 0, screensaver = 0, asynch = 0, bold = -1,
force = 0, y, z, firstcoldone = 0, oldstyle = 0, random =
0, update = 4, highnum = 0, mcolor = COLOR_GREEN, randnum =
0, randmin = 0;
Modifiez alors dans les lignes précédentes le 0 de screensaver = 0,
par un 1.
Pour compenser cette modification repérez en peu plus bas les lignes:
case 's':
screensaver = 1;
break;
Remplacez dans ces dernières lignes le 1 de screensaver = 1;
par un 0.
Nous avons ainsi inversé le mode par défaut et le rôle de l'option "-s". Si vous souhaitez personnaliser
un peu plus vous pouvez aussi modifier par exemple la couleur par défaut. Dans les premières
lignes, remplacez alors le GREEN de mcolor = COLOR_GREEN
par la couleur
de votre choix entre RED, BLUE, WHITE, YELLOW, CYAN, MAGENTA ou BLACK. Notez
que nous pourrions aussi modifier les scripts d'installation ou de désinstallations, ou
que sais-je encore... Sauvegardez, quittez, il ne vous reste plus qu'à compiler, tester et installer.
$ fakeroot dpkg-buildpackage
$ ./cmatrix [options]
$ cd ..
# dpkg -i cmatrix_1.2a-2_i386.deb
Vous trouverez également dans ce répertoire un paquet cmatrix-xfont_1.2a-2_all.deb
qui a été créé par la même occasion. Installez-le aussi si vous le souhaitez. Enfin si vous voulez
être certain de conserver "votre" cmatrix au cours des différentes mises à jour que vous effectuerez,
n'oubliez pas de le marquer en "hold" comme nous avons vu dans
Mettre à jour sa distribution. Par exemple :
# echo "cmatrix hold" | dpkg --set-selections
Il y aurait encore beaucoup à écrire pour compléter cette page, la critiquer, en préciser les limites, souhaiter qu'aucune erreur ne s'y soit glissée, etc. Mais, outre mon ignorance de certains sujets, je commence à être lassé d'écrire, et vous peut-être de lire. Si vous souhaitez des informations complémentaires, je vous recommande d'aller en priorité les chercher sur le site officiel Debian et sa page Documentation. Vous y retrouverez de nombreux points évoqués ici et bien plus ; n'oubliez pas non plus les incontournables pages man.
Pour le reste laissons Richard M. Stallman, ou plutôt son double virtuel vrms, conclure brièvement pour nous (exil est le nom du PC utilisé).
$ vrms
No non-free packages installed on exil! rms would be proud.
Merci d'avoir lu cet article ; merci à Léa de le publier.
par Jean-Christophe
Transformer le source d'un programme pour le rendre éxécutable par votre machine.
[root@taz src]# rpm --rebuild le_package-version.src.rpmCela 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
[root@taz root]# cd /usr/src [root@taz root]# tar zxvf /ou/se/trouve/le_package.tar.gzou bien :
[root@taz root]# tar yxvf /ou/se/trouve/le_package.tar.bz2ou bien :
[root@taz root]# tar jxvf /ou/se/trouve/le_package.tar.bz2Si 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.bz2Remarque : 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.tgzToutes 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.
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 installEt c'est tout !
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]# makeEnfin s'il n'y a qu'un fichier Makefile ou makefile, essayez juste :
[root@taz appli]# makeBref, 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.
$ ./configure --prefix=/opt/ma-destinationIl 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-destinationdans laquelle seront effectivement copiés les fichiers nécessaires à la compilation de programme utilisant cette librairie, et les programmes eux-mêmes.
+--> bin
+--> share
+--> etc
+--> include
+--> lib
`--> doc
$ ./configure --prefix=/opt/ma-destination --sysconfdir=/etcPour en savoir plus sur les diverses options de ./configure, faites :
$ ./configure --help | less
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 ... ).[user@becane src]$ ./configure --prefix=/opt/devlib
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++.
$ export CFLAGS="-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 ;).
$ export CXXFLAGS="-mcpu=i686 -O6"
$ ./configure --optimization=yes(Utilisez ./configure --help pour le savoir!)
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.
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 installpour copier les fichiers binaires, les librairies générées, le fontes, etc. au bon endroit.
par Roger Martin
Installer et utiliser Babytrans.
V1.0, Xavier FACQ, le 20/06/2001
Voici les manipulations pour installer Oracle8i 8.1.7 sur une machine Linux.
# su
# passwd oracle
# cd /cdromVous allez enfin pouvoir commencer l'installation
# ./runInstaller
!! On vous demande d'exécuter un script avec l'utilisateur root
!
Ouvrez une console :
# suPuis clickez sur rééssayez une fois le script terminé.
# /opt/oracle/OraHome/orainstroot.sh
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.shUne fois le script terminé, selectionnez Ok dans la boite.
Installez le fichier orarun.rpm avec l'utilisateur root et la commande suivante (cf chapitre A-4)
# suEnsuite, il faut faire des modifications dans les fichiers installés :
# rpm -ivh orarun.rpm
# cd /etc=> 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.
# vi oratab
# cd /etc/profile.d=> il faut remplacer la fin de la ligne ORACLE_HOME :
# vi oracle.sh
# sqlplus /nologSi vous avez le message CONNECTED, vous avez réussi l'installation d'Oracle 8.1.7 !
SQL >connect system/manager
CONNECTED
SQL>
Have a lot of fun...
Xavier FACQ.
V1.0, Xavier FACQ, le 05/11/2001
Voici les manipulations pour installer Oracle8i 8.1.7 sur une machine Linux.
# su
# passwd oracle
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)
# unset LANGSi vous avez, comme nous, une installation sur CD, montez le et lancez ensuite la commande :
# cd /cdromVous allez enfin pouvoir commencer l'installation.
# ./runInstaller
!! On vous demande d'exécuter un script avec l'utilisateur root
!
Ouvrez une console :
# suPuis clickez sur [rééssayer] une fois le script terminé.
# /opt/oracle/OraHome/orainstroot.sh
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.shUne fois le script terminé, selectionnez [Ok] dans la boite.
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
où PID est l'identifiant du processus (le premier nombre sur la ligne)
Il faut le dézipper dans votre ORACLE_HOME : Dans notre exemple : /opt/oracle/OraHome1
# cd /opt/oracle/OraHome1Puis lancer les commandes suivantes pour qu'il connaisse votre répertoire d'Oracle :
# tar xvfz glibc-2.1.3-stubs.tar.gz
# ORACLE_HOME=/opt/oracle/OraHome1Puis :
# export ORACLE_HOME
# ./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)
# suEnsuite, il faut faire des modifications dans les fichiers installés :
# rpm -ivh orarun8i.rpm
# cd /etc/profile.d=> il faut remplacer la fin de la ligne ORACLE_HOME :
# vi oracle.sh
# cd /etc=> si vous avez un fichier nommé oracle, c'est bon pour vous ! => sinon il vous faut prendre les scripts suivants :
# ls
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=> 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.
# vi oratab
# cd /etc/rc.d
# ./oracle stop
# ./oracle start
# sqlplus /nologSi vous avez le message CONNECTED, vous avez réussi l'installation d'Oracle 8.1.7 !
SQL >connect system/manager
CONNECTED
SQL>
Have a lot of fun...
Xavier FACQ.
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 :
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.
Commençons d'abord par une description de ces trois lecteurs, avec une petite comparaison :
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.
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.
(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.
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 :
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.
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.
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.
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
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
!!!
Avec l'option -vc" on peut utiliser un codec particulier pour un driver :
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 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.
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" |
... 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 :
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
...
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.
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 :
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.
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.
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).
cdrdao unlock --device y,z
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.
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).
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).
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).
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
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 -
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.
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).
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).
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)).
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.
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.
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.
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.
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.
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
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).
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.
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.
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.
David, Marc, Michel, Philippe
Configuration post-installation de la Slackware
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...
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 []: mimiMaintenant que l'utilisateur mimi a été créé, on va s'assurer que le mot de passe sera encrypté pour plus de sécurité.
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) []: sysmimi'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...
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.
# Set default POSIX locale:N'oubliez pas de commenter la ligne export LC_ALL=POSIX ;-) Sauvez le fichier, puis toujours sous root, lancez ensuite la commande suivante:
# 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
# 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).
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/Comme précisé précédemment, fusionnez (en copiant) les pages man des 2 répertoires:
man-fr/
cp -f man-fr/man1/* pagesdeman/usr/share/man/fr/man1Loguez vous en root, et créez les répertoires suivants s'ils n'existent pas :
...
...
cp -f man-fr/man9/* pagesdeman/usr/share/man/fr/man9
mkdir /usr/man/frToujours sous root, copiez les pages man françaises vers les répertoires nouvellement créés:
mkdir /usr/X11R6/man/fr
cp -r pagesdeman/usr/share/man/fr/* /usr/man/frEditez le fichier /usr/lib/man.conf et repérez ces lignes :
cp -r pagesdeman/usr/X11R6/man/fr/* /usr/X11R6/man/fr
NROFF /usr/bin/groff -S -Tascii -mandocModifiez les comme suit :
NEQN /usr/bin/geqn -Tascii
NROFF /usr/bin/groff -S -Tlatin1 -mandocSauvez, et testez par exemple:man ls.
NEQN /usr/bin/geqn -Tlatin1
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),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
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.bash_profile
clear
# End $HOME/.bash_logout
#$HOME/.bash_profile.bashrc
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# End $HOME/.bash_profile
# 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}"
}
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.Vous pouvez maintenant continuer la configuration comme bon vous semble puis quitter menuconfig en sauvegardant.
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.
# make depVous en avez maintenant terminé avec votre nouveau noyau et ses modules, il ne vous reste plus qu'à les installer.
# make clean
# make bzImage (ou zImage pour un petit noyau)
# make modules
# 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.
id:3:initdefault: pour un démarrage en mode texte,
id:4:initdefault: pour un démarrage en mode graphique.
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.
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.gzOn édite (toujours sous root) le fichier /etc/X11/XF86Config avec son éditeur préféré (emacs ;-):
$ tar xvzf NVIDIA_GLX-1.0-2313.tar.gz
$ cd NVIDIA_kernel
$ make install
$ cd ../NVIDIA_GLX
$ make install
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.
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/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).
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
Loguez-vous en root, et lancez la commande pppsetup. Les différentes informations à fournir sont:
numéro de téléphone: entrer ATDTnum_tel,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:
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,
chmod +s /usr/sbin/pppdEt voilà: pour lancer la connexion, /usr/sbin/ppp-on et pour l'arrêter, /usr/sbin/ppp-off.
chmod +s /usr/sbin/chat
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:
...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
# 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 :
### 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
...
# /etc/rc.d/rc.modulesIl 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).
none /proc/bus/usb usbdevfs defaults 0 0Voilà 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/usbSi 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.
# /usr/local/bin/modem_run -f /usr/local/share/speedtouch/mgmt.o -m
# pppd call adsl
# 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:else # assume 2.4 or newer
/sbin/modprobe ppp
# This module is for PPP support:fi
/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
# This module provides compression for PPP (optional):
/sbin/modprobe ppp_deflate
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.
# cd /usr/lib/apsfilterIl 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.
#./SETUP
$ ls -l /usr/bin/pnm2ppaLors 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.
-rwxr-xr-x 1 root bin 448764 Dec 31 12:04 /usr/bin/pnm2ppa
### Sound support ###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 :
# 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/)
...Maintenant, pour que cette modification devienne effective entrez simplement :
# ES1371 support, such as Sound Blaster 64V PCI:
/sbin/modprobe es1371
...
# /etc/rc.d/rc.modulesNormalement vous avez alors du son en tant que root mais pas en tant que user.
# usermod -G sys userOù user représente le nom de login de l'utilisateur auquel vous voulez ajouter le groupe sys.
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 :
evdevUne 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.
mousedev
wacom
hid
input
usb-uhci ou usb-ohci (suivant votre contrôleur USB)
usbcore
#cd /devEn 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.
#rm cdrom
#ln -s /dev/scd0 /dev/cdrom
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.
Par Marc <spi.mj@wanadoo.fr>
Utilisation d'une mini-distribution.
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.
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
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 :-)
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 !
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.
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...
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 :-)
Ahmed Rahal dit R-Daneel
Utilisation du programme 'webcam'
Le programme que je vais vous présenter fait partie de xawtv.
Si vous n'utilisez pas xawtv, il faudra vous le procurer en package RPM ou,
comme moi, le recompiler à partir des sources. Le site officiel de xawtv
est http://bytesex.org/xawtv/ et contient
une foule d'informations concernant ce produit.
Le programme en question s'appelle "webcam", tout simplement. Son intérêt est, comme vous l'avez sûrement deviné, de prendre des clichés avec votre webcam. Mon but ici n'est pas de vous guider pour l'installation d'une webcam, mais plutôt de vous faire découvrir ce petit outil extrêmement discret mais efficace.
Le but de 'webcam' est de prendre des clichés par la webcam et de les transférer sur un serveur web à partir duquel tout le monde pourra vous admirer :) L'intérêt de l'outil réside dans le fait qu'il automatise toutes les opérations en se basant sur un fichier de configuration. Le fichier doit se trouver dans votre répertoire d'accueil. Ce fichier s'appelle '.webcamrc':
bash-2.05a$ ls -l .webcamrc
-rw-r--r-- 1 r-daneel users 622 mar 17 01:26 .webcamrc
voici l'aperçu de ce qui se trouve dans un fichier basique :
[grab]
device = /dev/video0
text = webcam - %d/%m/%Y %H:%M:%S
#infofile = filename
archive = webcam/capture_%Y-%m-%d_%H:%M:%S.jpg
fg_red = 255
fg_green = 255
fg_blue = 255
width = 320
height = 240
delay = 60
wait = 1
input = camera
norm = pal
rotate = 0
top = 0
left = 0
bottom = -1
right = -1
quality = 75
trigger = 0
once = 0
[ftp]
host = mon.serveur_web.com
user = utilisateur_site_web
pass = mon_mot_de_passe
dir = public_html/webcam
file = webcam.jpg
tmp = uploading.jpg
passive = 1
debug = 0
auto = 0
local = 0
ssh = 0
Tout d'abord, il y'a 2 sections bien distinctes dans ce fichier. D'abord [grab] pour les paramètres de capture, ensuite [ftp]pour les paramètres de transfert réseau vers votre serveur web (par ftp ou ssh).
Section [grab]
Section [ftp]
Voila, il reste un petit détail : on peut avoir plusieurs sections (ne s'appelant pas [ftp] mais qui doivent être du même type : avoir les mêmes paramètres) pour déposer le cliché sur plusieurs serveurs simultanément. Si votre fan club a atteint de telles proportions que vous devez déposer vos photos dans plusieurs serveurs, vous saurez apprécier encore plus ce petit programme ;)
Ce programme porte mal son nom, il devrait s'appeler 'webcamd', car il a pour vocation d'être un serveur. Une fois lancé il reste actif et prend des clichés à intervalles régulières (a moins d'avoir mis le paramètre 'once' à '1'). J'ai donc écrit un petit script qui permet de le lancer à l'image d'un service :
#!/bin/sh
# chkconfig: 235 99 10
# description: Start or stop the webcam daemon
#
### BEGIN INIT INFO
# Provides: webcamd
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Description: Start or stop the webcam daemon
### END INIT INFO
Program="/usr/bin/webcam"
Config="/etc/webcam.conf"
case "$1" in
'start')
if [ ! -f ${Config} ]; then
echo "ERROR: '${Config}' file missing."
exit 1
fi
nohup ${Program} ${Config} > /dev/null 2>&1 &
;;
'stop')
procs=`ps -ef | grep -v grep | grep -c ${Program}`
if [ ${procs} -lt 1 ]; then
echo "WARNING: daemon (${Program}) not running."
exit 1
fi
/bin/killall ${Program}
;;
'restart')
${0} stop
${0} start
;;
*)
echo "usage $0 start|stop|restart"
esac
Si vous avez une distribution intelligente (RedHat, Mandrake, etc...) copiez le script ci dessus dans un fichier 'webcamd' puis (connecté en tant que root) :
# cp webcamd /etc/rc.d/init.d
# chmod 755 /etc/rc.d/init.d/webcamd
ensuite
# chkconfig --add webcamd
Si comme moi vous avez une slackware-faut-tout-faire-à-la-main copiez le script dans un fichier 'webcamd' puis (toujours en root) :
# cp webcamd /etc/rc.d/rc.webcam
# chmod 755 /etc/rc.d/rc.webcam
# echo "/etc/rc.d/rc.webcam start" >> /etc/rc.d/rc.local
Maintenant, il vous reste à écrire le fichier de configuration dans /etc/webcam.conf (toujours en root) :
[grab]
device = /dev/video0
text = webcam - %d/%m/%Y %H:%M:%S
#infofile = filename
#archive = /tmp/webcam/capture_%M.jpg
fg_red = 255
fg_green = 255
fg_blue = 255
width = 320
height = 240
delay = 60
wait = 1
input = camera
norm = pal
rotate = 0
top = 0
left = 0
bottom = -1
right = -1
quality = 75
trigger = 0
once = 0
[ftp]
host = mon.serveur_web.com
user = utilisateur_site_web
pass = mon_mot_de_passe
dir = public_html/webcam
file = webcam.jpg
tmp = uploading.jpg
passive = 1
debug = 0
auto = 0
local = 0
ssh = 0
enfin
chmod 755 /etc/webcam.conf
Voilà pour un début, le tout me semble finalement un peu long, mais terriblement limpide, non ?
Il reste quelques paramètres non abordés ici. ils concernent
principalement des paramètres de distorsion de la lentille de la webcam et
des paramètres d'ajustement de l'image. Ils sont documentés dans la page
man du programme (man webcam
) mais mes conaissances limitées en
optique ne me permettent pas d'expliciter leur manipulation. Je vous laisse
le soin d'ajouter par coups d'essai ces paramètres. Je suis, moi, parfaitement
satisfait du résultat obtenu, mais je suis peut-être un peu moins exigeant
que certains ;)
Alors maintenant, faites un grand sourire à votre webcam :D
par Marc
Jamais sans mon Linux.
Un CDrtbt (j'utiliserai parfois cette abréviation en hommage à la célèbre Tomsrtbt) est un CD incluant la racine (root) d'un système et donc son arborescence et ses fichiers. Il est de plus doté d'un programme d'amorçage (boot) comparable à celui des CDs d'installation des distributions. Il fonctionne entièrement en RAM et sur lui-même, comme le font beaucoup de distributions liveCD comme la très actuelle Knoppix. Une fois en fonctionnement votre "système" aura schématiquement la structure suivante, la racine étant en RAM et le répertoire /usr/ restant sur le CD (les + signifient que je coupe un peu pour simplifier) :
/bin/
/boot/
+
/opt/
/proc/
/root/
/tmp/
|/bin/
/usr/--CD--|/doc/
|/games/
/var/ |+
On peut imaginer différentes méthodes pour créer un CDrtbt ; je n'en présenterai ici qu'une seule, la seule d'ailleurs que j'ai utilisée lors de mes premiers essais. Attention vous ne créerez pas ainsi une Demolinux ou autre, mais vous le ferez vous-même et c'est beaucoup... Par honnêteté je dois signaler dès ici l'article de Qing LIU (que j'ai par ailleurs contacté) qui est à l'origine de mes propres essais : Créer son propre système root/boot sur cdrom. Vous pouvez bien sûr le lire, mais je vous déconseille fortement d'essayer de construire un CD en piochant alternativement dans un article puis dans l'autre, du moins sans avoir auparavant bien compris la méthode. En effet si les articles possèdent forcément des points communs, ils diffèrent sous de nombreux aspects (heureusement d'ailleurs) ce qui pourrait vous induire en erreur.
J'ai utilisé lors de mes essais une Debian pour construire un CDrtbt Debian (stable - main ; pour être précis) assez proche de l'original une fois installé. Ceci influe forcément un peu sur quelques détails de cet article. Par exemple la Debian possède un répertoire /cdrom/ et un /floppy/ alors que d'autres distributions possèdent un /mnt/cdrom/ et un /mnt/floppy/. Comme vous le voyez ce n'est pas grand chose, vous pourrez aisément modifier ces détails si vous le souhaitez, et si vous ne le faites pas cela sera sans conséquences fâcheuses. De toute façon le plus important ici est de comprendre la méthode afin de pouvoir l'adapter à ses besoins.
Vous devez bien sûr être sous GNU/Linux, disposer d'un graveur, d'un programme vous permettant de graver des isos et d'au moins un CD-RW de préférence. Votre distribution possède sans doute déjà toutes les commandes qui vous seront nécessaires (vérifiez à tout hasard mkisofs) mais il vous manque peut-être le programme isolinux.bin. Sous Debian celui-ci est inclus dans le paquet syslinux : apt-get install syslinux. Le fichier isolinux.bin se trouve maintenant dans le répertoire /usr/lib/syslinux/. Ce programme est indispensable puisque c'est grâce à lui que le CD est amorçable.
Ceci fait il vous faut disposer d'une partition libre d'environ 1 Go (ou beaucoup plus que vous n'utiliserez pas) dans laquelle vous installez la distribution qui représentera 99% de votre CDrtbt. Bien que cette étape ne constitue pas le coeur de cet article, nous touchons en réalité ici au point le plus important. En effet la qualité de votre CD dépendra du soin que vous prendrez à installer et à configurer cette distribution. Voici quelques conseils (ce ne sont que des idées, non des vérités):
Notez ici que l'on pourrait imaginer une autre méthode de création d'un CDrtbt qui n'utiliserait pas une distribution spécialement installée à cet effet mais simplement votre distribution habituelle et ne nécessiterait donc pas de partition libre. Je pense cependant que bien souvent cette méthode serait beaucoup plus ardue, à moins que vous n'utilisiez au quotidien une distribution relativement minimale, car elle demanderait de faire constamment le tri (notamment en /usr) entre ce qui doit être conservé et ce qui ne doit pas l'être, ce serait un gros travail sans doute bien plus astreignant que d'installer une petite distribution. De plus rien ne vous assurerait, tant que vous n'auriez pas essayé de booter votre CD, que cette distribution est réellement fonctionnelle.
Important : Dans tout ce qui suit j'ai essayé d'être simultanément le plus simple et le plus précis possible. En effet toutes les manipulations sont à faire en root (ce qui est symbolisé par un # devant les lignes de commandes) et portent sur l'ensemble des fichiers d'une distribution, y compris les plus sensibles. J'ai donc préféré la sécurité de votre système au risque de donner ici des lignes de commandes que l'on pourrait juger maladroites ou peu optimisées. Par exemple:
# cd /var/tmp/
# nano prepa/fstab
ne fait courir aucun risque à votre fichier /etc/fstab ce qui ne serait pas forcément le cas de :
# cd ../..
# nano fstab
Pour information, nano est un petit éditeur de texte en standard sous Debian ; si vous ne le possédez pas ou ne l'aimez pas, remplacez nano par vi ou autre.
Commencez par créer quelques répertoires. Un répertoire /mnt/disk/ où nous monterez la distribution du CDrtbt ainsi qu'un répertoire /mnt/loop/ qui vous servira lors de la construction de l'initrd. Comme notre répertoire de base de travail sera /var/tmp/, créez dans celui-ci : le répertoire prepa/ qui servira à préparer quelques fichiers ; les répertoires cdrom/ et cdrom/isolinux/ qui contiendront ce qui sera au final le CD et enfin le répertoire ramcd/ qui contiendra la partie RAM de ce CD c'est-à-dire l'initrd.
# mkdir /mnt/disk /mnt/loop
# mkdir /var/tmp/prepa /var/tmp/ramcd
# mkdir /var/tmp/cdrom /var/tmp/cdrom/isolinux
Ceci fait, commençons par remplir un peu notre répertoire prepa/ en y créant au moins trois fichiers indispensables: isolinux.cfg ; isolinux.txt et fstab. J'utilise ici l'éditeur nano, utilisez celui que vous voulez.
# cd /var/tmp/
# nano prepa/isolinux.cfg
prompt 1
timeout 0
display isolinux.txt
label linux
kernel vmlinuz
append root=/dev/ram0 ro initrd=initrd.img ramdisk_size=65536
Le fichier isolinux.cfg est assez proche d'un lilo.conf ; quelques
explications :
prompt 1
: demande d'afficher un prompt.
timeout 0
: demande d'attendre une réponse à
l'infini. Si vous le souhaitez, vous pouvez à la place indiquer
un temps
d'attente en dixièmes de secondes (timeout 100
pour
10 secondes donc) au bout duquel isolinux cherchera à
charger le noyau correspondant au label "linux". Si ce label n'existe
pas, ceci engendrera un message d'erreur.
display isolinux.txt
: affiche le message du fichier
isolinux.txt, message que vous créerez par la suite.
label linux
: un nom doit correspondre à chaque
possibilité de boot, ici il n'y en a qu'une nommée
"linux" ce qui permet
d'avoir éventuellement un amorçage automatique. Bien
sûr ceci peut se changer, pensez toutefois que vous serez
à ce moment en clavier qwerty. Mes essais pour des claviers
azerty n'ont pas été concluants à 100%, j'ai donc
éliminé cette possibilité.
kernel vmlinuz
: il s'agit du nom du noyau à booter
pour ce label. Ce noyau doit avoir été compilé
avec le support ramdisk
et initrd en dur, ainsi qu'avec le support du système de
fichiers iso9660 des CDs.
append root=/dev/ram0 ro initrd=initrd.img ramdisk_size=65536
: ce sont les options à passer au noyau lors du boot soit
la racine du système de fichier, la façon dont elle doit
être montée, le nom du fichier initrd et la taille
maximale autorisée pour le ramdisk.
Notez ici que nous autorisons un ramdisk maximum de 64 Mo, ce qui est
beaucoup. Vous pourrez sans doute descendre assez facilement
à un ramdisk de 48 Mo voire même de 32 Mo. Pour le savoir,
il vous suffira de faire un du -sh ramcd/
une fois ce
répertoire
rempli (je vous le rappellerai en temps utile, mais vous aviez
certainement anticipé en faisant régulièrement des
du -sh /*
sur votre distribution lors de sa construction pour être
sûr de ne pas avoir de mauvaises surprises
ultérieurement). Enfin, si vous souhaitez des exemples de
fichiers isolinux.cfg plus élaborés, consultez ceux des
CDs de votre distribution, nombreuses sont celles à utiliser ce
système.
# nano prepa/isolinux.txt
Pour commencer entrez: linux [options]
Le fichier isolinux.txt sera affiché par isolinux au moment
du boot, vous pouvez bien sûr y écrire ce que vous voulez.
Notez au passage que l'on peut, comme avec lilo, passer des
paramètres au noyau lors du boot. Ainsi par exemple :
linux vga=771
permet d'obtenir une console en 800x600 si
le support framebuffer est bien inclus dans le noyau et si la carte
graphique le supporte. Attention tout de même pour ce message,
les caractères accentués et autres bizarreries
spécifiques à notre langue ne seront pas
supportés, donc n'en mettez pas.
# nano prepa/fstab
/dev/ram0 / ext2 defaults 1 1
/dev/hdc /usr iso9660 defaults 0 0
proc /proc proc defaults 0 0
Dans ce fstab /dev/ram0 est monté en / au format ext2 et /dev/hdc en /usr au format iso9660. Vous noterez ici un des gros défauts de ce fichier : il suppose que notre CDrtbt sera dans le lecteur /dev/hdc (seconde nappe IDE, premier contrôleur). Certes beaucoup de PCs possèdent un tel lecteur, mais pas tous... Ne sachant pas comment faire autrement, je ne puis vous proposer mieux. Adaptez donc à vos besoin si nécessaire et, si vous le souhaitez, ajoutez des lignes pour les ports usb ou autres comme pour n'importe quel fichier fstab.
Tous les fichiers nécessaires ont été créés, mais rien ne vous empêche d'en éditer d'autres, de l'ordre de l'optionnel. Je mets par exemple des fichiers .profile, .bashrc et .bash_logout pour le futur /root/ afin d'avoir un environnement plus convivial. Faites simplement comme bon vous semble. J'indiquerai ultérieurement un moment adéquat pour copier ces fichiers facultatifs, si vous en créez.
Vous allez maintenant remplir votre CDrtbt, il ne restera ensuite qu'à lui ajouter l'initrd pour qu'il soit vraiment complet. Commencez par monter la distribution placée dans cet exemple en /dev/hdb7 (corrigez donc cette ligne pour l'adapter) :
# mount -t ext2 /dev/hdb7 /mnt/disk/
Placez-vous ensuite dans le répertoire /var/tmp/ pour mettre les fichiers vmlinuz (le noyau de votre distribution dont nous supposons ici qu'il porte ce nom et est en /boot/), isolinux.bin, isolinux.cfg et isolinux.txt dans le répertoire cdrom/isolinux/.
# cd /var/tmp/
# cp /mnt/disk/boot/vmlinuz cdrom/isolinux/
# cp /usr/lib/syslinux/isolinux.bin cdrom/isolinux/
# cp prepa/isolinux.cfg cdrom/isolinux/
# cp prepa/isolinux.txt cdrom/isolinux/
Vérifiez que tout s'est passé comme prévu :
# ls cdrom/isolinux/
isolinux.bin isolinux.cfg isolinux.txt vmlinuz
Changez maintenant de répertoire afin de copier le /usr/ de votre distribution en /var/tmp/cdrom/ à l'aide de la commande tar... Soyez un peu patients. Notez que vous pouvez ajouter un v aux options de tar si vous souhaitez qu'elles soient volubiles.
# cd /mnt/disk/usr/
# (tar cfp - *) | (cd /var/tmp/cdrom/; tar xfp -)
Vérifiez que tout est en ordre :
# ls /var/tmp/cdrom/
X11R6 bin doc games include info isolinux lib local sbin share src
Le résultat peut être un peu différent selon la distribution utilisée. Quoi qu'il en soit, il doit correspondre au répertoire /usr/ de celle-ci augmenté du répertoire isolinux/. Il ne vous reste plus maintenant qu'à créer l'initrd pour l'y ajouter.
Placez-vous dans le répertoire où est montée votre distribution afin d'en copier les répertoires désirés, hormis /usr/ dont vous venez de faire la copie.
# cd /mnt/disk/
# (tar cfp - bin boot dev etc lib opt sbin var) | (cd /var/tmp/ramcd/;
tar xfp -)
Comme vous le voyez, nous faisons ici une copie des
répertoires /bin/, /boot/, /dev/, /etc/, /lib/, /opt/,
/sbin/ et /var/ de la distribution. Vous pouvez également faire
des choix quelques peu différents concernant les
répertoires à copier ou non ; nous parlerons par exemple
un peu plus loin d'éventuel(s) utilisateur(s) et du
répertoire /home/ que j'ai volontairement omis ici. Notez
d'autre part que nous avons utilisé la commande tar
pour effectuer
des copies comme expliqué dans le T&a :
Copier (déplacer) son Linux sur DD. Si vous le
préférez, vous pouvez utiliser à sa place la
commande
rsync
comme expliqué dans ce T&a de Jonesy :
Cloner son système. De toute façon il vous faut
maintenant compléter votre image en y ajoutant ce que vous
n'avez pas copié et en apportant quelques petites modifications.
Retournez au répertoire /var/tmp/ et créez les répertoires non copiés en leur donnant les permissions appropriées. Nous allons créer ici proc/, root/, tmp/, usr/ ainsi que les points de montage cdrom/ floppy/ et mnt/. Il est possible de modifier un peu ces choix, en fonction de ce que vous avez réellement copié précédemment et de la structure que vous souhaitez avoir.
# cd /var/tmp/
# mkdir ramcd/proc ramcd/root ramcd/tmp ramcd/usr
# chmod 555 ramcd/proc
# chmod 750 ramcd/root/
# chmod 1777 ramcd/tmp
# mkdir ramcd/cdrom ramcd/floppy ramcd/mnt
Copiez maintenant le fichier fstab initialement préparé. Si vous avez préparé des fichiers optionnels, profitez-en pour les copier également :
# cp prepa/fstab ramcd/etc/
Créez ensuite un fichier /etc/mtab vide :
# echo > ramcd/etc/mtab
Nous venons de créer un répertoire /root/ mais n'avons
pas créé (ni copié) de répertoire /home/.
Plusieurs possibilités sont ici envisageables, nous n'en verrons
que trois.
1) Vous ne souhaitez pas a priori avoir d'utilisateur(s) pour votre
CDrtbt, vous serez en root, inutile alors de faire un /home/ (sans
compter que vous pourrez toujours en créer un lors de
l'utilisation du CD). Vous n'avez alors rien de plus à faire
concernant la copie ou la création de répertoire.
2) Vous n'avez pas créé d'utilisateur mais pensez avoir
un utilisateur ou plus lors de l'utilisation du CD et n'en savez
guère plus à ce stade. Vous pouvez alors préparer
le terrain en créant un répertoire /home/ :
# cd /var/tmp/
# mkdir ramcd/home
3) Vous avez créé un ou des utilisateur(s) et vous souhaitez pouvoir le(s) retrouver en utilisant le CD. Prenons ici l'exemple fictif de l'utilisateur user (uid 1000) du groupe users (gid 100). Pour qu'il figure sur le CD, il est possible d'ajouter simplement le répertoire /home/ à la liste des répertoires à copier par tar au moment de la création de l'initrd (voir la remarque faite plus haut à ce propos). Tout ce qu'il contient sera alors copié tel quel. Ce n'est sans doute pas une très bonne idée sauf si vous avez pris soin de bien faire le ménage en quittant la distribution. Pour repartir plus proprement, vous pouvez procéder de cette façon (ici vous devez bien sûr adapter en utilisant les véritables nom, uid et gid de votre(vos) utilisateur(s) pour tout ce qui concerne user, 1000 et 100) :
# cd /var/tmp/
# mkdir ramcd/home ramcd/home/user
# cp ramcd/etc/skel/.* ramcd/home/user/
Vous créez ainsi les bons répertoires et y copiez les fichiers qui figurent "normalement" à la création d'un utilisateur. Ces fichiers étant des fichiers cachés, n'oubliez pas le "." devant le "*". Vous pouvez alors compléter avec, par exemple, des fichiers facultatifs du répertoire prepa/. Il ne vous reste plus ensuite qu'à rendre ceci à qui de droit et à mettre des permissions ad hoc :
# chown -R 1000.100 ramcd/home/user/
# chmod 750 ramcd/home/user/
Que vous ayez ou non fait ce qui précède, vérifions maintenant que tout est en place [home] étant donc facultatif :
# ls /var/tmp/ramcd/
bin boot cdrom dev etc floppy [home] lib linuxrc mnt opt proc root sbin
tmp usr var
Le répertoire ramcd/ contenant tout ce qu'il doit, il ne vous
reste plus qu'à créer l'initrd.img. Je ne vais pas
expliquer chacune des commandes et options correspondant à cette
construction car ce serait un peu long (on peut d'ailleurs aussi
très certainement procéder différemment). Notez
toutefois que nous créons au départ un fichier initrd de
64 Mo (bs=1M count=64) en cdrom/isolinux/ et qu'il occupera donc
approximativement cette place en mémoire. Ceci correspond
à ce que nous avons mis dans le fichier isolinux.cfg
(ramdisk_size=65536). Si vous avez opté pour un ramdisk plus
petit (vérifiez la taille du répertoire ramcd/ avec du
-sh /var/tmp/ramcd/
pour voir ce que vous pouvez faire),
créez aussi un fichier initrd plus petit. En très bref :
nous créons ensuite un système de fichier ext2, copions
le répertoire ramcd/ puis gzipons le tout pour obtenir
initrd.img.
# cd /var/tmp/
# dd if=/dev/zero of=cdrom/isolinux/initrd bs=1M count=64
# mke2fs -m0 -F cdrom/isolinux/initrd
# mount -o loop cdrom/isolinux/initrd /mnt/loop/
# rsync -a /var/tmp/ramcd/* /mnt/loop/
# umount /mnt/loop/
# gzip -S .img cdrom/isolinux/initrd
Voilà nous avons presque terminé. Il ne reste en effet plus qu'à créer l'image iso et à graver. Donc avant cela il est prudent de procéder à quelques vérifications, au moins pour ce qui est de initrd.img que nous venons de créer:
# ls cdrom/isolinux/
initrd.img isolinux.bin isolinux.cfg isolinux.txt vmlinuz
Elle est bien là... Si tout le reste vous semble aussi correct, vous pouvez démonter la distribution :
# umount /mnt/disk/
Il existe sans doute de nombreuses possibilités concernant la
création de l'image iso mais, mes connaissances en ce domaine
étant assez limitées, je ne traiterai ici que du cas de
l'extension Rock Ridge. Si vous avez créé un(des)
utilisateur(s) ou pensez que lors de l'utilisation du CDrtbt il y aura
peut-être des utilisateurs (autres que root) vous devez utiliser
l'option -R. Sinon vous pouvez utiliser l'option -r plus "propre" car
elle crée des CDs où aucun fichier n'a de permission en
écriture, où tous appartiennent à 0.0
(root.root)... Dans le doute, utilisez -R. Attention tout ce qui suit mkisofs
correspond à une seule et même ligne de commande.
Pour des CDs proprets root :
# cd /var/tmp
# mkisofs -o cdrom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat
-no-emul-boot -boot-load-size 4 -boot-info-table -r -l -L cdrom/
Pour des CDs utilisateurs ou dans le doute :
# cd /var/tmp
# mkisofs -o cdrom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat
-no-emul-boot -boot-load-size 4 -boot-info-table -R -l -L cdrom/
Une fois ceci fait, vous disposez du fichier cdrom.iso en /var/tmp/. Vérifiez que tout s'est bien passé, et notamment qu'un fichier boot.cat est apparu dans le répertoire isolinux/. Notez d'autre part qu'il est possible qu'un répertoire rr_moved/ soit apparu, ceci est dû à l'utilisation de l'extension Rock Ridge et importe peu ici.
# mount -o loop cdrom.iso /mnt/loop/
# ls /mnt/loop/
X11R6 bin doc games include info isolinux lib local [rr_moved] sbin
share src
# ls /mnt/loop/isolinux/
boot.cat initrd.img isolinux.bin isolinux.cfg isolinux.txt vmlinuz
# umount /mnt/loop/
Il ne reste plus qu'à graver et à rebooter. Pour ce qui est de la gravure, vous pouvez utiliser cdrecord et éventuellement, comme moi-même, son frontend eclipt roaster. Si vous préférez procéder en ligne de commande et que vous ne savez comment faire, lisez donc cet article de Pascal : La gravure en ligne de commandes.
Malgré ses lacunes j'espère que cet article permettra à certains d'entre vous de faire facilement leurs premiers essais en évitant autant que possible les no kernel found, kernel panic et autres joyeusetés. Notez cependant que si la méthode présentée ci-dessus a l'avantage de la simplicité (elle peut être facilement expliquée et réalisée et convient donc bien à un article) elle manque cruellement de souplesse : lors de l'utilisation le répertoire /usr/ est sur le CD et tout le reste en RAM, un point c'est tout. Pour ceux qui aimeraient aller plus loin, une organisation similaire à ce qui suit permet de remédier à cette rigidité au prix d'une complexité accrue (les + signifient que je coupe un peu pour simplifier).
/.cdrtbt/--CD--|/linux/-------|/opt/
|/isolinux/ |/usr/
+ |/var/--|/cache/apt/
/bin/ |/lib/apt/
/boot/
+
/opt/ = lien vers /.cdrtbt/linux/opt/
/proc/
/root/
/tmp/
/usr/ = lien vers /.cdrtbt/linux/usr/
/var/--|/backups/
|/cache/apt/ = lien vers /.cdrtbt/linux/var/cache/apt/
|+
|/lib/apt/ = lien vers /.cdrtbt/linux/var/lib/apt/
|+
En simplifiant, le CD est monté dans un répertoire caché /.cdrtbt/. Il contient à sa racine deux répertoires isolinux/ et linux/. Ce dernier répertoire contenant à son tour l'arborescence nécessaire pour y placer "tout ce que l'on veut" (dans cet exemple /opt/, /usr/, /var/cache/apt/ et /var/lib/apt/). Dans l'arborescence des liens pointent vers les fichiers qui ont été placés sur le CD. Cette méthode permet de faire plus ou moins ce que l'on veut mais elle est difficile à présenter in extenso puisque l'on ne peut savoir à l'avance ce que les uns ou les autres souhaitent faire et, même dans ce cas, cela risquerait d'être long et fastidieux pour vous comme pour moi. Par exemple, nous pourrions déjà noter que le répertoire linux/ est en fait totalement facultatif mais que personnellement je préfère le créer quand même, etc, etc.
Si vous avez des idées, des propositions ou des critiques constructives, n'hésitez pas à me contacter.
Merci à Léa de publier cet article, merci à vous de l'avoir lu.
Par Antoine
Ce document a pour but d'expliquer comment faire un DVD lisible sur un lecteur DVD de salon à partir d'une caméra mini-dv. Ce document a été créé en utilisant XML Docbook.
Lorsque j'ai acheté mon mini-dv, je voulais simplement créer un DVD de salon
pour m'affranchir de l'utilisation de mon PC pour regarder mes vidéos personnelles.
(en fait ma femme n'est pas très PC, et le DVD de salon est la meilleure méthode pour qu'elle
puisse regarder nos vidéos).
J'ai trouvé de la doc éparpillée un peu partout (les liens sont à la fin de chaque chapitre)
et je me suis dit que créer une doc umentation en français regroupant toutes les informations
serait une bonne idée.
Camescope : Sony DCR PC120E PAL
Carte firewire : Lucent Microelectronics FW323
PC de compression : Athlon XP2400 512 Ram 80go + 160go
Graveur de DVD : NEC ND1300
Il faut une heure pour capturer la vidéo du camescope (le temps de lecture de toute la bande de 60min), 6h30 de conversion au format DVD MPEG2 (option vidéo pipe dans kino en -q 2, en -q 1, il faut compter les doubles), et 5 minutes pour créer les .VOB du DVD, et 25 minutes pour graver le DVD. Donc en moins de 7 heures, vous avez un DVD de salon à partir de votre caméscope :-)
J'utilise Mandrake Linux 10 community avec la suite de logiciels suivant qui me permet de faire : la capture, le montage vidéo, la conversion au format DVD, et finalement graver le DVD. Voici donc la liste des logiciels utilisés tout au long de ce HOWTO
Bien sur il existe certainement d'autres méthodes pour arriver à un DVD de salon à partir de son caméscope, en voici une, et j'attends les retours d'expériences, les oublis et les corrections d'erreurs qui existent certainement dans ce document.
Il faut avoir un kernel qui supporte le ieee1394, sinon votre carte firewire ne fonctionnera pas :-( La plupart des distributions ont le support ieee1394.
Charger les modules nécessaires :
[root@xp2400 ~/]# modprobe ohci1394 [root@xp2400 ~/]# modprobe raw1394
voici la liste des modules ieee1394 de mon système :
[root@xp2400 root]# lsmod | grep 1394 raw1394 19416 0 (unused) dv1394 20208 0 (unused) ohci1394 27696 0 [dv1394] ieee1394 201284 0 [raw1394 dv1394 ohci1394]
Utilisez testlibraw pour vérifier que ça fonctionne :
[root@xp2400 root]# testlibraw successfully got handle current generation number : 1 1 card(s) found nodes on bus : 2, card name : ohci1394 using first card found : 2 nodes on bus, local ID is 1, IRM is 1 doing transactions with custom tag handler trying to send read request to node 0... completed with value 0x334275a5 trying to send read request to node 1... completed with value 0x406175a5 using standard tag handler and synchronous calls trying to read from node 0... completed with value 0x3cc676a5 trying to read from node 1... completed with value 0x10e076a5 testing FCP monitoring on local node got fcp command from node 1 of 8 bytes : 01 23 45 67 89 ab cd ef got fcp response from node 1 of 8 bytes : 01 23 45 67 89 ab cd ef polling for leftover messages
dvgrab permet de récupérer en ligne de commande la vidéo de votre mini-dv. Ce logiciel est assez simple d'utilisation. Utilisez la version 1.3 (ou supérieur) qui est interactive et très intuitive dans son utilisation. Il faut compter pas loin de 14 Go d'espace disque pour capturer une heure de DV.
Utilisation de dvgrab en mode interactif :
[guibo@xp2400 ~/]# dvgrab -i Going interactive. Press '?' for help. q=quit, p=play, c=capture, Esc=stop, h=reverse, j=backward scan, k=pause l=forward scan, a=rewind, z=fast forward, 0-9=trickplay, space=play/pause "Playing Paused" ff :ff :ff :ff "" sec
Lancer la capture de la vidéo :
[guibo@xp2400 ~/]# dvgrab -i --format dv2 --timestamp --autosplit outfile
Pressez a pour rembobiner la cassette au début, puis c pour lancer la capture. Cela prendra le temps d'enregistrement de votre vidéo (soit une heure pour une cassette complète)
Cela va créer des fichiers du type outfile1998.12.04_16-14-22.avi dans votre répertoire de travail. Ce sont ces fichiers que nous utiliserons pour faire le montage sous Kino. Attention dans certains cas, le mini-DV ne gère pas la date-heure, et donc chaque nouvelle séquence vidéo capturée et enregistrée efface l'ancienne (outfile000-000-000--0-00-0.avi). Dans ce cas ne pas utiliser --timestamp et --autosplit , mais --size 2048 pour couper le fichier tous les 2048Mo. Attention à ne pas travailler avec des fichiers .avi d'une taille supérieure, sinon vous risquez de rencontrer des problèmes de son, et certain encodeurs vidéos ne le supportent pas.
Pour se repérer dans les vidéos, rien de tel qu'un screenshot de la première image du .avi. Transcode est bien pratique pour faire cela, même si la quantité d'arguments à lui spécifier peut faire peur.
[guibo@xp2400 ~/]# transcode -a 0 -c 1 -x dv -i fichier.avi -y jpg -o screenshot.jpg
Il arrive parfois que les couleurs ne soient pas correctes, et que l'image soit inversée, dans ce cas-là, utiliser l'option "-V" et tout devrait rentrer dans l'ordre. Vous pouvez aussi faire des screenshots de fichiers vidéo sans préciser le format d'entrée du fichier, dans ce cas retirez l'option "-x format_vidéo".
Convertir l'image avec convert de ImageMagick
[guibo@xp2400 ~/]# convert -verbose -size 320x200 screenshot.jpg screenshot.jpg
Il vous suffira ensuite de reprendre ces images dans un document OpenOffice ou autre, pour vous faire une jaquette pour votre DVD de salon.
Une fois la capture de vos vidéos terminée, il faut faire un montage vidéo. Kino permet de faire de nombreux traitements sur la vidéo, mais nous nous intéresserons plus particulièrement à sa configuration, pour obtenir un format de sortie DVD.
lancez Kino en ouvrant toutes les vidéos que vous avez capturées :
[guibo@xp2400 ~/]# kino *.avi
Figure 3.1. vous devriez obtenir quelque chose ressemblant à ça :
Effectuez toutes les opérations nécessaires au traitement de vos vidéos. Vous trouverez la doc complète de Kino sur son site web : http://kino.schirmacher.de/article/archive/13/
Personnellement j'utilise beaucoup le "Commands/Append Movie" qui permet de fusionner les séquences vidéos (virtuellement les fichiers .avi restent inchangés). Ce qui permet de faire un regroupement des vidéos, et donc plus tard de faire des "Chapitres" pour notre futur DVD.
N'oubliez pas de sauver votre projet "File/Save As SMIL" pour pouvoir le rééditer plus simplement plus tard.
Voici la configuration que j'utilise dans kino pour obtenir mes fichiers .mpeg. J'utiliserai ensuite ces .mpeg pour créer mes .VOB du futur DVD.
Figure 3.2. Cliquez sur longlet "Export" puis "MPEG"
Ajustez votre configuration comme ci-dessus
Figure 3.3. Cliquez sur le bouton "Export"
L'exportation en format DVD se lance :-)
Vous devriez avoir les fichiers suivants dans votre répertoire :
[guibo@xp2400 ~/]# ls -1 *.mpeg dvd_out000_001.mpeg dvd_out001_001.mpeg dvd_out002_001.mpeg dvd_out003_001.mpeg dvd_out004_001.mpeg dvd_out005_001.mpeg
Ce logiciel est vraiment le couteau suisse du montage vidéo. C'est comme emacs, ça fait tout ! Je vais juste vous montrer les options qui sont intéressantes pour convertir au format DVD.
transcode supporte plusieurs profils d'exportation vidéo : --export_prof. Il suffit de lui préciser lequel utiliser, dans notre cas le profil dvd.
[guibo@xp2400 ~/]# transcode -a 0 -i nom_video.avi -Q 5,5 -o fichier_converti -I 3 --export_prof dvd
Cette méthode fonctionne très bien, mais ne donne pas à mon gout un très bon résultat comparé à l'exportation via kino.
On utilise juste transcode comme flux d'entrée vidéo, et on l'exporte en utilisant mpeg2enc. Bon je sais la ligne de commande suivante est vraiment... comment dire, affreuse... mais croyez moi ça fonctionne parfaitement.
[guibo@xp2400 ~/]# transcode -a 0 -i nom_video.avi -w 9500 -b 224 --encode_fields b \ --export_asr 2 \ -u 10,2 -I 5 \ -F 8,'-v 0 -S 4400 -a 2 -K kvcd -q 2 -N 1' \ -y mpeg2enc,mp2enc -o fichier_converti \ --print_status 100
arguments passés à mpeg2enc :
Une fois la conversion du DV en .m2v et .mpa, on va fusionner le son et la vidéo dans un meme fichier. Pour cela on utilise mplex.
[guibo@xp2400 ~/]# mplex -v 1 -f 8 -S 4400 -o video_fini.mpeg fichier_converti.m2v fichier_converti.mpa
Ce logiciel permet de créer votre DVD avec les chapitres pour chaque fichiers .mpeg.
Maintenant il s'agit de construire la structure des répertoires du DVD. Placez-vous dans le répertoire où il y a les fichiers .mpeg et tapez :
[guibo@xp2400 ~/]# dvddirgen -o dvd -r
Il semblerait que sur les dernières versions de dvdauthor, l'utilisation de dvddirgen ne soit plus obligatoire, donc s'il ne crée pas le répertoire désiré (dvd dans notre cas), passez à l'étape suivante.
Maintenant nous allons créer les .VOB à partir des .mpeg de notre répertoire.
[guibo@xp2400 ~/]# dvdauthor -o dvd *.mpeg
dvdauthor va créer automatiquement un chapitre par .mpeg dans votre répertoire.
Pour finir nous allons créer la TOC de notre DVD, qui permettra de savoir où se trouve quel chapitre. En fait cela va fabriquer les fichiers vidéo_TS.BUP et vidéo_TS.IFO.
[guibo@xp2400 ~/]# dvdauthor -T -o dvd
J'ai longtemps cherché un logiciel capable de m'aider dans la création de menu interactif sur un DVD. qdvdauthor, bien qu'en release alpha, permet de le faire assez simplement. Il faudra faire quelques modifications à la main pour ajuster la configuration, mais il est très pratique pour créer le menu, avec un image en arrière-plan, et ajouter des boutons pour aller directement au chapitre voulu./p>
Nous avons désormais toute la structure de notre DVD, reste à créer l'image iso au format DVD, puis la graver, et la tester sur votre platine salon. Nous allons utiliser mkisofs pour créer cette image iso.
[guibo@xp2400 ~/]# mkisofs -o /tmp/dvdvideo.iso -V NOMVOLUME -dvd-video repertoire_dvd
Nous allons maintenant vérifier que notre iso contient la bonne structure de répertoires et les bons fichiers.
[guibo@xp2400 ~/]# isoinfo -l -i /tmp/dvdvideo.iso Directory listing of / d--------- 0 0 0 2048 Nov 14 2003 [ 275 02] . d--------- 0 0 0 2048 Nov 14 2003 [ 275 02] .. d--------- 0 0 0 2048 Nov 14 2003 [ 277 02] AUDIO_TS d--------- 0 0 0 2048 Nov 14 2003 [ 276 02] vidéo_TS Directory listing of /AUDIO_TS/ d--------- 0 0 0 2048 Nov 14 2003 [ 277 02] . d--------- 0 0 0 2048 Nov 14 2003 [ 275 02] .. Directory listing of /vidéo_TS/ d--------- 0 0 0 2048 Nov 14 2003 [ 276 02] . d--------- 0 0 0 2048 Nov 14 2003 [ 275 02] .. ---------- 0 0 0 6144 Nov 14 2003 [ 281 00] vidéo_TS.BUP;1 ---------- 0 0 0 6144 Nov 14 2003 [ 278 00] vidéo_TS.IFO;1 ---------- 0 0 0 28672 Nov 14 2003 [ 832133 00] VTS_01_0.BUP;1 ---------- 0 0 0 28672 Nov 14 2003 [ 284 00] VTS_01_0.IFO;1 ---------- 0 0 0 1073709056 Nov 14 2003 [ 298 00] VTS_01_1.VOB;1 ---------- 0 0 0 629889024 Nov 14 2003 [ 524570 00] VTS_01_2.VOB;1
Il est très désagréable de graver une image iso non compatible DVD sur votre platine salon, surtout que même si le prix des DVD a baissé, il reste non négligeable. Voila donc comment tester votre DVD, en faisant croire à xine, mplayer ou ogle (en fait n'importe quel player de DVD linux) qu'il s'agit d'un DVD inséré dans votre lecteur.
Tout d'abord repérer quel périphérique pointe vers votre lecteur de DVD, pour pouvoir le restaurer ensuite :
[guibo@xp2400 ~/]# ls -la /dev/dvd lr-xr-xr-x 1 root root 30 Jun 25 19 :48 /dev/dvd -> ide/host0/bus1/target0/lun0/cd
Notre lecteur DVD pointe donc vers ide/host0/bus1/target0/lun0/cd qui n'est autre que /dev/hdc comme nous le confirmera un :
[guibo@xp2400 ~/]# dmesg | grep -i dvd
Ensuite effectuer ces manipulations pour faire croire à un DVD inséré dans votre lecteur DVD :
[root@xp2400 ~/]# mkdir /mnt/dvd_test/ [root@xp2400 ~/]# mount /tmp/dvdvideo.iso /mnt/dvd_test/ -o loop [root@xp2400 ~/]# ln -sf /mnt/dvd_test /dev/dvd
Lancez xine et cliquez sur DVD ou ogle ou tout autre player DVD sous linux , et vous devriez normalement être capable de parcourir les chapitres de votre futur DVD de salon. C'est que votre iso est bonne à être gravée. Nous allons désormais démonter l'image iso, et rétablir le lien /dev/dvd pour qu'il pointe de nouveau sur le bon device. Cette manipulation nécessite d'être root.
[root@xp2400 ~/]# umount /mnt/dvd_test/ [root@xp2400 ~/]# ln -sf /dev/ide/host0/bus1/target0/lun0/cd /dev/dvd
Et voila, il ne nous reste plus qu'à graver cette image iso :-)
L'ultime étape consiste à graver cette iso, puis à la tester. Pour cela j'utilise les outils de dvd+rw-tools. Il existe aussi k3b-dvd qui est très pratique et fonctionne parfaitement bien pour graver CD/DVD. A noter que si vous gravez l'iso sur un DVD+RW (DVD réinscriptibles), certains lecteurs de DVD ne les supportent pas.
[guibo@xp2400 ~/]# growisofs -Z /dev/scd0=/tmp/dvdvideo.iso
Voila c'est fini. Vous Pouvez courrir vers votre Platine DVD de salon pour tester :-) J'espère que tous s'est bien déroulé. N'oubliez pas de me contacter en cas d'oublis, erreurs ou tout simplement si vous avez aimé.
par Jean-Claude Noël
Une traduction de la page originale pour l'installation et l'utilisation d'iRATE Radio.
Si vous souhaitez légalement télécharger, copier, diffuser, écouter à volonter de la musique au format mp3, iRATE Radio est fait pour vous. Des artistes déposent librement des musiques de leur composition et grâce à iRATE vous allez pouvoir les découvrir. Ne vous attendez pas à trouver les morceaux habituellement diffusés sur les médias conventionnels (radio et TV commerciales, etc..), exit star'ac et Cie ;-).
Par un système d'évaluation lorsque vous porterez un jugement sur les titres téléchargés, le logiciel iRATE essayera de vous satisfaire en vous téléchargeant et vous diffusant d'autres titres MP3 selon vos goûts.
Profitez en !!!! Et si vous trouvez des artistes qui vous plaisent ... un p'tit coup de google pour trouvez le site de l'artiste et creuser d'avantage ;-)
Ci-dessous, vous allez trouvez la traduction adaptée de la documentation d'iRATE Radio avec parfois quelques annotations personnelles. Je précise d'ores et déjà que mon expérience se limite à une installation de irate-client-gtk dans sa version 0.3-2 sous GNU/Linux Debian Sarge. Je n'ai pas essayé sur les autres distributions mais cela ne devrait pas être très différent. Quant à l'O.S. non libre,désolé,aucun risque de me voir tenter l'installation.
Commencer par vous procurer le logiciel iRATE Radio.
Vous pouvez le télécharger depuis http://irate.sourceforge.net/.
Cette page est une traduction adaptée de l'original. La documentation (anglaise) a été écrite par Fred Reiss et se trouve sur http://irate.sourceforge.net/documentation.gettingstarted.html.
Ce tutorial vous indique comment télécharger, installer, et commencer à écouter la radio iRATE.
La radio iRATE est un système de client serveur. C'est un programme qui sert a appeler les téléchargements des clients iRATE et qui joue les MP3s, alors que le serveur iRATE maintient les rapports entre les préférences d'écoute des utilisateurs. Le client demande au serveur une liste des titres MP3 et télécharge ces titres de leurs emplacements respectifs :
Pour écouter la radio iRATE, les différents utilisateurs téléchargent le programme de client iRATE sur leur ordinateur. Quand le client est installé, il entre en contact avec le serveur iRATE via Internet et demande pour audition une liste de chansons susceptibles d'intéresser l'utilisateur.
Il y a deux manières d'installer le client iRATE. La manière la plus traditionnelle est de télécharger le paquetage sur votre ordinateur et de l'installer. Alternativement, vous pouvez employer l'outil "web start" de sun pour installer iRATE.
Si vous utilisez Windows, sautez cette section ; vous devrez employer l'outil "start of web" pour installer le client iRATE.
Si vous utilisez un autre système d'exploitation que windows, vous devriez pouvoir trouver les binaires précompilés de iRATE sur le site Web d'iRATE, sous le "Download" (téléchargement).
L'équipe iRATE édite trois versions du client :
Si c'est votre première utilisation d' iRATE, nous vous recommandons de commençer par la version "stable".
Personnellement, j'ai installé la "testing" depuis http://irate.sourceforge.net/download.testing.html
Faites défiler vers le bas l'ascenseur jusqu'à la section "Native SWT Client" de la page de téléchargement et localisez le téléchargement approprié pour votre logiciel d'exploitation. Ce que vous faites après, dépend de ce que votre système d'exploitation ou votre distribution vous demande.
Si vous utilisez Mac OSX, il y a seulement un dossier à télécharger. Placé sous la section d'"OSX" de la page de téléchargements, ce dossier est une image disque. Pour installer iRATE de cette image disque, faites ce qui suit:
Double-clic sur le dossier d'image disque pour le monter.
Un "disque" virtuel devrait apparaître sur votre de bureau, marqué "RATE client", ou quelque chose de semblable. Ouvrez le disque et copiez les dossiers dans votre chemise d'applications.
Si vous utilisez Debian/GNU Linux, faites défiler l'ascenseur vers le bas jusqu'à la partie
appropriée de la page de téléchargement iRATE et trouvez votre version de Debian. Ajoutez la ligne qui
devrait ressembler à quelque chose comme
deb http://members.westnet.com.au/takahe/debian/stable woody main
dans le dossier :
/etc/apt/sources.list
.
Alors vous devriez pouvoir lancer dans une console la commande (en tant qu'utilisateur "root"):
apt-get install irate-client-gtk
Si vous utilisez une distribution de GNU/Linux basé sur les RPM (Red hat Linux, Fedora Linux, ou Mandrake Linux), téléchargez les paquetages appropriés en RPM pour votre version de Linux. Il y a trois RPMs pour le Red Hat et Fedora Linux, et deux RPMs pour Mandrake. Installez alors les paquets par la commande en ligne :
rpm -ivh [ les noms de paquetages vont ici ]
Vous pouvez employer l'outil java "start of web" de Sun. Pour simplifier, installez le client iRATE sur votre ordinateur et maintenez votre client iRATE à jour. La première étape de l'installation par l'intermédiaire de l'outil "start of web" est de télécharger et d'installer la version Java de Sun. Le Canadian Mind Products a un glossaire Java avec une bonne description de l'outil java "start of web". Gardez à l'esprit que vous pouvez avoir besoin de redémarrer votre ordinateur après installation de Java. Une fois que Java est installé, vous devriez pouvoir télécharger iRATE de la page de téléchargement et utiliser le client iRATE. Cliquez sur l'icône qui ressemble à ceci :
Le client iRATE devrait télécharger, installer, et commencer automatiquement.
Si vous avez téléchargez et installez le client iRATE d'un paquetage, vous devriez pouvoir le démarrer de l'une ou l'autre des deux manières :
Lancez "le client iRATE" du menu d'applications dans GNOME ou KDE. Le menu d'applications devrait être
situé dans le coin gauche inférieur de votre écran. Ouvrez un terminal dans une fenêtre et selon le site officiel taper: iRATE-client-gtk
Taper plutôt irate-client
qui fonctionne chez moi contrairement à la commande précédente.
Si vous avez utilisé l'outil "start of web" pour installer iRATE, le client devrait avoir commencé automatiquement.
Quand vous lancez le client iRATE pour la première fois, vous devez voir quelque chose comme ceci :
Afin de maintenir vos préférences en musique, la radio iRATE exige que vous créez un compte Account
(nom d'utilisateur) unique
pour vous-même. Chaque fois que vous démarrerez le client iRATE, il utilisera votre nom d'utilisateur pour
rechercher vos préférences. La radio iRATE se rappelle automatiquement de votre nom d'utilisateur, ainsi
vous n'aurez pas à le ressaisir à chaque fois que vous relancerez l'application. Quand vous cliquez sur le
bouton next
dans l'écran de bienvenue, la boîte de dialogue suivante doit apparaître :
Choisissez un nom d'utilisateur pour vous-même et un mot de passe. Changez le nom d'utilisateur en Account
inscrit par défaut dans la boîte de dialogue ainsi que le mot de passe dans le champ Password
.
Les autres arrangements à cette page sont pour les experts seulement. Il peut être intéressant de modifier
le chemin Directory
du répertoire dans lequel on désire stocker les fichiers téléchargés.
Dans ce cas utilisez le bouton Browse
.
IMPORTANT: N'employez pas un mot de passe valable, tel que votre mot de passe d'ouverture de Linux !
ASTUCE: Je vous conseille de garder une trace du nom de compte et du mot de passe sur un calepin. Ainsi, si vous réinstallez votre Linux (peu probable ;-)), ou si vous utilisez iRATE Radio sur une autre machine (très probable),vous pouvez utilisez le même compte et vous ne téléchargerez pas deux fois les mêmes titres.
Lorsque la boîte de dialogue est remplie, un clic sur Next
suffit pour commencer à obtenir de la musique !
Si vous n'arrivez pas à vous connectez, c'est probablement parce que le nom de compte que vous avez choisi est déjà utilisé par quelqu'un d'autre. La correspondance nom-de-compte + mot-de-passe n'est pas valide et le serveur vous refuse l'accès. Choisissez un autre nom de compte et tout devrait rentrer dans l'ordre.
Une fois que vous avez lancé iRATE et avez créé un nom d'utilisateur, vous devriez voir l'écran principal:
Selon la version du client installée, vous pouvez voir un écran principal légèrement différent.
La radio iRATE choisit parmi une collection de titres MP3 qu'elle pense que vous pourriez aimer en téléchargeant ces titres sur votre ordinateur pour que vous puissiez ensuite les écouter. Votre playlist contient une liste de tous les titres que iRATE a choisi pour vous:
Pour chaque titre musical, le playlist montre l'information suivante:
Artist
.Track
.Rating
indique Not downloaded
.Rating
indique Unrated
si vous n'avez pas encore porté de jugement pour ce titre.Rating
indique ce jugement. (voir Rating Music estimation si dessous).Plays
.Plays
.Double-cliquer sur un titre et iRATE jouera ce titre.
NOTE : Si iRATE n'a pas encore téléchargé un titre particulier sur votre ordinateur, double-cliquer n'aura aucun effet.
La radio iRATE essaye de télécharger des titres que vous aurez plaisir à entendre. Pour faire les choix intelligents des titres à télécharger, iRATE a besoin de savoir ce que vous pensez de la musique qui a été joué pour vous jusqu'ici.
Sur le client iRATE l'écran principal a une rangée de boutons d'estimation:
Utilisez ces boutons pour voter et dire à iRATE ce que vous pensez du titre qu'il joue actuellement. iRATE se base sur ces estimations pour télécharger de nouveaux titres. Il va également utiliser ces estimations pour choisir de préférence le titre qu'il va jouer pour vous sur votre ordinateur.
NOTE : Si vous évaluez un titre This Sux
, alors iRATE enlève ce titre de votre playlist, et vous n'entendrez
plus jamais ce titre. Si vous changez d'avis au sujet d'une évaluation This Sux
, vous pouvez défaire
l'estimation en choisissant Undo last rating
(défaire la dernière estimation) du menu Action
.
NOTE : Si un titre ne joue pas actuellement, vous pouvez encore changer son estimation par un clic-droit sur la rangée appropriée du playlist.
Le client iRATE télécharge automatiquement les titres MP3 en fond de tâche. Vous pouvez visualiser une barre de progression en bas de la fenêtre principale d'iRATE:
Ne vous inquiétez pas de fermer le client alors qu'il est en train de télécharger un dossier! Si vous stoppez le client iRATE avant que le client n'ait fini un téléchargement, iRATE fera un résumé du téléchargement la prochaine fois que vous lancerez le client.
Dès qu'il téléchargera son premier titre, le client iRATE commencera automatiquement à jouer la musique pour vous. Vous pouvez commander le playback de la musique en utilisant les commandes localisées ici:
iRATE se rappelle quels titres il a joué depuis que vous avez démarré le client:
< <
vous laisse sauter au titre précédemment joué.>>
saute au prochain titre (aléatoirement choisi).||
.L'écran principal a également une commande de volume:
Les titres téléchargés ne proviennent pas de la même source et ont par conséquent des niveaux sonores différents. Déplacez ce glisseur vers la droite pour augmenter le volume, ou vers la gauche pour le diminuer. Ce niveau de volume est stocké pour le titre actuellement en lecture. Employez votre commande de volume de système si vous voulez juste ajuster le niveau de volume normalement.
Voilà, c'est terminé. Profitez en bien ;-)
Fin du chapitre