Next Previous Contents

6. Pour accéder au news : leafnode

6.1 Présentation

Leafnode permet de lire les news en mode off-line car il est très simple d'utilisation. Il est prévu pour fonctionner pour des petits sites. L'intérêt de Leafnode est qu'il est très facilement configurable, on peut lui dire de récupérer uniquement les newsgroups qui nous intéressent en fixant éventuellement d'autres critères (date des posts, nombre de posts, ...). N'importe quel lecteur de news, qu'il soit sur le poste serveur ou sur un poste client, peut alors accéder aux news (en lecture et écriture).

Il est constitué de trois programmes:

Seuls les newsgroups qui ont été lus dans la semaine sont récupérés sur le serveur de news du provider. Si on cesse de regarder un newsgroup pendant une semaine, les articles de ce newsgroup ne seront pas récupérés, si à nouveau on cherche à y accéder, ce n'est qu'à la prochaine connexion qu'on pourra à nouveau lire les articles.

Le développement de leafnode a divergé en deux branches distinctes la première leafnode, appelé aussi cornelius-leafnode (qui en est à la 1.9.5) et leafnode+ (version 2.9), les deux outils sont évidemment très proches, il n'est pas impossible qu'il fusionne dans un avenir proche.

Dans cet document est présentée l'installation de la version 2.7 de leafnode+, il ne devrait pas avoir beaucoup de différences avec la 2.9. Est présentée aussi l'installation de leafnode-1.9.5.

6.2 Installation de leafnode+ 2.7

Vous pouvez trouver Leafnode+ à l'adresse suivante http://www.pobox.com/~jam/leafnode+ . Renommer, dézipper et détarer l'archive:

mv leafnode.tgz leafnode.tar.gz  
gunzip leafnod.tar.gz 
tar xvf leafnode.tar 
 

Dans le répertoire de travail vous trouvez un répertoire leafnode+-2_7, comme vous allez vite vous en apercevoir, y a pas des binaires, il faut compiler le tout, pas d'affolement ça se passe plutôt bien. Par défaut les exécutables sont placés dans /usr/local/sbin, le manuel est placé dans /usr/local/man, la librairie dans /usr/lib/leafnode, le répertoire de stockage des news est placé dans /var/spool/news, libre à vous de modifier ces chemins, pour cela éditer le Makefile et modifier les variables:

BINDIR = /usr/local/sbin  
MANDIR = /usr/local/man 
SPOOLDIR = /var/spool/news 
LIBDIR = /usr/lib/leafnode 
 

Placer vous dans le répertoire leafnode+-2_7 et taper tout simplement make, la compilation va normalement se dérouler sans problème, tapez ensuite make installall qui aura pour effet de créer, éventuellement, les répertoires /usr/local/sbin, /usr/local/man, /var/spool/news et /usr/lib/leafnode si ceux-ci n'existent pas déjà (ou alors ceux que vous aurez défini), ainsi qu'un certain nombre d'autres répertoires (sous /var/spool/news) et de copier les exécutables et fichier de configuration à l'endroit qui va bien.

6.3 Installation de leafnode 1.9.5

Vous pouvez récupérer leafnode à l'adresse suivante http://wpxx02.toxi.uni-wuerzburg.de/krasel/leafnode.html. L'archive se présente sous la forme d'un tar.gz (tarball). Une fois décompressée vous trouvez un répertoire leafnode-1.9.5, dans ce répertoire, tapez:

./configure  
make 
make install  
 

Les exécutables seront placés dans /usr/local/sbin, les news dans /var/spool/news, mais le fichier de config dans /etc/leafnode. Vous pouvez modifier ces chemins par défaut en donnant des arguments à configure, pour les connaître taper ./configure -help

6.4 Description du logiciel

Leafnode se sert de trois répertoires, le répertoire de "spool", le répertoire de librairie et le répertoire de binaires.

Le répertoire de "spool" sert à stocker tous les articles récupérés du serveur de news, il contient d'autres sous répertoires, si vous êtes abonnés au newsgroup fr.comp.os.linux.configuration, vous aurez le répertoire /var/spool/news/fr/comp/os/linux/configuration. Ce répertoire contiendra tous les articles identifiés par un numéro. Le répertoire /var/spool/news/out.going contient les articles postés en local en attente d'être envoyés vers le serveur de news du provider. Le répertoire /var/spool/news/failed.postings contient les articles postés en local qui ont été rejetés par le serveur de news du provider. Le répertoire /var/spool/news/message.id contient des liens hards vers chaque message. Le répertoire /var/spool/news/interesting.groups contient des fichiers vides dont les noms correspondent aux newsgroups

Le répertoire de librairie /usr/lib/leafnode contient le fichier de configuration de leafnode+, /etc/leafnode pour leafnode.

Le répertoire de binaires /usr/local/sbin, comme son nom l'indique contient les binaires (entre autres fetchnews, leafnode et texpire) (idem leafnode et leafnode+).

6.5 Configurer Leafnode

Cette manip concerne les deux leafnode. Vous devez d'abord modifier le fichier /etc/inetd.conf pour que leafnode soit lancé automatiquement au démarrage comme un daemon. A la fin du fichier rajoutez:

# leafnode  
nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/sbin/leafnode  
 

La première ligne est un commentaire, modifiez éventuellement le chemin de leafnode si nécessaire.

6.6 Configurer leafnode-2.7

Sous /usr/lib/leafnode vous avez un fichier config.example copier le au même endroit en l'appelant config

cp /usr/lib/leafnode/config.example /usr/lib/leafnode/config  
 

Editer le fichier config

# le # indique un commentaire  
# la variable server indique le nom du serveur de news de votre provider 
 
# la variable newsgroup indique les newsgroups que vous voulez récupérer, 
 vous pouvez utiliser l'* 
server = news.fai.fr 
newsgroups=fr.comp.os.linux.* 
newsgroups=fr.comp.os.unix 
newsgroups=fr.rec.sport.voile.planche 
newsgroups=fr.comp.mail 
newsgroups=fr.test 
 
# valeurs de timeout (en jours) 
#  - timeout_short; les newsgroups qui n'ont pas été accédés ou qui 
 ont été accédés qu'une seule fois pendant ce timeout sont considérés comme 
 non intéressants (et donc pas récupéré lors des connexions futures) 
#  - timeout_long; les newsgroups qui n'ont pas du tout accédés pendant 
 ce timeout sont considérés comme non intéressants 
#  - timeout_active; fréquence de vérification de l'existence de nouveaux 
 newsgroups 
timeout_short = 7 
timeout_long = 21 
timeout_active = 14 
 
# au bout du temps défini par la variable expire les articles non lus 
 seront supprimés 
expire = 21 
 
# pour certains newsgroup ENORME comme fr.comp.os.linux.configuration 
 on peut redéfinir la variable expire 
 
groupeexpire = fr.comp.os.linux.configuration 10 
 
# On ne récupérera jamais plus que maxcount articles dans un newsgroup 
 en une fois. 
maxcount = 2000 
 

Avec ça, vous avez un fichier de config standard, éventuellement faire un man leafnode pour plus de détails et d'autres variables.

6.7 Configuration de leafnode-1.9.5

Le fichier de configuration de leafnode se trouve sous /etc/leafnode et a pour nom config. Au contraire de leafnode+ on n'a pas à définir les noms de newsgroups auxquels on veut s'inscrire, dans un premier la liste est téléchargée ensuite à partir des lecteurs de news on choisit les groupes intéressants.

## This is the NNTP server leafnode fetches its news from.  
## You need read and post access to it. Mandatory. 
# ici c'est le nom de mon serveur de news 
server = news.free.fr  
 
## Unread discussion threads will be deleted after this many days 
 if 
## you don't define special expire times. Mandatory. 
# au bout de 10 jours les posts non lus seront supprimés 
expire = 10 
 
## 
## All the following parameters are optional 
## 
 
## I have free access to my news server. If you don't have, comment 
 out 
## the following two lines and change them accordingly. 
# ici vous mettez votre mot de passe, c'est inutile si vous utilisez 
 le serveur de news de votre fai 
username=login 
password=motdepasse 
 
## Standard news servers run on port 119. If your newsserver doesn't, 
 comment 
## out the following line and change it accordingly. 
# normalement vous avez pas à toucher ça, généralement les serveurs 
 de news utilisent le port 119 
# port = 8000 
 
## This is another news server which stores some groups that are 
 not 
## available on the first one. You can define username, password 
 and port 
## for each server separately. 
# comme son nom l'indique vous pouvez récupérer les posts d'un autre 
 serveur de news 
# cependant à ce moment là je sais pas trop comment va se passer l'envoie 
 de post (vers les deux ?) 
# supplement = sex.and.warez.com 
# username = xenu 
# password = secret 
 
## This is a news server which does not understand the 
## "LIST NEWSGROUP news.group" command. For this reason, 
 we don't try to 
## download newsgroups descriptions when getting new newsgroups. 
 This is 
## achieved by putting "nodesc = 1" somewhere behind 
 the server/supplement 
## line. 
# supplement = broken.upstream.server 
# nodesc = 1 
 
## Here we have another news server which has a very slow connection. 
 For 
## that reason, we wait a full minute before we give up trying 
 to connect. 
## The default is 10 seconds. 
# supplement = really.slow.snail 
# time out pour trouver le serveur au bout de 60s on abandonne 
timeout = 60  
 
## Non-standard expire times (glob(7) wildcard constructs possible) 
# groupexpire comp.os.linux.* = 5 # groups too big to hold articles 
 20 days 
# groupexpire any.local.newsgroup = 100 # very interesting, hold 
 articles longer 
# ici pour les groupes très volumineux (en nombre de posts), on peut 
 raccourcir le temps où les posts 
# seront considérés comme "vieux" 
groupexpire = fr.comp.os.linux.configuration 5 
 
## Never fetch more than this many articles from one group in one 
 run. 
## Be careful with this; setting it much below 1000 is probably 
 a bad 
## idea. 
# maxfetch = 2000 
 
## Fetch only a few articles when we subscribe a new newsgroup. 
 The 
## default is to fetch all articles. 
# variable très importante, si vous ne la mettez pas, à la première 
 connexion, 
# vous allez vous retrouver avec tout les posts même ceux d'il y a 
 plus d'un mois contenus sur le serveur distant 
# ça peut prendre largement plus d'une heure, c'est pourquoi j'ai limité 
 le chargement initial d'un newsgroup aux 100 derniers posts 
initialfetch = 100 
 
## If you want to use leafnode like an offline newsreader (e.g. 
 Forte 
## Agent) you can download headers and bodies separately if you 
 set 
## delaybody to 1. In this case, fetch will only download the headers 
 
## and only when you select an article, it will download the body. 
## This can save a huge amount of bandwith if only few articles 
 are really 
## read from groups with lots of postings. 
## This feature works not very well with Netscape, though (which 
 is not 
## a fault of Leafnode). 
# delaybody = 0 
 
## To avoid spam, you can select the maximum number of crosspostings 
## that are allowed in incoming postings. Setting this below 5 
 is 
## probably a bad idea. The default is unlimited crossposting. 
# maxcrosspost = 5 
 
## If you suffer from repeatedly receiving old postings (this happens 
## sometimes when an upstream server goes into hiccup mode) you 
 can 
## refuse to receive them with the parameter "maxage" 
 which tells the 
## maximum allowed age of an article in days. The default maxage 
 is 10 
## days. 
# on ne va pas récupérer les posts vieux de plus de 10 jours sur le 
 serveur, 
#maxage = 10 
 
# vaut mieux pas se servir des variables suivantes 
## maxlines will make fetch reject postings that are longer than 
 a certain 
## amount of lines. 
# maxlines = 100 
## minlines will make fetch reject postings that are shorter than 
 a certain 
## amount of lines. 
# minlines = 2 
 
# intéressant si quelqu'un poste du binaire dans les newsgroups 
## maxbytes will make fetch reject postings that are larger 
# maxbytes = 50000  
 
## timeout_short determines how many days fetch gets a newsgroup 
 which 
## has been accidentally opened. The default is two days. 
# timeout_short = 1 
 
## timeout_long determines how many days fetch will wait before 
 not getting 
## an unread newsgroup any more. The default is seven days. 
# timeout_long = 6  
 
## timeout_active determines how many days fetch will wait before 
 re-reading 
## the whole active file. The default is 90 days. 
# timeout_active = 365 
 
## If you want to have your newsreader score/kill on Xref: lines, 
 you might 
## want to uncomment this. 
# create_all_links = 1 
 

6.8 Configurer les postes clients

Pour configurer Netscape par exemple que ce soit d'un poste client ou du poste serveur.

Choisissez Edit->Preferences->Mails&Newsgroups->Newsgroups Servers, tapez sur Add, une fenêtre apparaît, saisissez le nom de votre serveur, laissez les autres paramètres par défaut, sélectionnez le nom du serveur dans la liste puis cliquez sur Set As Default, puis OK.

6.9 Comment ça marche

C'est très simple, vous vous connecter et en tant que root vous tapez:

/usr/local/sbin/fetchnews -vvvv  
 

les vvvv permettent d'avoir un max de commentaires pour voir si tout se passe bien. Quand vous avez à nouveau la main dans le shell, vous pouvez vous déconnecter. Si vous jetez un coup d'oeil dans /var/spool/news vous verrez que toute l'arborescence des news a été créée, y compris les newsgroups non choisis dans le fichier de configuration.

Lancer votre lecteur de news favori, "subscriber" aux newgroups qui vous intéressent (vous êtes limités avec leafnode+ à ceux préalablement définis dans le fichier de configuration ). Vous vous rendrez vite compte qu'il n'y a aucun article, c'est normal car c'est la première fois que vous y accéder, faites en sortes d'ouvrir tous les newsgroups auxquels vous vous êtes inscrits, même s'ils sont vides. Reconnectez vous à votre provider, relancer fetchnews, déconnecter vous, ça y est les articles sont là !

Vous pouvez alors lire les articles, y répondre, vos posts seront envoyés vers le serveur de news de votre provider au prochain appel de fetchnews.

De temps à autres, au moins une fois par semaine, tapez:

/usr/local/sbin/texpire  
 

Ca aura pour effet de "faire le ménage" dans le répertoire /var/spool/news et de supprimer les vieux posts.


Next Previous Contents