Der Newsreader Trn

zum Vergrößern bitte auf das Bild klicken

Inhaltsverzeichnis des Beitrags

Programmautor

"Trn Kit, Version 4.0" wurde 1995 von Wayne Davison geschrieben.

Über Trn

Trn wurde auf Basis von rn als dessen Nachfolger geschrieben und bietet Thread-Unterstützung. Für das Threading werden die References der Artikel verwendet. Trn ist ein Newsreader für die Konsole; er arbeitet also im Text-Mode.

Systemvoraussetzungen

Da der Quelltext von Trn frei verfügbar ist, kann dieser quasi unter nahezu allen unioxiden Betriebssystemen kompiliert werden. Für die Linux-Distribution "Ubuntu" gibt es sogar ein fertiges Paket.

Wo ist Trn erhältlich

Der Quelltext von Trn ist sowohl auf der Trn-Projektseite bei Sourceforge (-> Link 2) erhältlich als auch auf den entsprechenden Trn-Seiten von einigen Linux-Distributoren.
Des weiteren gibt es fertige Binary-Pakete für Ubuntu (-> Link 4) und für Debian, (z.B. für Lenny) (-> Link 5).

Installation von Trn

Kompilation des Quelltextes

Zuerst muß der heruntergeladene Quelltext entpackt werden; danach am besten gleich in den Ordner des Sources wechseln:

  tar xzf trn-4.0-test77.tar.gz
  cd trn-4.0-test77 

Nun solltest du zuerst die Installationsdoku lesen:

  less INSTALL

(Kann mit "q" beendet werden.)

Nun kannst du mit der Kompilation beginnen:

  ./Configure

Hier solltest du unbedingt den großen Anfangsbuchstaben beachten: es handelt sich um ein spezifisches Trn-Script, nicht um das übliche "configure". Laut der Anleitung unter Link 2 soll man dabei die Standardantworten verwenden, die das Script erfragt. Ebenfalls laut genannter Anleitung sei eine Mindestversion der Bash und einer lib notwendig, damit Configure fehlerfrei durchlaufen würde. Falls dies nicht klappt, könne man "./Configure -S" stattdessen verwenden.

Das weitere Vorgehen:

  make depend
  make
  sudo make install

Installation des deb-Paketes (Debian bzw. Ubuntu)

Für Ubuntu kann z. B. Synaptic verwendet werden, um per Paketverwaltung nach "trn" zu suchen und anschliessend zu installieren.
Der andere Weg geht über "apt-get" bzw. "apt-cache search":

  ~$ apt-cache search trn
  libbsd-dev - utility functions from BSD systems - development files
  inn - News transport system InterNetNews' by the ISC and Rich Salz
  inn2 - 'InterNetNews' news server
  pngcrush - optimizes PNG (Portable Network Graphics) files
  qcad-data - professional CAD system -- shared files
  rng-tools - Daemon to use a Hardware TRNG
  suck - small newsfeed from an NNTP server with standard NNTP commands
  trn - Threaded USENET news reader, based on rn
  trn4 - Threaded USENET news reader, based on rn (4.0 beta test)

Anschliessend dann:

  sudo apt-get install trn4

(statt "trn4" kann natürlich auch die stable-Version "trn" installiert werden.)

Wenn trn dann installiert ist, sieht dieser z. B. so aus:

  ~$ trn4 -V

  Trn version: 4.0-test76 (Apr 2, 2001).
  Configured for both NNTP and local news access.
  You can request help from:  trn-users@lists.sourceforge.net
  Send bug reports, suggestions, etc. to:  trn-workers@lists.sourceforge.net

Konfiguration von Trn

Vor allen Bemühungen mit Trn sollte das Lesen der Trn-Manpage stehen:

  man trn

(Anm.: Je nach Installation kann auch 'man trn4' verwendet werden.)

Trn benötigten für ein erfolgreiches Posten mindestens folgende Variablen, die jedoch auf verschiedene Weisen gesetzt werden können:

  • in der '~/.bashrc' (alternativ natürlich auch in den Konfigs anderer Shells, falls nicht die Bash verwendet wird),
  • in einer Datei '~/.inittrn',
  • bei jedem Start von Trn mit 'trn -E' alle Variablen abfragen lassen.

Die Variablen im Einzelnen:

Variablendefinitionen fuer TRN in der ~/.bashrc
  NNTPSERVER='Newsserveradresse (oder localhost)' && export NNTPSERVER
  FROM='Vorname Nachname <From-E-Mail-Adresse>' && export FROM
  REPLYTO='<Reply-To-E-Mail-Adresse' && export REPLYTO
  EDITOR='vim '+set tw=72' %N' && export EDITOR
  NO_ORIGINATOR=yes && export NO_ORIGINATOR
  ORGANIZATION='Organisations-String=Yes' && export ORGANIZATION
  ATTRIBUTION='%)fschrieb:' && export ATTRIBUTION

Trn schaut beim Start zunächst die Variable 'NNTPSERVER' nach. Falls dort ein 'localhost' eingetragen ist, wird die vorhandene '~/.newsrc' verwendet.
Das From muß in jedem Fall definiert werden, ohne dieses wird Trn kein Posting absetzen. Das Reply-To ist dagegen optional. Für Editor wurde hier 'vim' gewählt; selbstverständlich kannst du jeden beliebigen im System vorhandenen Editor dort wählen, wichtig ist jedoch, dass beim Editor auch der Zeilenumbruch definiert werden muß (im obigen Fall wird vim automatisch nach 72 Zeichen einen Umbruch machen).
Die Variable 'NO_ORIGINATOR' wird weiter unten erklärt.
'ORGANIZATION' ist wieder optional; wenn diese nicht definiert wird, setzt der Newsserver diesen Header.
Zur Variable 'ATTRIBUTION': '%)fschrieb:' ist ohne Leerzeichen dazwischen durchaus so richtig. Es wird der Realname des Vorposters verwendet mit einem "schrieb:" danach. Eine solche attribution line ist auf jeden Fall absolut usenetkonform. Besser in jedem Fall als die attribution line, die in der Werkseinstellung verwendet wird. Daher sollte diese Variable auf jeden Fall so gesetzt werden.

Alternativ kann auch eine Text-Datei '~/.inittrn' angelegt werden mit folgendem Inhalt:

Inhalt der Datei ~/.inittrn
  NNTPSERVER='Newsserveradresse (oder localhost)'
  FROM='Vorname Nachname <From-E-Mail-Adresse>'
  REPLYTO='<Reply-To-E-Mail-Adresse'
  EDITOR='vim '+set tw=72' %N'
  NO_ORIGINATOR=yes
  ORGANIZATION='Organisations-String'
  ATTRIBUTION='%)fschrieb:'

Im Fall der Variablendefinitionen über die inittrn-Datei muß Trn noch mitgeteilt werden, in welchem Pfad die inittrn liegt. Auch dies kann entweder mit einer Variablen in der .bashrc gemacht werden:

  # Definition via ~/.bashrc
  TRNINIT='~/.inittrn' && export TRNINIT

Oder über die Datei '~/.trn/trnrc':

  # trnrc file auto-generated
  [environment]
  TRNINIT = '~/.inittrn'

Entfernen des Headers "Originator:"

Falls die Variable "NO_ORIGINATOR" nicht gesetzt wurde, sendet Trn bei jedem Posting einen Originator-Header mit, der wie folgt aussieht:

  Originator: Username-des-Systems@Hostname (Vorname Nachname)

Dieser überflüssige Header kann leicht permanent entfernt werden mit dem Setzen der NO_ORIGINATOR-Variable wie oben bereits gezeigt.

Posten mit Trn

Wenn schonmal obige Einstellungen gemacht wurden, kann zumindest in ASCII gepostet werden.
Trn zeigt beim ersten Start alle Gruppen des Servers an. mittels der Pfeiltasten kann man auf eine der Gruppen navigieren und mittels einem <Return> diese Gruppe abonnieren.
Weitere Gruppen kann man abonnieren, indem man in der Gruppenübersicht eine der Gruppen mit einem "+" markiert
Dann erscheint eine Zeile in der Art wie diese:
====== 278 unread articles in de.admin.news.groups -- read now? [+ynq]
Dann kannst du mittels "g Gruppenname" zu einer anderen Gruppe wechseln, die dann für ein Abonnement vorbereitet ist: g de.test
Newsgroup de.test is unsubscribed -- resubscribe? [yn]
Mittels "y" kannst du diese Gruppe dann abonnieren.

Posten funktioniert dann wie folgt:
du navigierst in der Gruppenübersicht auf eine Gruppen, drückst <Return> und gibst dann
:p <Return>
ein.
Jetzt solltest du ein aussagekräftiges Subjekt eingeben. Anschliessend wird die Eingabe für Distribution erwartet. Hier kannst du entweder wieder <Return> drücken oder "Local" oder "World" eingeben. Die folgende Frage solltest du mit einem "y" bejahen, die nexte Abfrage nach einem "file to include" mit einem "<Return> quittieren, damit "none" hier ausgefüllt wird. Dann noch einmal <Enter>/<Return> drücken. Jetzt kannst du sowohl einige Header noch einmal editieren als auch einen eigenen Text in den Body eingeben. Dazu muß bei vim zuerst "i" gedrückt werden, damit man in den Eingabemodus kommt. Nachdem du dann das Posting fertig hast, kannst mit <ESC>-<SHFT-Z>-<SHFT-Z> das Posting zum Absenden an Trn übergeben. Trn verlangt dann eine Eingabe zu
Check spelling, PGP, Send, Edit, List, or Abort?
Mit "Send" kannst du das Posting dann absenden.
Follow-Ups funktionieren wie folgt: du navigierst in der Gruppenübersicht auf die gewünschte Gruppen, drückst dann <Return>, es kommt eine Teilübersicht mit Postings, in denen du mit der Space-Taste weiterblättern kannst.
Wenn du auf ein bestimmtes Posting antworten möchtest, navigierst du auf das erste Posting im betreffenden Thread, drückst <Return>, dann kannst du in diesem Thread wieder mit der Space-Taste weiterblättern.
Wenn du auf dem gewünschten Posting angelangt bist, drückst du einfach "F" (großes F), die folgende Frage mußt du mit "y" beantworten, die weitere Frage ("File to include") wieder mit <Return> quittieren, dann wieder <Enter>/<Return> drücken. Nun kannst du dein Reply schreiben, wobei hier das Posting, auf das du antwortest, komplett gequotet wird. Quotes löschen geht bei vim mit "dd", wenn du nicht im Eingabemodus bist, in den Eingabemodus gelangst du mit "i", zurück in den Kommandomodus mit "ESC". Absenden dann genauso wie beim Posten, siehe oben.
Eine Besonderheit ist bei Trn, dass er gelesene Postings killt bzw. unterdrückt. Du kannst jene Postings wieder sichtbar machen in der Postingübersicht mit "U".

Canceln von eigenen Postings

Neben den bisherig genannten Einstellungen in der trnrc muß für erfolgreiches Canceln noch der Abschnitt "CANCELHEADER" definiert werden, am besten direkt unter den Abschnitt "NEWSHEADER" wie folgt:

  CANCELHEADER='\ 
FROM: 'Vorname Nachname <From-E-Mail-Adresse>' Newsgroups: %n Subject: cmsg cancel %i References: %R Organization: 'Organisations-String' %i was cancelled from within trn. ^J'

(Anm.: hier ist keine Definition eines Zeichensatzes in den Headern notwendig, weil der Body fest definiert wurde und keinerlei Umlaute oder Sonderzeichen enthält.)

Zum Canceln von eigenen Postings läßt du es dir anzeigen, dann Taste "C" drücken, es erscheint "Canceling" und je nachdem, ob ein lokaler Newsserver verwendet wurde, erscheint die Cancel-Message in einer entsprechenden control.cancel-Gruppe.

Eigene Postings überschreiben

Zum Überschreiben eigener Postings läßt du dir das betreffende eigene Posting anzeigen und drückt die "c"-Taste, die anschliessende Frage
This program may post news to many machines.
Are you absolutely sure that you want to do this? [ny]
solltest du mit "y" beantworten, dann wieder <Return> drücken (für "none"), dann nochmal <Enter> drücken, das Supersedes kann dann geschrieben werden. Leider zeigt Trn dabei den Text das zu überschreibenden Postings nicht an, so dass der Text komplett neu eingegeben werden muß.

Nach dem Absenden, wenn das Supersedes auf dem Server vorliegt, enthält es dementsprechend den Supersedes-Header und das alte Posting ist überschrieben.

Festes Einstellen des Zeichensatzes isolatin als Workaround

Mit den obig genannten Einstellungen ist es zwar möglich, News mit Trn zu lesen und auch zu posten. Jedoch gibt es dann beim Auftreten von Umlauten immense Probleme; denn Umlaute in Quotings werden falsch kodiert und auch eigene geschriebene Umlaute betrifft das ebenso. Es fehlen schlicht die entsprechenden Headerzeilen für die Umlautkodierungen.
Man kann sich nun trotzdem mit dem folgenden Workaround einigermassen behelfen:
die entsprechenden Headerzeilen für die Umlautkodierungen kann man bei Trn fest auf eine Kodierung einstellen. Zudem sind weitere Maßnahmen notwendig:

  1. Headerzeilen für Mime und Charset permanent machen,
  2. verwendetes Terminal auf den Zeichensatz iso-8859-1 einstellen,
  3. Trn mittels eingestellten Charset starten.

Zu 1:

Folgende Angaben sollten in der trnrc gemacht werden:

  # trnrc file auto-generated
  [environment]
  TRNINIT = ''
  NEWSHEADER='\ 
FROM: 'Vorname Nachname <E-Mail-From-Adresse>' ORGANIZATION: 'Text für Organisation' %(%[followup-to]=^$?:%(%[followup-to]=^%n$?:X-ORIGINAL-NEWSGROUPS: %n ))Newsgroups: %(%F=^$?F) Subject: %(%S=^$?%"^J^JSubject: ":Re: %S) Summary: Expires: %(%R=^$?:References: %R )Sender: Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Followup-To: %(%{REPLYTO}=^$?:Reply-To: %{REPLYTO} )Distribution: %(%i=^$?%"Distribution: ":%D) Keywords: %[keywords] Cc: %(%F=poster?(%F!=@?:%F)) ^J'

Anm.: die fetten Zeilen stellen den Zeichensatz fest auf Latin1 (iso-8859-1) ein, das reicht aus, um zumindest die deutschen Umlaute verwenden zu können.

Eine inittrn wird dann nicht mehr benötigt.

In der .bashrc reichen dann folgende Angaben.

  # fuer TRN
  EDITOR='vim '+set tw=72' %N' && export EDITOR
  NO_ORIGINATOR=yes && export NO_ORIGINATOR
  ATTRIBUTION='%)fschrieb:' && export ATTRIBUTION

Zu 2:

Du solltest für diesen Workaround ein Terminal für Trn verwenden, welches sich in den Optionen/Einstellungen auf die Zeichenkodierung "ISO-8859-1" einstellen läßt.

Zu 3:

Trn sollte mit diesem Workaround wie folgt gestartet werden:

  ~$ LC_ALL=ISO-8859-1 /usr/bin/trn
Hinweis:
Leider hat auch dieser Workaround einen starken Nachteil:
wenn so auf ein UTF-8-Posting geantwortet wird, welches Umlaute enthält und diese dann gequotet werden, wird in moderneren, UTF-8-eingestellten Distributionen das Posting dann UTF-8-kodiert, aber leider durch die feste Einstellung des Charsets latin1-deklariert. Also würden somit die Umlaute kaputt dargestellt.

Es ginge daher auch ein anderer Workaround, nämlich Trn fest auf UTF-8 einzustellen, das Terminal in UTF-8 zu belassen und Trn standardmässig zu starten. Das funktioniert dann aber nicht mit 8859-15-Vorpostings mit Umlauten oder latin1-Vorpostings mit Umlauten.

Bleibt das Fazit, dass Trn leider eine Problematik mit Zeichensätzen hat, die programmbedingt ist.

Vorteile von Trn

- einfache, solide Textoberfläche,
- schnelle Programmausführung.

Nachteile von Trn

- keine durchgehende Unterstützung von Zeichensätzen,
- kaum vorhandene Binaries bzw. fertige Installationspakete,
- keine Unterstützung von X-Faces.

Weiterführende Links
  1. Die Homepage von Trn
  2. Projektseite von Trn mit neuesten Versionen zum Download
  3. kurze Anleitung zum Kompilieren und Konfigurieren von Trn
  4. Ubuntu-package zum Download mit kurzer Beschreibung
  5. Debian-package zum Download mit kurzer Beschreibung
  6. Kurze Beschreibung von Trn in einem Oreilly-Freebook

» Zu Trn gibt es auch passende Newsgroups:

Autor: Uwe Premer - 14.11.2010

ABC-Wiki-Team » Kompendium » Newsreader » Trn


Kategorie(n):
Bewerte diesen Artikel

0 stars Noch nicht bewertet


Facebook Besuche uns bei Facebook, um unsere Artikel zu kommentieren