Solange PPP läuft, ist es möglich, News online zu lesen. Dazu
sind viele Programme erhältlich. Zwei einfache Alternativen sind
rtin
und trn
.
Das einzige, was man in den meisten Fällen konfigurieren muß, um News
lesen zu können, ist folgender Befehl (den man normalerweise einmal
und nie wieder in der Datei .profile
einträgt):
export NNTPSERVER=news.acme.net
Manche Programme benötigen vielleicht folgendes, um die From-Adresse in eigenen Beiträgen richtig einzutragen:
export NNTP_INEWS_DOMAIN=acme.net
Man muß auf irgendeine Weise einen lokalen News-Spool einrichten, um News lesen zu können, während man offline ist, womit man Telefonkosten spart und flexibler ist. Dafür benötigt man einiges an Konfiguration und auch ein gewisses Maß an Platz auf der Festplatte. Hat man das einmal eingerichtet, sollte alles mehr oder weniger von selbst laufen, und man muß sich nur ab und zu etwas darum kümmern.
Hier werden zwei verschiedene Lösungen beschrieben.
Die hier beschriebene Lösung legt den Newsserver C News und das NNTP-Protokoll zugrunde. C News war ursprünglich für einen anderen Verwendungszweck gedacht, ist aber leistungsfähig genug, um mit unserer Situation auch fertig zu werden. Man könnte auch den neueren Newsserver INN benutzen, der aber vielleicht mehr Ressourcen benötigt. Man sollte auf jeden Fall darauf achten, nicht beide zu installieren, da sie sich nicht gut vertragen.
Es ist sehr wichtig, daß man die Wartung des Newssystems als Benutzer
news
durchführt und daß sich alle Konfigurationsdateien in
/usr/lib/news
befinden. Ist man als Benutzer root
eingeloggt, kann man das durch Eingabe von su news; cd
bewerkstelligen.
Die wichtigsten Dateien zur Konfiguration sind:
active
ist eine Übersicht über vorhandene Newsgruppen. Sie
wird wenn nötig über den Befehl addgroup aktualisiert, z.B.
addgroup comp.os.linux.networking y
.organization
sollte nur das enthalten, was im Feld
Organization: im Kopf der Nachricht stehen soll. In unserem
Fall ist das
Dirk Gently's Holistische Detektei
mailname
enthält in unserem Fall acme.net
.whoami
wird auf den Namen unseres Rechners in der
Path:-Angabe gesetzt. Wird wie in diesem Fall NewsX
benutzt, verläßt dieser Name nie den eigenen Rechner, also kann man
hier eintragen, was man will, solange es unverwechselbar ist, in
diesem Fall roderick
.sys
kontrolliert den Erhalt und die weitere
Verbreitung der News. In unserem Fall nehmen wir an, daß der ISP dem
Pfad acme.net
hinzufügt, und daß dies unsere einzige Quelle
für News ist. Das folgende Beispiel besagt, daß wir alles annehmen,
was ankommt, und daß wir an acme.net
nur die News
weitergeben, die dort noch nicht waren und die ursprünglich auf
unserem Rechner abgesendet wurden. Wir nehmen in dieser vereinfachten
Einstellung an, daß alle Newsgruppen von einer einzigen Quelle kommen.
/all
gibt die Verbreitung an und muß enthalten
sein. Der Buchstabe F
besagt, daß (Zeiger auf) ausgehende
Artikel in einer Datei gesammelt werden.
ME:all/all::
acme/acme.net:all,!junk/all:FL:
mkdir /var/spool/news/out.going/acme
mailpaths
beschäftigt sich damit, wie Beiträge in
moderierte Gruppen gesendet werden, aber diese Aufgabe sollte man
normalerweise dem ISP überlassen.C News benötigt ein gewisses Maß an täglicher Wartung, was man aber
ein für alle Mal erledigen kann, wenn man den Befehl crontab
-e
als Benutzer news
durchführt. Es folgt ein Vorschlag,
der nach Wunsch geändert werden kann:
# ein- und ausgehende News behandeln
10,40 * * * * /usr/lib/newsbin/input/newsrun
# taeglich alte Nachrichten verfallen lassen
30 0 * * * /usr/lib/newsbin/expire/doexpire
# ueberwachen und wenn noetig Meldung erstatten
00 2 * * sat /usr/lib/newsbin/maint/addmissing
40 3 * * * /usr/lib/newsbin/maint/newswatch
50 3 * * * /usr/lib/newsbin/maint/newsdaily
newsrun holt und versendet Artikel (zweimal pro Stunde), doexpire
löscht Artikel, die veraltet sind (nachts um 0:30 Uhr), und die
letzten drei Befehle erledigen verschiedene Aufgaben zur Überwachung
und zur Behebung von Fehler.
Man sollte sich auch versichern, daß bei einem Neustart des Rechners
aufgeräumt wird. Dazu fügt man der Datei /etc/rc.d/rc.local
als root folgende Zeile hinzu:
su news -c /usr/lib/newsbin/maint/newsboot
News kann man über das Programm NewsX bekommen, das sie von
einem NNTP-Server holt. Das Programm befindet sich in:
sunsite.unc.edu/pub/Linux/system/news/transport/newsx-0.9.tar.gz
ftp.sn.no:/user/egilk/newsx-0.9.tar.gz
Es ist ziemlich einfach, NewsX
einzurichten. Die Installation
ist ein klassischer Fall von:
make
su
make install
exit
Mit der hier beschriebenen Vorgehensweise muß man nur die Gruppen, die man haben möchte, mit dem Befehl "addgroup" erstellen.
Der Benutzer news
führt folgende Befehle aus, um News zu
holen (vorausgesetzt, es besteht eine PPP-Verbindung):
newsrun
newsx acme news.acme.net
newsrun
Über die Option -d
erhält man eine fortlaufende Ausgabe auf
dem Bildschirm.
Die Dokumentation zu NewsX enthält weitere Informationen.
NewsX kümmert sich auch um das Versenden ausgehender Nachrichten.
Die Datei explist
wird benötigt, um zu bestimmen, wie
Artikel entfernt werden, wenn sie veralten. Die Kommentare im Beispiel
sollten erklären, was wir erreichen wollen:
# History-Eintraege werden 14 Tage behalten, keiner erhaelt >120 Tage
/expired/ x 14 -
/bounds/ x 0-1-120 -
# behalte diese Gruppen 2 Monate lang
comp.sources,comp.os.linux.all x 60 -
# Muell wird schnell weggeworfen
junk,control x 2 -
# Normalfall: 14 Tage, keine Archivierung
all x 14 -
ALT: Bei einem kleinen News-Spool braucht man die Gruppe
control
oft nicht. Im Vergleich zum Nutzen enthält sie
sehr viele Nachrichten. Der Zweck besteht darin, daß Artikel
entfernt und Gruppen automatisch erstellt werden dürfen. Damit
control-Nachrichten, die newgroup
enthalten, nichts
durcheinanderbringen, gibt es eine Datei newgroupperm
, die
angibt, was erlaubt ist:
comp.os.linux tale@uunet.com yv
all any nq
In diesem Beispiel werden alle gültigen Gruppen unter comp.os.linux
erstellt (y), und der Benutzer news
wird davon in Kenntnis
gesetzt (v). Alles andere wird stillschweigend (q) ignoriert (n). Es
reicht die letzte Zeile, wenn man alle Gruppen von Hand erstellen
möchte.
ALT: Alternativen zu NewsX sind suck
oder
slurp
in Verbindung mit postit
. Slurp benutzt den
NNTP-Befehl NEWNEWS, der viele Newsserver schwer belastet.
Eine vollständig andere Lösung ist die Installation des integrierten
Pakets leafnode
. Es kümmert sich um alle Aufgaben, die ein
eigener Newsspool mit sich bringt und ist leicht einzurichten. Es ist
erhältlich über:
http://www.troll.no/freebies/leafnode.html
Wie bei C News sollten man alle Wartungsaufgaben als Benutzer
news
durchführen.
Das Hauptverzeichnis für leafnode ist /usr/lib/leafnode
. Um
es zu installieren, gibt man ein:
cd /usr/lib/leafnode
tar -xzvf leafnode-0.8.tgz
cd leafnode-0.8
make
su
make install
Während man noch als root
eingeloggt ist, ändert man die
Zeile in inetd.conf
, die NNTP behandelt:
nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/sbin/leafnode
Aktivieren sie dies durch:
killall -HUP inetd
Durch Eingabe von exit
kehrt man zum Benutzer news
zurück. Man ändert in /usr/lib/leafnode/config
die Zeile, die
den NNTP-Server angibt, in unserem Fall:
server = news.acme.net
Leafnode kümmert sich um alles, wenn man als Benutzer news
per crontab -e
folgenden Befehl einträgt:
# taeglich alte Nachrichten verfallen lassen
0 4 * * * /usr/local/sbin/texpire
Den Austausch von News erledigt man ebenfalls als Benutzer
news
durch folgenden Befehl (vorausgesetzt, es besteht eine
PPP - Verbindung):
/usr/local/sbin/fetch
Benutzer, die News lesen wollen, sollten dann der Vorgehensweise in Wie lese ich News online? folgen, nur daß sie den lokalen Rechner eintragen, d. h.:
export NNTPSERVER=localhost
Das sollte schon alles sein. Der erste fetch
überträgt eine
Liste erhältlicher Newsgruppen. Leafnode überwacht dann, welche
Gruppen von den Benutzern angefordert werden, und paßt sich daran
beim nächsten Start an.
ALT: Eine Alternative zu leafnode
ist
nntpcache
, das hier erhältlich ist:
ftp.suburbia.net:/pub/nntpcache/nntpcache.tgz