News Leafsite mini-HOWTO Florian Kühnert (sutok@gmx.de) und Uwe Hermann (uh1763@bingo.baynet.de) v0.3, 13. September 1998 Dieses HOWTO wird Dir helfen, mit dem freien Softwarepaket Leafnode einen kleinen lokalen News-Server für Usenet News zu konfigurieren. 1. Wieso Leafnode? Wenn man an seinem lokalen Computer News offline lesen will, muß man normalerweise eine News-Server-Software wie etwa INN oder CNews installieren. Außerdem braucht man eine NNTP- oder UUCP-Verbindung zu seinem Newsfeed. Da aber solche Pakete mehr Funktionen/Features enthalten, als man normalerweise benötigt, ist man besser dran wenn man Leafnode installiert. Leafnode ist viel einfacher zu bedienen und sehr klein, hat aber einige Nachteile: Leafnode ist langsam und verliert in nahezu jeder Fehler-Situation News. Deshalb sollte man es nicht für einen großen News-Server benutzen, nichtsdestotrotz ist es aber für private Anwender, die nicht viel Zeit für die Konfiguration von INN aufwenden wollen, ausreichend. 2. Woher bekomme ich Leafnode? Leafnode steht unter ftp.troll.no:/pub/freebies/ zum herunterladen bereit und wurde von Arnt Gulbrandsen, einem Angestellten von Troll Tech AS, entwickelt. The neueste Version ist 1.4 und wird in manchen Distributionen(wie z.B. Debian) schon mit­ geliefert. Man sollte auf jeden Fall sichergehen, daß man mindestens Version 1.4 benutzt, da mehrere "kritische" Bugs ausgebessert worden sind. 3. Wie installiere ich Leafnode? Eine kleine Installationshilfe gibt es in dem Packet, aber lass es uns doch lieber zusammen installieren :-). Wenn Leafnode >=1.4 mit Deiner Distribution mitgeliefert wurde, ist es am klügsten, die vorkompilierte Version zu verwenden, und Schritt 1 bis 4 auszulassen. 1. Stelle sicher, daß kein anderer News-Server auf Deinem Computer läuft. Wenn du $ telnet localhost nntp eintippst, solltest Du eine Fehlermeldung bekommen. Wenn Du eine Verbindung bekommst, geh zurück zum Prompt Deiner Shell und De- installiere INN, Cnews oder welchen News-Server Du auch immer jetzt am Laufen hast, und kommentiere die nntp-Zeile in deiner /etc/inetd.conf aus. 2. Stelle sicher, daß es einen User "news" auf deinem System gibt, durchsuche /etc/passwd nach dem Namen. Wenn keiner existiert, dann erzeuge einen, wobei Du entweder $ adduser news oder ein Tool benutzt, das mit Deiner Distribution mitgeliefert wurde. 3. Entpacke den Quellcode: $ tar xfz leafnode-1.4.tar.gz und wechsle in das Verzeichnis, in dem sich der Quellcode befindet:. $ cd leafnode-1.4 4. Kompiliere und installiere das Programm. $ make; make install 5. Editiere /usr/lib/leafnode/config (kann sich auch woanders befinden, wie etwa /etc/leafnode, wenn du eine vorkompilierte Version von deiner Linux-Distribution verwendest. Die Zeile "Server =" sollte den Namen des News-Server Deines Providers enthalten. 6. Bearbeite /etc/nntpserver. Diese Datei sollte den Namen des eigenen Rechners enthalten (localhost oder wie auch immer der Name des Rechners lautet; um das herauszufinden, benutze das Kommando "hostname"). Wenn in irgendeiner Konfigurations-Datei, wie etwa /etc/profile oder ~/.bash_profile die Umgebungsvariable definiert ist, solltest Du sie auch dort auf den Namen Deines Rechners ändern. 7. Bearbeite die /etc/inetd.conf: stelle sicher, daß es keine Zeile gibt, die mit "nntp" anfängt. Wenn so eine Zeile existiert, stelle ein "#" davor, um sie auszukommentieren. Dann füge die folgende Zeile hinzu: nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/sbin/leafnode Wenn nun jemand (z.B. Du :-)) sich an Deinem Computer am nntp-port anmeldet, wird Leafnode als Server-Prozess gestartet. 8. Stelle eine Verbindung zum Internet her und führe das Programm "fetch" als "root" oder "news" aus. Das erste Mal wenn "fetch" gestartet wird, wird es eine Liste der Newsgroups, die Dein Provider Dir zur Verfügung stellt, herunterladen. Dies kann eine Zeit lang dauern, je nach Geschwindigkeit Deiner Verbindung und je nach Anzahl der Newsgroups, die Dein Provider in seinem "active- file" hat. 9. Starte einen Newsreader (slrn, (r)tin und knews sind kein schlechter Anfang) und abonniere alle Gruppen, die Du lesen möchtest. Achte darauf, diese Gruppen nicht nur zu abonnieren, sondern sie auch zu öffnen, auch wenn sie leer sind. 10. Starte fetch erneut, um nun alle News herunterzuladen, die Du lesen möchtest. 4. Wie konfiguriere ich Leafnode? Nun hast du ein funktionierendes News-System am Laufen, aber es gibt immer noch ein paar Dinge zu tun. Du könnstest die Datei /usr/lib/leafnode/config editieren und die "expire dates" der Newsgroups zu setzen. Diese Zahl sagt aus, nach wieviel Tagen alte Nachrichten gelöscht werden sollen. Die Standard-Einstellung von 20 Tagen ist oft zu lange, wenn du einige Gruppen mit viel "Traffic" liest, vier Tage oder eine Woche sind in den meisten Fällen ausreichend. Du kannst den Wert für alle Gruppen setzen ("expire = n" um alle News n Tage zu behalten) und zusätzlich Leafnode sagen, es soll diesen Wert für bestimmte Gruppen ändern, indem du groupexpire foo.bar n in der config einträgst, das die "expire time" für die Gruppe foo.bar auf n Tage setzt, d.h. alte Artikel werden nach n Tagen gelöscht. Diese Einstellungen alleine werden Leafnode nicht veranlassen, etwas zu löschen, dafür gibt es ein extra Programm, nämlich "texpire". Es kann als ein cron-Job oder von der Kommandozeile aus gestartet werden. Wenn Dein Rechner die ganze Zeit eingeschaltet ist, kannst Du folgende Zeile zur crontab-Datei von "news" hinzufügen (um die crontab zu editieren, log dich als "news" ein und führe $ crontab -e oder als root $crontab -u news -e aus). 0 19 * * * /usr/local/sbin/texpire Diese Zeile bewirkt, daß der cron-Daemon jeden Tag um 19.00 Uhr "texpire" startet. Lies dir die crontab-manpage durch, um weitere Informationen zu erhalten. Wenn Dein Computer nicht regelmäßig eingeschaltet ist, kannst du "texpire" einfach von Zeit zu Zeit aufrufen, wenn du bemerkst, daß "fetch" langsamer wird. Die "cron- Methode" funktioniert aber auch ziemlich gut. 5. Wie funktioniert Leafnode? Leafnode ist ein "echter" NNTP-Server, daß heißt, man kann sich auch von einem anderen Rechner aus einloggen (via Internet, vom lokalen Netzwerk aus usw.). Jedes Mal, wenn man in seinem News-Reader eine Gruppe öffnet, fordert der Reader diese benötigten News von Leafnode an. Wenn die Gruppe nicht existiert, erzeugt Leafnode eine leere Datei in dem Verzeichnis /var/spool/news/interesting.groups/, die den gleichen Namen trägt wie die Gruppe. Wenn Du das nächste Mal "fetch" aufrufst, wird es die News dieser Gruppe holen. Wenn du eine Gruppe eine gewisse Zeit lang nicht gelesen hast, wird Leafnode aufhören, die Nachrichten dieser Gruppe vom Server zu holen, und die entsprechende Datei aus /var/spool/news/interesting.groups/ löschen. Wenn du also z.B. gerade aus Versehen eine "high-traffic" Newsgroup abonniert hast, kannst du die entsprechende Datei aus /var/spool/news/interesting.groups/ von der Kommandozeile aus löschen, und mußt nicht eine Woche lang alle News herunterladen, bis Leafnode von alleine aufhört die News dieser Gruppe zu holen. Eine Woche ist dir zu wenig? Du willst drei Wochen in Urlaub fahren und immer noch die News bekommen? Leider gibt es dafür keine Option in Leafnode. Du kannst aber die Datei leafnode.h editieren und das Paket neu kompilieren. Die definierten Konstanten sind TIMEOUT_LONG und TIMEOUT_SHORT, stelle einfach die Zeit in Sekunden ein. Eine einfachere Lösung besteht darin, einen cron-Job festzulegen, der touch /var/spool/news/interesting.groups/* jede Nacht durchführt. Wenn Du eine Liste aller verfügbarer Gruppen haben möchtest schau Dir die Datei /usr/lib/leafnode/groupinfo an, wo Du zu jeder Gruppe auch eine kurze Beschreibung erhalten wirst. Wenn Du die Liste der Gruppen nochmal vom deinem Newsfeed anfordern willst (z.B. wenn du eine neu dazugekommene Gruppe abonnieren willst), lösche einfach die Datei /var/spool/news/active.read. Fetch wird beim nächsten Aufruf die Liste erneut holen und die Datei /var/spool/news/active.read erneut erstellen. Fetch wird auch ab und zu automatisch die Liste wieder anfordern, sodaß man das nicht manuell machen muß. 6. Welchen News-Reader sollte ich verwenden? Der News-Reader für Linux existiert nicht, genausowenig wie der Editor. Mein persönlicher Favorit ist emacs im Gnu-Modus, da er sehr flexibel zu konfigurieren ist. Viele Menschen benutzen slrn und tin an einem Terminal, viele auch knews unter X. Es gibt auch trn, nn und viele weitere Reader, also probier einfach, aus welcher Dir am besten gefällt. Der einzige Reader, den man nicht benutzen sollte ist Netscape; er ist groß, hat wenige Features, ist instabil, und legt öfters ungewünschtes Fehlverhalten an den Tag. Wie auch immmer... letztendlich ist es Deine persönliche Entscheidung. Knews ist wohl aber keine schlechte Idee für den Anfang, da er sehr benutzerfreundlich und einfach zu verstehen ist. 7. Wo bekomme ich mehr Informationen? Etwas Dokumentation wird mit dem Leafnode-Paket mitgeliefert (lies Dir die Dateien INSTALL und README durch, die Quellcodes sind aber auch interessant). Wenn du etwas über "professionelle" und "große" News- Server wissen willst, lies Dir die INN FAQ durch (wird mit dem INN- Paket mitgeliefert). Um Informationen über Deinen News-Reader zu bekommen, benutze das Kommando $ man NameDesNewsReaders an der Kommandozeile, und schau dir die Dateien in /usr/doc mal an. Wenn du irgendwelche Fragen das News-System betreffend hast, frag einfach in einer entsprechenden Gruppe nach, etwa in der news.software.ALL-Hierarchie. Wenn du irgendeine Frage, einen Kommentar oder Verbesserungvorschläge dieses HOWTO betreffend hast, schreib mir einfach eine eMail unter sutok@gmx.de. 8. Danksagung Ich möchte mich bei Michael Schulz (michaels@home.on-luebeck.de) für seine Hilfe bei sprachlichen Problemen, und Cornelius Krasel (krasel@wpxx02.toxi.uni-wuerzburg.de) für seinen "touch *"-Trick bedanken. 9. Copyright Dieses Dokument ist urheberrechtlich geschützt. Das Copyright für die englische News Leafsite mini-HOWTO, auf der dieses Dokument basiert, liegt bei Florian Kühnert. Das Copyright für die deutsche Version liegt bei Uwe Hermann. Das Dokument darf gemäß der GNU General Public License verbreitet werden. Insbesondere bedeutet dieses, daß der Text sowohl über elektronische wie auch physikalische Medien ohne die Zahlung von Lizenzgebühren verbreitet werden darf, solange dieser Copyright Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt und ausdrücklich erwünscht. Bei einer Publikation in Papierform ist das Deutsche Linux HOWTO Projekt hierüber zu zu informieren.