Solange eine PPP-Verbindung besteht, 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 die folgende Umgebungsvariable, die man normalerweise
in der Datei .profile
setzt:
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 folgendes:
Dirk Gently's Holistische Detektei
mailname
enthält in unserem Fall acme.net
.
whoami
wird für den Namen unseres Rechners in der
Path:
-Zeile verwendet. Wird wie in diesem Fall NewsX
benutzt, verläßt dieser Name nie den eigenen Rechner. Man kann hier also
eintragen, was man will, solange der Name einmalig ist. In unserem
Beispiel verwenden wir 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.
/all
gibt die Verbreitung an und muß enthalten
sein. Der Buchstabe F
besagt, daß Referenzen 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
ausführt. Es folgt ein Vorschlag,
der nach Wunsch geändert werden kann:
# ein- und ausgehende News behandeln
10,40 * * * * /usr/lib/newsbin/input/newsrun
# täglich alte Nachrichten verfallen lassen
30 0 * * * /usr/lib/newsbin/expire/doexpire
# überwachen und wenn nötig 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 zweimal pro Stunde Artikel, doexpire
löscht um 0:30 Uhr Artikel, die veraltet sind, und die
letzten drei Befehle erledigen verschiedene Aufgaben zur Überwachung
und zur Behebung von Fehlern.
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 beziehen, das sie von
einem NNTP-Server holt. Das Programm befindet sich hier:
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, wobei natürlich eine PPP-Verbindung bestehen muß:
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 veraltet sind. Die Kommentare im Beispiel
sollten erklären, was wir erreichen wollen:
# History-Einträge werden 14 Tage behalten, keiner erhält
# >120 Tage
/expired/ x 14 -
/bounds/ x 0-1-120 -
# behalte diese Gruppen 2 Monate lang
comp.sources,comp.os.linux.all x 60 -
# Müll wird schnell weggeworfen
junk,control x 2 -
# Normalfall: 14 Tage, keine Archivierung
all x 14 -
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.
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 diese Änderung 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:
# täglich alte Nachrichten verfallen lassen
0 4 * * * /usr/local/sbin/texpire
Den Austausch von News erledigt man ebenfalls als Benutzer
news
durch folgenden Befehl, wobei natürlich bereits eine
PPP-Verbindung bestehen muß:
/usr/local/sbin/fetch
Benutzer, die News lesen wollen, sollten dann der Vorgehensweise im Abschnitt 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.
Eine Alternative zu leafnode
ist
nntpcache
, das hier erhältlich ist:
ftp.suburbia.net:/pub/nntpcache/nntpcache.tgz