LéaBook, Chapitre :
Logiciels
par tous les amis de Léa
Le copyright de chaque article est détenu
par son auteur.
Le copyright du livre lui-même est détenu par Léa
(Association Loi 1901).
Les articles de ce livre sont diffusés selon la license GPL (GNU
General Public License), sauf mention explicite dans l'article.
Copyright (c) 2003 Association Léa.
This documentation is free documentation; you can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This documentation is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of
the GNU General Public License along with this program; if not,
write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
MA 02139, USA.
For the purpose of applying the GPL to this document, I
consider "source code" to refer to the html source.
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 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 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 tomsrtbtLa mini-distribution de Tom Oehser se propose donc d'offrir le maximum sur le support minimum, et son appellation Tomsrtbt peut se comprendre comme : Tom(')s r(oo)t b(oo)t. Ceci peut se traduire (assez peu élégamment) par : la disquette amorçable de Tom pour l'administration. Bref la Tomsrtbt est la disquette dont vous aurez besoin le jour où ... vous ne parviendrez plus à démarrer votre système et où il vous faudra intervenir en urgence ... ne serait-ce que pour sauvegarder vos fichiers les plus importants avant de devoir tout réinstaller :-(
La version dont nous allons parler ici est la 1.7.361. Aucune configuration minimale n'est mentionnée pour son fonctionnement. Des tests sur un 486 33 Mhz avec 12 Mo de RAM n'ont posés aucun problème (pas de problème non plus bien sûr sur des configurations plus performantes). On peut cependant penser que la configuration minimale pour son utilisation doit être un 386 disposant de 4 Mo de RAM. Dans un tel cas, l'occupation de la RAM serait bien sûr différente de celle décrite ici un peu plus bas.
Creation de la disquette
Avant toute chose, il vous faut bien sûr vous procurer cette distribution ou plus exactement le fichier qui vous permettra de créer sa disquette. Pour ce faire, aller sur le site de Tom : http://www.toms.net/. Suivez le lien Tomsrtbt puis choisissez un site de téléchargement. Pour créer la disquette à partir de Linux, téléchargez le fichier : tomsrtbt-1.7.361.tar.gz
Maintenant que vous possédez ce fichier, effectuez les opérations suivantes.
1) Logez-vous comme administrateur avec la commande : su
2) Extrayez les fichiers de l'archive compressée en utilisant : tar -xvzf tomsrtbt-1.7.361.tar.gz. Notez que ceci crée le répertoire tomsrtbt-1.7.361.
3) Placez-vous dans le répertoire ainsi créé : cd tomsrtbt-1.7.361. Ce répertoire contient maintenant les fichiers suivants : buildit.s, clone.s, fdflush.s, fdformat, install.s, licence.html, settings.s, tomsrtbt.FAQ, tomsrtbt.raw et unpack.s.
4) Introduisez une disquette (vierge, sans défaut, 1.44 Mo) dans le premier lecteur de disquette (fd0).
5) Entrez : ./install.s
6) Patientez un peu ... Après formatage à 1.722 Mo et vérification, puis copie de l'image et vérification, vous êtes normalement maintenant en possession d'une Tomsrtbt.Si vous souhaitez vérifier ce que contient cette disquette, et que vous n'obtenez qu'un message d'erreur, démontez si nécessaire votre lecteur de disquettes avec la commande : umount /mnt/floppy ; puis montez-le avec la commande : mount /dev/fd0u1722 /mnt/floppy (tout ceci en admettant que vous ayez un répertoire /mnt/floppy destiné à cet usage). Vous devriez maintenant constater qu'elle contient les cinq fichiers suivants : boot.b, map, rc.custom.gz, settings.s et zImage.
NB : Vous pouvez également créer cette disquette à partir de Windows. Comme je ne l'ai pas fait, je n'en parlerai pas plus, et vous renvoie pour cela à la FAQ de la Tomsrtbt ... Et oui, il fallait y penser avant :-p
Démarrage
Comme elle réside en RAM, la Tomsrtbt est une distribution que l'on installe à chaque utilisation. Ceci est des plus simple.
1) Insérez la disquette puis démarrez ou redémarrez votre ordinateur.
2) A l'invite boot, appuyez sur <Enter>
3) Au message vous invitant à choisir votre résolution d'écran, appuyez sur <Enter> si vous voulez consulter les choix possibles, puis entrez le numéro correspondant à votre choix. Si vous souhaitez utiliser le classique 80 x 25 (numéro 0) vous pouvez aussi plus simplement appuyer sur <Space> au lieu de <Enter> car ce choix est le choix par défaut.
4) A l'écran vous présentant les choix possibles pour votre clavier, entrez le numéro 16 correspondant au clavier fr. Attention le numéro 1, clavier azerty, n'est pas le meilleurs choix pour un clavier français, et le choix par défaut correspond à un clavier qwerty.
5) A l'invite de login, entrez : root ; puis le mot de passe par défaut : xxxx
6) Retirez la disquette, vous êtes maintenant sous Linux en tant que root.Des commentaires vous guident tout au long de cette phase de démarrage / installation. Faites particulièrement attention lors du choix du clavier, si vous commettez une erreur n'hésitez pas à recommencer l'installation : cette option de la Tomsrtbt est un de ses points forts, vous n'aurez pas à entrer ",qn qsh" pour obtenir la page man ash :-)
Aperçu
Attention : maintenant que vous allez commencer à utiliser cette disquette, souvenez-vous que vous êtes root, pour le meilleur et pour le pire ! Aucune protection même minime (du type alias rm='rm -i') n'est prévue. Bien sûr vous êtes seul responsable de ce que vous ferez.Les quelques lignes de commandes proposées ci-dessous, bien que normalement totalement inoffensives, peuvent engendrer un plantage de votre système dû, par exemple, à la saturation du répertoire racine (voir plus bas). Mais bon ... je ne suis pas un expert et, pour une fois, je n'ai rien cassé lors de mes essais ... alors continuons.
La Tomsrtbt utilise le shell ash (et non l'habituel bash) et les librairies libc5. Elle propose quatre consoles texte classiquement accessibles par <Alt>+<F1> à <F4>. Elle s'installe en RAM de la façon suivante (commande mount) :
/dev/ram0 : répertoire / de type minix
/dev/ram1 : répertoire /usr de type minix
/dev/ram3 : répertoire /tmp de type minix
Notons juste ici que le système de fichiers utilisé n'est pas l'habituel ext2 mais minix.
(Note de Jicé : minix est plus adapté que ext2 pour des petits systèmes de fichiers, comme une disquette, ou ici pour de petits RAM-disks).La taille et l'espace occupé pour ces répertoires sont les suivants (commande df) :
répertoire / : 694 Ko utilisés à 98%
répertoire /usr : 2 387 Ko utilisés à 96%
répertoire /tmp : 4 049 Ko utilisés à 0%
En réalité la taille du répertoire /tmp dépend de la quantité de RAM disponible. Le plus petit répertoire /tmp que j'ai obtenu ne faisait que 249 Ko utilisés à 0%.Les répertoires / et /usr étant remplis, il vous faudra, si vous souhaitez stocker temporairement des fichiers, soit utiliser le répertoire /tmp soit créer, par exemple, un répertoire /home (ou /root) en /dev/ram4 (si votre ordinateur dispose d'une marge de RAM suffisante par rapport à celle déjà utilisée).
Pour créer ce répertoire, procédez ainsi :
1) créez un système de fichier de type minix en ram4 : mkfs.minix /dev/ram4
2) créez le répertoire /home : mkdir /home
3) montez ce répertoire : mount /dev/ram4 /homeVous 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/linuxTout 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 !
Nasgaïa GNU/Linux
Future distribution GNU/Linux francaise.
Nasgaïa est un projet de distribution GNU/Linux qui a pris naissance dans le cerveau de Martial sous le nom de Domino, puis a vu le jour sur les forums de Léa. Rien d'étonnant donc si son équipe de départ est essentiellement composée de fervents Léatiens : Martial bien sûr, mais aussi Michel, Arnaud, Jonesy et Marc. Mais, au-delà de ce qui précède, Nasgaïa est en fait tout simplement l'envie de quelques passionnés de créer leur propre distribution et, pour les moins techniciens d'entre eux, de participer d'une façon ou d'une autre à cette création.
L'esprit
Plusieurs aspects sont ici prépondérants mais le premier d'entre eux est l'aspect humain, comme en témoigne le premier des articles de la Charte du projet : La personne humaine passe avant tout. Chacun travaille selon ses compétences, ses envies et le temps dont il dispose. Il reste donc autant que possible libre dans sa participation qui, cela va de soi, ne saurait être que volontaire et bénévole. Les décisions concernant les grands axes à adopter sont prises en commun et en public, tout simplement sur les forums du site ou sur quelque chat.
L'aspect légal n'est pas à négliger non plus. D'une façon générale, Nasgaïa a opté pour la licence GPL pour tout ce qui concerne les sources et pour la licence FDL pour ce qui est des documents (ceci ne concerne bien sûr que les créations, les licences originales des logiciels et documents inclus étant naturellement conservées). Cependant si un participant le souhaite, il peut opter pour une autre licence tant que celle-ci reste conforme à l'esprit du Libre. Pour résumer on peut dire que, si chacun reste le propriétaire de son travail, il le met volontiers et gracieusement à la disposition de tous.
Le dernier aspect que nous entreverrons, fondamental lui aussi, est l'aspect technique. Le principal objectif est ici de faire le plus simple et le plus compréhensible possible, sans préjuger des intentions de l'utilisateur et donc sans ne rien lui imposer d'office. Le point de départ de Nasgaïa est une LFS, mais sa version finale ne devrait tout de même pas être aussi minimaliste qu'une LFS ! Elle se veut une distribution générique, relativement accessible et donnant une base solide et sécurisée dans les domaines d'utilisation les plus courants tels l'internet, les réseaux, le développement ou le multimédia. Notons également que Nasgaïa est totalement optimisée i686 ce qui signifie que son fonctionnement nécessite au minimum un processeur Pentium II ou compatible, ceci afin d'obtenir une distribution non seulement stable mais rapide. Pour l'instant, bien que déjà évoqué, aucun portage n'est réellement prévu vers d'autres plateformes.La distribution
Nasgaïa s'est fixée un certain nombre d'objectifs précis. La distribution doit tenir sur un seul cdrom, sources incluses, et donc offrir un choix raisonné de programmes dans leur version la plus récente possible. Elle inclut également le dernier noyau stable, non patché et très modulaire, un support ext2, ext3 et reiserfs, devfs et devfsd, une organisation du système de fichiers claire et logique. Un programme d'installation et de configuration, alliant autant que faire se peut légèreté et efficacité, est prévu. Il reste cependant à écrire ou à trouver : diverses possibilités sont à l'étude à ce jour. Le système de paquets spécifique (les .nba) est déjà fonctionnel dans ses grandes lignes. Celui-ci facilite la gestion, installation, désinstallations des programmes sans toutefois gérer les dépendances qui seront signalées.Les programmes fournis sont presque exclusivement sous licence GPL, ou autres licences conformes à cet esprit, et accompagnés de leurs sources originales. Une sélection a été faite afin d'éviter au maximum les redondances inutiles et de ne proposer que ceux qui, à notre avis, offre le meilleur rapport simplicité / qualité / performance. Ces programmes sont installés en incluant leur aspect développement, comme si l'utilisateur les avait lui-même compilés.
Côté console on trouve notamment : vim, mc, sendmail, fetchmail, pine, w3m... Bref tout ce qu'il faut pour gérer confortablement son pc, se connecter ou encore effectuer des tâches réseau (firewall, passerelle, etc) ou de développement. Côté graphique les programmes précédents peuvent bien sûr tourner dans un xterm, un aterm ou encore un gnome-terminal puisque l'environnement de bureau Gnome est inclus dans Nasgaïa. Cet environnement y est d'ailleurs accompagné de quelques gestionnaires de fenêtres incontournables tels wmaker, e16, fluxbox ou icewm. Pour les inconditionnels de twm, ils pourront aussi s'ils le souhaitent, continuer à l'utiliser. Dès lors, pour occuper dignement tous ces sympathiques gestionnaires, notons dans la liste des programmes au programme : nedit, rox-filer, sylpheed, galeon, mozilla, xchat, gimp, xmms, xcdroast, mplayer... Enfin la connexion internet devrait être simplifiée au maximum, Nasgaïa offrant notamment un support pour les cas particuliers les plus répandus tels que AOL avec pengaol ou l'ADSL speedtouch USB avec les drivers de B. Papillault, sans oublier bien sûr les modems classiques avec ppp.
Mais, vous l'avez sans doute remarqué, l'environnement de bureau KDE est le grand absent de ce qui précède. En effet les environnements Gnome et KDE offrent pour une large part les mêmes services ; dans ce cadre Gnome a été préféré pour des raisons d'universalité, de performances et parfois de licences. Cependant que les amateurs de KDE se rassurent, si celui-ci ne figure pas sur le cdrom, il devrait être téléchargeable sous forme de paquets nba et donc très facilement installable. D'autre part les outils de développement de Nasgaïa seront simplifiés et mis à disposition. Chacun pourra ainsi créer aisément ses propres paquets nba et, n'en doutons pas, se fera un plaisir de les mettre à la disposition de tous les Nasgaéens. Mais il faut bien l'avouer, cet aspect du programme Nasgaïa, par ailleurs très généreusement hébergé par la Tux Family, souffre encore aujourd'hui d'un manque cruel : un serveur FTP !Bien sûr une documentation minimale accompagne tous ces jolis programmes. Les inénarrables pages man en français, quand elles existent. L'incontournable, indescriptible, seul et unique Léa-Book, pour répondre à toutes les questions concernant les aspects généraux de GNU/Linux. Un modeste Nasgaïa-Book (encore à rédiger, avis aux amateurs) traitant des points les plus spécifiques de Nasgaïa : installation, configuration, gestion des paquets...
Et vous ?
Si ce qui précède n'a pas satisfait totalement votre curiosité mais l'a mise en éveil, tant mieux ! Nasgaïa évolue rapidement et, à vouloir être trop précis, il faudrait réécrire cet article chaque semaine. Vous souhaitez toutefois en savoir plus, connaître l'état d'avancement de ce projet, nous dire un petit bonjour ? Rendez-vous donc sur le site de Nasgaïa, consultez la page équipe, la charte, la liste des programmes, les forums de développement, enfin tout ce que vous voulez puis laissez nous un gentil message sur le forum Visiteurs. N'hésitez pas ! Une petite remarque, un simple avis peut nous être très utile, cela a déjà été plusieurs fois le cas. Vous aimeriez participer plus activement ? Quelles que soient vos compétences et le temps dont vous disposez votre aide est la bienvenue : rédacteur, graphiste, testeur, programmeur ou simple inspecteur des travaux finis ?A vous de choisir et à bientôt.
Note : cet article a été rédigé dans le cadre du partenariat entre Léa-Linux et Nasgaïa. Toute l'équipe de Nasgaïa remercie donc vivement son amie Léa pour son soutien et lui souhaite bonheur, prospérité et longue vie.
Note de Léa : houlala je suis toute rouge :-)
Utilisation de 'webcam'
Ahmed Rahal dit R-Daneel
Utilisation du programme 'webcam'
Présentation
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':
Configuration
bash-2.05a$ ls -l .webcamrc
-rw-r--r-- 1 r-daneel users 622 mar 17 01:26 .webcamrcvoici 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 Ginies
Ce document a pour but d'expliquer comment faire un DVD lisible sur un lecteur DVD de salon à partir d'une camera mini-dv.
Ce document a été créé en utilisant XML Docbook http://www.oasis-open.org/.
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 dis que créer une doc en français regroupant toutes les informations serait une bonne idée.
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 double), en , 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 camescope :-)
J'utilise Mandrake Linux 9.2 avec la suite de logiciels suivant qui me permet de faire : la capture, le montage vidéo, la conversion au format DVD, et finallement 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 camescope, en voici une, et j'attends les retours d'expérience, 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 marchera pas :-( La plupart des ditributions ont le support ieee1394.
Charger les modules necessaires
modprobe ohci1394
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 cela 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écuperer en ligne de commande la vidéo de votre mini-dv. Ce logiciel est assez simple d'utilisation. Utilisez la version 1.3 qui est interactive et très intuitive d'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 cassete au début, puis c pour lancer la capture. Cela prendra le temps d'enregitrement de votre vidéo (soit une heure pour une cassete complète)
-i
: mode interactif lecture et capture vidéo--format dv2
: sauve en utilisant le format "Type 2 DV"--timestamp
: ajoute la date et l'heure sur le fichier--autosplit
: crée un nouveau fichier à chaque séquence vidéooutfile
: nom de base du fichier d'enregistrementCela 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.
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
transcode -a 0 -c 1 -x dv -i fichier.avi -y jpg -o screenshot.jpg
"-a 0"
: channel audio à extraire"-c 1"
: convertir seulement une image"-x dv"
: définir le type de fichier à convertir"-i "
: nom du fichier à convertir"-y jpg"
: type de format de sortie"-o"
: fichier de sortieIl arrive parfois que les couleurs ne soient pas correctes, et que l'image soit inverse, dans ce cas-là utiliser l'option
"-V"
et tout devrait rentrer dans l'ordre. Vous pouvez aussi faire des screenshots de fichier
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
convert -verbose -size 320x200 screenshot.jpg screenshot.jpg
"-verbose"
: expliquer ce qu'il effectue"-size"
: definir la taille 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 :
kino *.avi
Figure3.1. Vous devriez obtenir quelque chose ressemblant à cela :
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 reste inchange). Ceci 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 ses .mpeg pour créer mes .VOB du futur DVD.
Figure3.2. Cliquez sur longlet "Export" puis "MPEG"
Ajustez votre configuration comme ci-dessus
"-v 1"
niveau de log normal"-q 2"
Image data quantisation factor (1 est la meilleure qualité)"-M 0"
active le multi-threading (mettre 1 ou plus si vous avez plusieurs CPU)"-v 1"
niveau de log normal"-b 230"
spécifie le decoder buffers en kB"-V"
Multiplex variable bit-rate vidéo"-f 8"
se met automatiquement, ne PAS rajouter cette optionFigure3.3. Cliquez sur le bouton "Export"
L'exportation en format DVD se lance :-)
Vous devriez avoir les fichiers suivant dans votre répertoire:
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 permet de créer votre DVD avec les chapitres pour chaque fichiers .mpeg.
Maintenant il s'agit de contruire la structure des répertoires du DVD. Placez-vous dans le répertoire où il y a les fichiers .mpeg et tapez :
dvddirgen -o dvd -r
"-o"
: crée la structure du répertoire du DVD"-r"
: efface l'ancien répertoire dvd Maintenant nous allons créer les .VOB à partir des .mpeg de notre répertoire.
dvdauthor -o dvd *.mpeg
"-o"
: spécifie d'utiliser le répertoire dvddvdauthor 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 VIDEO_TS.BUP et VIDEO_TS.IFO.
dvdauthor -T -o dvd
"-T"
: crée la TOC du DVD (table of content)Nous avons désormais toute la structure de notre DVD, reste à créer l'image iso
au format DVD, puis de la graver, et de tester sur votre platine salon. Nous allons utiliser
mkisofs
pour créer cette image iso.
mkisofs -o /tmp/dvdvidéo.iso -V NOMVOLUME -dvd-vidéo repertoire_dvd
"-o"
: spécifie où stocker l'image iso (ici /tmp/dvdvidéo.iso)"-V"
: nom du volume sur le futur DVD"-dvd-vidéo"
: option obligatoire pour avoir une iso DVD"repertoire_dvd"
: emplacement du répertoire où se trouvent les fichiers du futur DVDNous allons maintenant vérifier que notre iso contient la bonne structure de répertoires et les bons fichiers.
isoinfo -l -i /tmp/dvdvidéo.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] VIDEO_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 /VIDEO_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] VIDEO_TS.BUP;1 ---------- 0 0 0 6144 Nov 14 2003 [ 278 00] VIDEO_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
"-l"
: liste le contenu de l'iso (comme ls -lR)"-i"
: spécifie l'image isoL'ultime étape consiste à graver cette iso, puis de la tester. Pour cela j'utilise les outils de dvd+rw-tools
growisofs -Z /dev/scd0=/tmp/dvdvidéo.iso
"-Z"
: spécifie le device, et l'image iso à graverVoila c'est fini. Vous pouvez courrir vers votre platine DVD de salon pour tester :-) J'espère que tout s'est bien deroulé. N'oubliez pas de me contactez en cas d'oubli, erreur ou tout simplement si vous avez aimé.
Fin du chapitre