Lire les news off-line |
![]() |
![]() |
|
Il est constitué de trois programmes:
- Leafnode est le serveur de news (serveur NNTP),
c'est lui qui est en contact avec le serveur de news de votre provider,
vous devez configurer vos lecteurs de news en le choisissant.
- Fetchnews est le programme qui permet de récupérer
les news et de poster les messages en attente.
- Texpire permet de supprimer les vieux messages,
ainsi que les messages non lus récemment.
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 (qui en est à la 1.9.9)
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 cette page je présente l'installation de la version 2.7
de leafnode+, je n'ai pas essayé d'installer la 2.9, mais
l'installation et la configuration doivent être assez similaires.
Je présente aussi l'installation de leafnode-1.9.9.
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, livre à 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 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.
Comme leafnode+ 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
En cas d'upgrade d'une version précédente dont les
exécutables se trouvent par exemple dans le répertoire /opt,
vous devez taper:
./configure --prefix=/opt
make
make install
make update
La dernière manip est a priori pas nécessaire si vous partez d'une version supérieure à 1.9.3 inclue.
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+).
# 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.
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.
## 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
/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,
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 Netscape Communicator, puis Messenger, 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, même s'ils sont vides. Reconnectez
à 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.
![]() |
Lancement automatique de fetchnews à chaque connexion (script /etc/ppp/ip-up.local). |
![]() |
Lancement de la commande texpire |
![]() |