Lire et poster sur Usenet avec Slrn et Slrnpull
Vincent Couquiaud
Version 1.2.3
Copyright (c) 2004 Vincent Couquiaud
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts.
Table des matières
1 Introduction
Pour ceux qui n'ont jamais entendu parler de Usenet, ruez-vous sur le site de usenet-fr. Vous trouverez aussi tout le vocabulaire de Usenet sur lexique.usenet.
Slrn est un puissant lecteur de news en mode texte disponible sur de nombreux systèmes d'exploitation. Il est facile d'utilisation, léger, rapide et configurable à mort. Il supporte le scoring; c'est à dire la possibilité de noter les articles et ainsi de les filtrer. Il est possible d'étendre ses capacités avec son langage de macros S-Lang. Pour plus d'information sur Slrn, jetez-vous sur le site de Slrn. Slrn est distribué sous licence GPL.
Grâce à Slrnpull, Slrn a la possibilité de devenir un lecteur hors-ligne. Il permet aussi d'effectuer le scoring avant le téléchargement des articles; ainsi, seuls les articles qui vous intéressent seront téléchargés.
Dans la suite, on utilisera la version Linux de Slrn 0.9.8.0.
2 Installation
2.1 Pour une Mandrake 9.2
Normalement, votre distribution contient les paquetages nécessaire à l'installation de Slrn et de Slrnpull. Reportez-vous à la documentation de celle-ci si vous ne savez pas comment installer un paquetage. Par exemple, pour une Mandrake 9.2, il suffira de taper, sous l'utilisateur root, la commande urpmi slrn-pull. Pour obtenir les options de compilation de Slrn, tapez la commande slrn --version. Si ces options ne vous plaisent pas, si votre distribution ne contient pas Slrn ou si vous êtes en manque de compilation, vous pouvez toujours vous amuser à compiler Slrn vous-même.
2.2 Pour ceux qui veulent compiler
Pour télécharger les sources de Slrn, rendez-vous sur le site officiel de Slrn. Vous aurez aussi besoin de la librairie S-Lang que vous pouvez obtenir à partir de la page de téléchargement de S-Lang.
Compilons les sources de la librairie S-Lang 1.4.9. Placez-vous dans le répertoire qui a été créé lors de la décompression de l'archive contenant les sources de la librairie S-Lang. On va suivre ce qui est dit dans le fichier INSTALL.unx. On tape d'abord les deux commandes classiques ./configure et make. Pour tester l'interpréteur S-Lang, tapez ensuite la commande make runtests. La commande suivante ne peut-être effectuée que par le grand manitou; placez-vous donc sous le compte root et tapez la commande make install. L'installation a eu lieu dans les répertoires suivant:
-
/usr/local/lib/,
- /usr/local/include/,
- /usr/local/doc/.
Compilons les sources de Slrn. Placez-vous dans le répertoire qui a été créé lors de la décompression de l'archive contenant les sources de Slrn. Tapez la commande suivante:
./configure --with-slang-library=/usr/local/lib \
--with-slang-includes=/usr/local/include --with-slrnpull
Puis tapez la commande make. La commande suivante ne peut-être effectuée que par Dieu le tout puissant; placez-vous donc sous le compte root et tapez la commande make install. L'installation a eu lieu dans les répertoires suivant:
-
/usr/local/bin/,
- /usr/local/man/man1/,
- /usr/local/share/doc/,
- /usr/local/share/locale/,
- /usr/local/share/slrn/.
Affichez la variable $PATH:
echo $PATH
Si le chemin /usr/local/bin n'y figure pas, rajoutez-le. Par exemple, pour ceux qui utilise le shell Bash, ajoutez la ligne suivante dans le fichier .bash_profile dans votre répertoire $HOME:
PATH=$PATH:/usr/local/bin
export PATH
3 Configuration
3.1 Configuration de Slrn: Le fichier .slrnrc
Pour la configuration de Slrn, vous devez créer un fichier de configuration .slrnrc dans votre répertoire personnel. Slrn est livré avec un exemple de fichier de configuration sous le nom de slrn.rc; vous pourrez le dénicher dans les répertoires dont le nom commence par /usr/share/doc/slrn ou par /usr/locale/share/doc/slrn. C'est dans ces mêmes répertoires que vous trouverez le manuel de référence de Slrn qui se nomme manual.txt. Si votre distribution utilise le format RPM pour les paquetages, tapez la commande rpm -ql slrn pour obtenir l'emplacement des fichiers de Slrn.
Voici deux choses à savoir:
-
les commentaires commencent par %;
- on assigne une valeur à une variable grâce à la commande set (set nom_variable valeur).
Maintenant commençons la configuration; voici notre fichier .slrnrc; à vous de le modifier à l'aide des commentaires.
%
%% 1. Votre identité
%
% L'En-tête "From:" sera généré grâce aux trois variables suivantes:
% - username ;
% - hostname ;
% - realname.
% username est le nom qui se trouve à gauche du @
% dans votre adresse e-mail
% hostname est le nom qui se trouve à droite du @
% dans votre adresse e-mail
% realname est votre véritable nom.
set username "prenom.nom"
set hostname "fai.fr"
set realname "Prenom Nom"
%
%% 2. Paramètre du serveur (ici local avec Slrnpull)
%
% Lire les articles localement
set server_object "spool"
% Pour que Slrnpull fonctionne correctement avec Slrn,
% voici les options à placer (d'après le README de Slrnpull)
% N'oubliez pas de remplacer /home/vincent par le nom de
% votre répertoire personnel.
set spool_inn_root "/home/vincent/slrnpull"
set spool_root "/home/vincent/slrnpull/news"
set spool_nov_root "/home/vincent/slrnpull/news"
set read_active 1
set use_slrnpull 1
% Ne pas générer l'en-tête Message-ID.
% Le serveur de news distant le générera lui-même.
set generate_message_id 0
%
%% 3. Les programmes externes
%
% Votre éditeur de texte favoris
% %s est le nom du fichier
% Si vi n'est pas votre éditeur favoris,
% remplacez alors vi par le nom de votre éditeur adoré.
set editor_command "vi '%s'"
% Votre navigateur Web
% %s désigne l'URL
% En mode texte, on peut choisir Lynx, Links...
set non_Xbrowser "links '%s'"
% Sous X, on peut choisir Mozilla, Konqueror...
set Xbrowser "konqueror '%s' &"
%
%% 4. Répertoires et noms de fichiers
%
% Ici, tous les répertoires et fichiers sont relatif
% à votre répertoire personnel.
% Le fichier contenant les articles que vous avez postés
set save_posts "News/My_Posts"
% Le fichier contenant les articles qui n'ont pas pu être postés
set failed_posts_file "dead.letter"
% Le fichier définissant la notation des articles (le scoring)
set scorefile "News/Score"
% Le répertoire où tous les autres fichiers sont sauvegardés
set save_directory "News"
% Le répertoire des articles ajournés
set postpone_directory "News/postponed"
%
%% 5. Ligne affichée avant la citation
%
% %d:date, %r:nom
set followup_string "Le %d, %r a écrit :"
%
%% 6. Préférence au niveau de l'affichage
%
% Classement des articles
% Je laisse en anglais la description des différents classements.
%
% These sorting methods are available:
% If 0, do not sort. If 1, perform threading. If 2, sort by subject.
% If 3, thread then sort result by subject.
% If 4, sort by score. If 5, thread then sort by score.
% If 6, sort by score and subject.
% If 7, thread, then sort by score and subject.
% If 8, sort by date with most recent first.
% If 9, thread, then sort by date with most recent first.
% If 10, sort by date with most recent last.
% If 11, thread then sort by date with most recent last.
%
% Moi, je choisis la 9.
set sorting_method 9
% Les en-têtes que vous voulez voir.
% Laissez comme ça si vous ne savez pas.
% Lorsque vous lirez les articles dans Slrn,
% la lettre t vous permettra d'afficher tous
% les en-têtes d'un message.
visible_headers "From:,Subject:,Newsgroups:,Followup-To:,Date:"
Placez-vous dans votre répertoire personnel et tapez les commandes suivantes qui vous permettrons de créer les répertoires nécessaires:
mkdir slrnpull
mkdir News
mkdir News/postponed
Vous pouvez aussi créer un fichier pour le scoring:
touch News/Score
Quelques extras: j'ai ajouté les quelques lignes suivantes dans mon fichier .slrnrc:
% Le nom du fichier contenant ma signature.
% Faire une signature seulement si c'est utile,
% la plus courte possible (maximum 4 lignes).
set signature ".signature-slrn"
% Par défaut, 0 est affecté à la variable ; dans ce cas tous les
% articles possédant le même sujet sont placés dans la même enfilade.
% Je trouve que ce n'est pas trés pratique. Je donne donc la valeur 2
% à la variable pour que les enfilades soient basées seulement sur les
% références.
set new_subject_breaks_threads 2
% Ne pas demander de confirmation lorsqu'on quitte Slrn.
set confirm_actions 15
% Macro permettant de faire une recherche dans le corps des articles.
% Pressez la touche $ pour effectuer la recherche
interpret "search.sl"
3.2 Récupération du nom des forums
Pour récupérer le noms des forums, tapez la commande suivante:
slrn --nntp -h YOUR.NEWS.SERVER -f forums.txt --create
avec YOUR.NEWS.SERVER le nom de votre serveur de news. Par exemple, le nom de mon serveur de news est news.wanadoo.fr. Ce nom vous est normalement fournit par votre fournisseur d'accés à Internet. Si votre fournisseur ne vous propose pas d'accés aux forums de discussion de Usenet, traitez-le de scaphopode dégénéré et changez de fournisseur. Lorsque Slrn a fini la récupération des noms, il se lance. Pour l'instant, fermez-le en appuyant sur la touche q puis sur la touche o (ou y s'il demande confirmation en anglais).
forums.txt est le nom du fichier qui contiendra la liste des forums. Vous pourrez y effectuer des recherches avec vos utilitaires préférés: less, grep, sed, awk... Par exemple, si on veut le nom des forums en science de la hiérarchie fr, on frappera violemment la commande suivante:
grep "^fr\.sci" forums.txt
Chez moi, cette commande donne la réponse suivante:
fr.sci.astronomie! 1-53674
fr.sci.automatique! 1-6927
fr.sci.cogni.discussion! 1-1324
fr.sci.divers! 1-16691
fr.sci.electronique! 1-105206
fr.sci.jargon! 1-2450
fr.sci.maths! 1-78747
fr.sci.philo! 1-133519
fr.sci.geosciences! 1-4471
fr.sci.chimie! 1-14707
fr.sci.physique! 1-67179
fr.sci.astrophysique! 1-15774
fr.sci.astronomie.amateur! 1-14545
fr.sci.electrotechnique! 1-12759
fr.sci.psychologie! 1-107643
fr.sci.astronautique! 1-13939
fr.sci.paleontologie! 1-1760
fr.sci.sociologie! 1-1944
fr.sci.biologie.botanique! 1-629
fr.sci.psychanalyse! 1-6098
fr.sci.linguistique! 1-900
fr.sci.techniques! 1-110
fr.sci.techniques.domotique!
Ça fait 23 forums sur la science.
3.3 Configuration de Slrnpull
Il faut créer un fichier de configuration pour Slrnpull dans le répertoire $HOME/slrnpull/; il devra être baptisé slrnpull.conf. Slrnpull est livré avec un exemple de fichier de configuration sous le nom de slrnpull.conf; vous pourrez le dénicher dans les répertoires dont le nom commence par /usr/share/doc/slrn ou par /usr/local/share/doc/slrn/slrnpull. La syntaxe de ce fichier est tellement simple que même mon hamster serait capable de la comprendre. Je traduis en français les explications données dans le fichier d'exemple:
# Ce fichier est un modèle pour le fichier de configuration
# de slrnpull.
# Un tel fichier doit être placé dans le répertoire de spool
# de slrnpull.
# La syntaxe du fichier est trés simple.
# Toutes les lignes blanches ou commençant par un '#' sont ignorées.
# Les autres lignes sont définies par 1 à 4 champs séparées
# par un espace (bien que ce n'est pas le cas ici, tous les champs
# doivent être sur la même ligne.):
# NEWSGROUP_NAME MAX_ARTICLES_TO_RETRIEVE NUMBER_OF_DAYS_BEFORE_EXPIRE
# FETCH_HEADERS_ONLY
# Le premier champs contient le nom du forum.
# Le second champs indique le nombre d'article à rapatrier
# pour le forum;
# si sa valeur est 0,
# tous les articles disponibles de ce forum seront téléchargés.
# Notez que placer la valeur à 0 n'amène pas slrnpull à rapatrier les
# articles plus vieux que le dernier article rapatrié dans ce forum.
# Le troisième champ indique le nombre de jours,
# après le téléchargement d'un article, avant qu'il soit effacé.
# Si la valeur est 0, les articles de ce forum n'expire pas.
# Le quatrième champ peut être placé à 1 si vous voulez que
# slrnpull rapatrie seulement les en-têtes pour les nouveaux articles.
# Vous pourrez alors marquer le corps des articles individuellement
# pour le téléchargement dans slrn
# (voir README.offline pour plus de détails).
# Si un champ est blanc, ou contient le caractère '*',
# les valeurs par défaut seront alors assignées à ce champ.
# Les valeurs par défaut sont définies par une ligne dont
# le champ NEWSGROUP_NAME est placé à 'default'.
# Une telle ligne n'a une influence que pour les lignes suivantes
# et jusqu'à une nouvelle définition des valeurs par défaut.
Voici, un exemple:
# Par defaut,
# 250 articles à rapatrier et 32 jours avant expiration.
default 250 32
# Seul le premier champ a été rempli pour chacun des forums.
# Les autres champs prennent les valeurs par défaut.
fr.education.entraide.maths
fr.sci.maths
fr.comp.applications.libres
fr.comp.os.linux.annonces
fr.usenet.logiciels
4 Utilisation
4.1 Rapatrier les articles
La commande pour rapatrier les articles des forums définies dans le fichier slrnpull.conf est la suivante:
slrnpull -h host -d spooldir
où
-
host est le nom de votre serveur de news distant (Par exemple, pour Wanadoo c'est news.wanadoo.fr, pour Libertysurf c'est news.libertysurf.fr);
- spooldir est le répertoire $HOME/slrnpull/.
Cette commande envoie aussi les articles à votre serveur de news. Les articles à envoyer sont placés par Slrn dans le répertoire $HOME/slrnpull/out.going/. Les articles rejetés sont placés dans $HOME/slrnpull/out.going/rejects/.
Par exemple, moi, je dois taper la commande suivante:
slrnpull -h news.wanadoo.fr -d /home/vincent/slrnpull/
Une autre commande utile est celle provoquant l'expiration des articles; les articles devant expirer étant définis dans le fichier slrnpull.conf:
slrnpull -d spooldir --expire
Pour relever les articles, je vous conseille donc d'écrire un script shell. Par exemple, vous pouvez utiliser le script révolutionnaire suivant:
#!/bin/sh
slrnpull -d spooldir --expire
slrnpull -h host -d spooldir
Bien sûr, soyez pas débile: remplacez spooldir et host par les bonnes valeurs. N'oubliez pas de rendre exécutable votre script (chmod 744 nom_fichier).
Tapez d'abord la commande suivante:
slrn -f $HOME/.jnewsrc --create
.jnewsrc contient le nom des forums récupéré par Slrnpull ainsi que quelques renseignements supplémentaires sur ces forums. La prochaine fois que vous voudrez lancer Slrn, vous n'aurez pas à taper cette dernière commande. Il suffira de taper slrn. D'ailleurs, pour vérifier que tout marche bien, quittez Slrn(touche q) et relancez le avec la commande slrn.
Trois touches pour commencer:
-
?: affiche l'aide;
- l: affiche les forums auxquels vous vous êtes abonné;
- L: affiche les forums choisis; tapez * pour afficher tous les forums qui ont été définis dans slrnpull.conf.
Au début, vous n'êtes abonné à aucun forums; choisissez donc la lettre L. Défoncez ensuite la touche * puis envoyez un violent coup de boule sur la touche Entrée. Slrn affiche alors la liste des forums que vous avez défini dans le fichier de configuration de Slrnpull slrnpull.conf. Sur chaque ligne, un U est affiché à gauche; c'est le u de unsubscribe (non abonné). Pour vous abonner à un forum, placez-vous sur la ligne du forum à l'aide des touches fléchées puis appuyez sur la touche s. Pour vous désabonner à un forum, placez-vous sur la ligne du forum puis appuyez sur la touche u. À ceux qui se sentent paniqué à l'idée de s'abonner, ici « s'abonner » veut juste dire choisir le forum dont on veut suivre les discussions; ne confondez donc pas avec, par exemple, l'expression « s'abonner à un mensuel ». Une autre remarque: sur la dernière ligne, on trouve une liste de touches ou combinaisons de touches servant d'aide-mémoire.
Pour afficher les articles non lu d'un forum, shooter dans la touche Entrée ou la touche espace. Pour afficher tous les articles, touche Echap puis touche 4 puis touche espace. Voici une liste de touches qui vous aidera lorsque la fenêtre des articles sera affichée:
-
espace: sélectionner l'article ou faire défiler l'article vers le bas;
- b: faire défiler l'article vers le haut;
- Echap puis flèche du bas: faire défiler l'article vers le bas d'une ligne;
- Echap puis flèche du haut: faire défiler l'article vers le haut d'une ligne;
- h: afficher ou cacher la fenêtre des articles;
- t: afficher ou ne pas afficher toutes les en-têtes;
- d: marquer un article ou une enfilade (thread) comme lu;
- u: marquer un article ou un thread comme non lu;
- c: marquer tous les articles comme lu;
- Echapp puis u: marquer tous les articles comme non lu;
- o: sauver un article ou une enfilade;
- Echapp puis t: enrouler ou dérouler une enfilade;
- Echapp puis r: décripter ROT-13;
- a: Rechercher par auteur;
- s: Rechercher par sujet;
- flèche droite ou gauche: déplacement vers la droite ou la gauche;
- n: aller à l'article non lu suivant;
- p: aller à l'article non lu précédent;
- |: Rediriger l'article vers une commande;
- U: Chercher une URL et la suivre;
- q: retourner à l'affichage des forums; appuyer une nouvelle fois sur q pour quitter slrn;
Attention aux lettres majuscules et minuscules: Par exemple, p ne produira pas la même action que P.
4.3 Écrire
Pour ceux qui découvrent Usenet, vous devez lire tous les articles du forum fr.bienvenue avant de poster.
Je vous conseille fortement de lire les documents suivants avant de poster:
Si vous vous posez d'autres questions sur Usenet, de nombreuses FAQs sont disponibles sur fr.usenet.reponses.
Deux chemins s'offrent à vous:
-
soit vous postez simplement un article; vous commencez alors une enfilade (en franglais, on dit souvent « un thread » pour « une enfilade »). Appuyez alors sur la touche P.
- soit vous répondez à un article (en anglais: followup); vous vous insérez alors dans une enfilade. Placez-vous alors sur l'article auquel vous voulez répondre et pressez la touche f.
Aprés l'édition de votre article , si vous décidez de l'envoyer, Slrn le placera dans le répertoire $HOME/slrnpull/out.going/. Si après avoir édité votre article vous l'avez ajourné (postponed), vous pourrez le rappeler en pressant Echap puis P. Une remarque importante: pendant l'édition d'un article, laissez une ligne vide entre les en-têtes et le corps de l'article sinon vous aurez le message d'erreur suivant: « Expecting a header. This is not a header line. »
Maintenant que vous savez lire et poster, voici un forum où vous trouverez de l'aide sur les lecteurs de news: fr.usenet.logiciels.
5 Scoring et Macros
Pour le scoring, lisez le fichier score.txt du paquetage Slrn. Vous pourrez définir votre scoring dans le répertoire $HOME/slrnpull dans un fichier que vous appellerez score afin que Slrnpull effectue lui-même le scoring; ainsi, les articles notés négativement ne seront pas téléchargés. Voici un exemple de fichier score:
[fr.comp.os.linux.annonces]
Score: -10
Subject: Nouveaux fichiers Linux sur ftp.lip6.fr
Sur le forum fr.comp.os.linux.annonces, tous les articles dont le sujet est « Nouveaux fichiers Linux sur ftp.lip6.fr » ne seront pas téléchargés.
Pour les macros Slang, lisez le fichier README.macros. Par exemple, si l'on veut se servir du script search.sl, il suffira d'écrire dans votre fichier de configuration .slrnrc la commande interpret "search.sl". Lorsque vous serez dans Slrn, ce script vous permettra alors d'effectuer une recherche sur le corps des articles en pressant la touche $.
Ce document a été traduit de LATEX par
HEVEA.