SLRN+SLRNPULL Mini-Howto

Alessandro Airaghi, airaghi@gpa.it

v0.5, 15 Dicembre 1998


Questo documento descrive come leggere off-line le news utilizzando i programmi SLRN e SLRNPULL con la distribuzione RedHat. Le informazioni qui contenute, comunque, sono probabilmente applicabili a qualsiasi distribuzione Linux. La lettura di questo documento presuppone una conoscenza *minima* della shell di Linux (il prompt dei comandi).

1. Introduzione

La tilde (~) indica la directory home di un utente (con tale termine si indica la directory in cui l'utente si trova subito dopo il login). Esempio: la frase "bisogna editare il file ~/.bash_profile", per l'utente alex diventa "bisogna editare il file /home/alex/.bash_profile". In pratica: "entra come utente alex ed edita il file .bash_profile".
Tutti i comandi da scrivere nella shell di Linux sono indicati con un "#" o "$" prefisso al comando.

"#" è il simbolo che appare quando usate la shell come utente root.

"$" è il simbolo che appare quando usate la shell come utente normale.

Per esempio, "$ slrn" oppure "# slrn" indicano che dovete scrivere "slrn" al prompt dei comandi e poi premere [INVIO].
Vediamo brevemente il funzionamento dei due programmi.
SLRNPULL: si collega ad un news-server e scarica, da uno o più newsgroups, tutti gli articoli non ancora letti.
SLRN: da solo, si collega ad un news-server e consente di poter leggere, uno alla volta, gli articoli di un dato newsgroup. Può anche essere utilizzato per leggere off-line gli articoli scaricati in precedenza da SLRNPULL.

2. Dove procurarsi i programmi

Sono necessari i seguenti tre pacchetti .rpm:

slang-1.2.2-3.i386.rpm
slrn-0.9.5.4-2.i386.rpm
slrn-pull-0.9.5.4-2.i386.rpm

Li potete trovare (per esempio) qui: ftp://sunsite.doc.ic.ac.uk/Mirrors/rawhide.redhat.com/i386/RedHat/RPMS

Nel caso non siano più presenti su tale sito al momento della lettura di questo documento, potete effettuare una ricerca in rete usando uno dei tanti motori di ricerca. Per esempio, potete collegarvi tramite Netscape al seguente sito: http://ftpsearch.lycos.com

3. Installazione dei programmi

Effettuate il login come utente root.
Installate i tre pacchetti .rpm dando i seguenti comandi:

# rpm -ivh slang-1.2.2-2.i386.rpm
# rpm -ivh slrn-0.9.5.3-2.i386.rpm
# rpm -ivh slrn-pull-0.9.5.3-2.i386.rpm

Uscite come utente root e rientrate come utente normale.

4. Configurazione

Prima di tutto, bisogna definire due variabili di ambiente, NNTPSERVER e SLRNPULL_ROOT. Basta editare il file ~/.bash_profile ed aggiungere le seguenti 3 linee:

NNTPSERVER=[news server]
SLRNPULL_ROOT=~/slrnpull
export NNTPSERVER SLRNPULL_ROOT

[news server]=news.tin.it oppure il server al quale potete accedere per leggere/scrivere le news. Per maggiori informazioni chiedete al vostro fornitore di accesso ad internet.

Per rendere effettive le modifiche, bisogna effettuare nuovamente il login:
-premete [CTRL]+[d] per tornare al prompt di login
-effettuate, ancora una volta, il login come utente normale.

NOTA: se volete che le variabili NNTPSERVER e SLRNPULL_ROOT vengano definite a livello globale, valide per tutti gli utenti, le tre linee sopra riportate dovranno essere aggiunte al file /etc/profile.

Copiate il file /usr/lib/slrn/slrn.rc come ~/.slrnrc:

$ cp /usr/lib/slrn/slrn.rc .slrnrc

Editate quest'ultimo file, inserite i vostri dati ed assicuratevi che compaiano TUTTE le righe sotto riportate:


% File ~/.slrnrc
% Si fa riferimento ad un ipotetico abbonato di Tin,
% Mario Rossi, avente il seguente indirizzo e-mail: mr@tin.it
% Inserendo tutti i dati CORRETTAMENTE si è però soggetti al
% fastidioso fenomeno dello spamming. Si legga a tal proposito
% il paragrafo intitolato "Protezione dallo spamming".
% Il campo "From:" viene generato dal programma SLRN così:
% username@hostname (realname)

hostname "tin.it"
set username "mr"
set realname "Mario Rossi"
set replyto  "mr@tin.it"
set signature ".signature.slrn"

% Filename where articles you have posted are archived.
% Traduzione: nomi dei files dove vengono archiviati gli articoli
%             che sono stati inviati.
% Sostituite ad [utente] il nome col quale effettuate il login.
set save_posts "/home/[utente]/slrnpull/My_Posts"
set save_replies "/home/[utente]/slrnpull/My_Replies"

scorefile "slrnpull/Score"

% Name of directory where decoded files are placed (relative to HOME)
% Traduzione: nome della directory dove vengono posti i files binari
%             decodificati (relativamente alla directory home)
set decode_directory "slrnpull/decoded"

% Directory where all other files are saved.
% Traduzione: directory dove vengono salvati tutti gli altri files.
set save_directory "slrnpull/misc"

% Directory where postponed articles are placed.  (Make sure it exists)
% Traduzione: directory dove vengono posti gli articoli scritti, ma che
%             si vogliono inviare al newsgroup in un secondo tempo.
% Quando siete all' elenco dei newsgroups, premete [ESC]+[p] per
% scegliere quali di questi articoli archiviati inviare.
set postpone_directory "slrnpull/postponed"

%---------------------------
%  Local spool configuration
%---------------------------
% Sostituite ad [utente] il nome col quale effettuate il login.
set spool_inn_root "/home/[utente]/slrnpull"
set spool_root "/home/[utente]/slrnpull/news"
set spool_nov_root "/home/[utente]/slrnpull/news"
set read_active   1
set use_slrnpull  1
set server_object "spool"

Un consiglio: nel file ~/.slrnrc modificate la variabile followup_string eliminando <%f> e/o %d di modo che la stringa risultante sia la più corta possibile. In caso contrario, il programma SLRN potrebbe chiedervi di ri-editare il vostro messaggio per "sistemare" una riga che è lunga più di 80 caratteri. Esempi (usando l'italiano):

set followup_string "In data %d, %r scriveva:"

set followup_string "%r scriveva:"

Oppure, fate in modo che compaia la seguente linea:

set reject_long_lines 0

NOTA: non è possibile sostituire /home/[utente] con ~ oppure con /home/$USER. Il programma non funzionerà.

NOTA: il file .slrnrc in realtà contiene molte altre istruzioni che consentono una maggiore personalizzazione del programma. Quelle da me elencate sopra sono le minime indispensabili, affinchè tutto funzioni correttamente.

In questo modo il programma SLRN non si collega al server delle news "news.tin.it" (o quello da voi scelto) per leggere le news bensì utilizza quelle scaricate in precedenza dal programma SLRNPULL.

Create le seguenti directory:

$ mkdir slrnpull
$ mkdir slrnpull/postponed
$ mkdir slrnpull/decoded
$ mkdir slrnpull/misc

Copiate il file /var/spool/slrnpull/slrnpull.conf in ~/slrnpull:

$ cp /var/spool/slrnpull/slrnpull.conf slrnpull

Editate quest' ultimo file: mettete un cancelletto (#) all' inizio di ogni linea ed aggiungete la seguente linea:

it.comp.linux 0 14

0 = scarica tutti gli articoli
14 = gli articoli "durano" 14 giorni sull' HD prima di essere rimossi.

Scrivete questo script della shell, ~/slrnpull.sh:


#!/bin/sh
# Questo semplicissimo script è da utilizzarsi giornalmente
# per collegarsi al news server e scaricare gli articoli per una
# successiva lettura off-line.
# Ovviamente dev'essere attiva la connessione ad internet prima che
# venga lanciato questo script.

umask 022

# Prima di scaricare dal news server degli articoli, cancelliamo
# tra gli articoli gia' scaricati, quelli divenuti ormai vecchi.
# Per quest' operazione non è necessario essere collegati ad
# internet.

slrnpull --expire

# Colleghiamoci al news server e scarichiamo i nuovi articoli

slrnpull

Rendetelo eseguibile tramite il seguente comando:

$ chmod 744 slrnpull.sh

5. Download delle news

Dopo tanto editare e configurare potete finalmente collegarvi ad ad internet. Beh...prima o poi era da fare :)

Eseguite lo script "slrnpull.sh":

$ slrnpull.sh

Verranno scaricati sia i titoli dei messaggi sia i relativi articoli in essi contenuti.

NOTA: la prima volta sarà necessario scaricare migliaia di articoli. La cosa potrebbe richiedere una quantità di tempo non trascurabile (a me è occorsa 1h con un modem da 28.800). Se possibile, non effettuate tale operazione durante le ore di punta. Ora e giorno consigliati: le 04.00 del 30 Febbraio :)

Una volta che il programma SLRNPULL ha terminato il suo compito, potete scollegarvi da internet e procedere alla lettura delle news usando il programma SLRN.

6. Lettura delle news

E' un'operazione semplicissima, basta digitare il seguente comando:

$ slrn -create

NOTA: dovete usare l'opzione -create SOLAMENTE LA PRIMA VOLTA che lanciate il programma SLRN. Le volte successive il comando sarà semplicemente: $ slrn

NOTA: come per la shell di Linux, anche il programma SLRN fa distinzione tra lettere maiuscole e minuscole. IL COMANDO OTTENUTO PREMENDO IL TASTO [L] E' DIVERSO DA QUELLO OTTENUTO PREMENDO IL TASTO [l].

Per vedere gli articoli così faticosamente scaricati:

Per avere un elenco dei comandi, premete [?]. I più utili sono i seguenti:

Ovunque vi troviate

[CTRL]+[G] : annulla un' operazione

Elenco dei newsgroups

[l] : elenca i newsgroups sottoscritti ma che contengono solamente articoli già letti (tali newsgroups hanno uno 0 a sinistra del nome)

Elenco degli articoli

[ESC]+[s] : per ordinare (to sort) gli articoli secondo diversi criteri
[ESC]+[t] : espande/collassa un thread
[h] : dopo che è stato letto un articolo, serve per tornare all' elenco degli articoli a pieno schermo
[ESC]+[<] : salta al primo articolo
[ESC]+[>] : salta all' ultimo articolo
[a] : ricerca (in avanti) una data stringa nel campo "Author"
[A] : ricerca (all' indietro) una data stringa nel campo "Author"
[s] : ricerca (in avanti) una data stringa nel campo "Subject"
[S] : ricerca (all' indietro) una data stringa nel campo "Subject"
[o] : salva un articolo su HD nel file specificato dall' utente. Se il file esiste, l'articolo viene aggiunto alla fine del file (operazione nota come "append").
[.] : ripete l'ultimo comando dato

Lettura degli articoli

[t] : mostra/nasconde gli headers meno importanti
[T] : mostra/nasconde le linee che costituiscono citazioni di altri articoli (in inglese: quoted lines)
[TAB] : scavalca le "quoted lines"
[b] : indietro di una pagina
[SPAZIO] : avanti di una pagina
[INVIO] : avanti di una riga
[ESC]+[FRECCIA SU] : indietro di una riga
[ESC]+[FRECCIA GIU'] : avanti di una riga

NOTA: Per default vengono mostrati solo i seguenti headers: "From:" "Newsgroups:" e "Subject:". Se volete modificare tale situazione editate la variabile "visible_headers" in ~/.slrnrc.
Esempi:

visible_headers "X-,From:" per visualizzare, di default, tutti gli headers che iniziano con "X-" più l' header "From:"

visible_headers "" per non visualizzare, di default, nessun header

7. Invio delle news

Per inviare un nuovo articolo fate partire il programma SLRN

$ slrn

Vi comparirà l'elenco dei newsgroups. Ricordo che se non vedete nessun newsgroup ma solo il puntatore "->" :

- non avete sottoscritto (subscribe) nessun newsgroup. Premete [L] e scrivete il nome da sottoscrivere.
- tutti i newsgroups sottoscritti contengono articoli letti. Premete [l].

Premete [p] e [y] poi scrivete il nome del newsgroup al quale volete inviare il vostro articolo. Per default si dovrà scriverlo usando l'editor vi.

NOTA: se volete utilizzare un editor diverso, modificate nel file ~/.slrnrc la linea "set editor_command".

Uscite dall' editor, vi verrà posta la seguente domanda:
Post the message? Yes, No, Edit, poStpone

Si possono presentare i seguenti 3 casi:
A) nel file ~/.slrnrc è presente la linea "set use_slrnpull 1". Premete [y] oppure [Y]. SLRN non invia al news server l'articolo bensì lo copia nella directory ~/slrnpull/out.going con un nome simile a questo: X913482683-607-1.[utente]
TUTTI i files che si trovano in questa directory verranno automaticamente inviati al news server dal programma SLRNPULL (contenuto in slrnpull.sh) prima di scaricare i nuovi articoli.
E' il metodo consigliato.

B) nel file ~/.slrnrc NON è presente la linea "set use_slrnpull 1". Se premete [y] o [Y] l'articolo verrà inviato al news server. E' NECESSARIO, pertanto, avere attiva la connessione ad internet.

C) Indipendentemente dal contenuto del file ~/.slrnrc, premete [s] o [S]. L'articolo verrà salvato in un file, dovete fornire un nome. Successivamente, tale articolo potrà essere inviato (al news server o alla directory ~/slrnpull/out.going) premendo i tasti [ESC]+[p] al menù dei newsgroups.

Se volete rispondere ad un articolo che state leggendo, premete [f]. Le regole per l'invio del vostro messaggio sono identiche ai 3 casi sopra elencati.

8. Scoring

Il programma SLRN consente di assegnare un punteggio (score) ad ogni articolo che è stato scaricato, in base alle regole presenti nel file ~/slrnpull/Score. Una volta entrati in un newsgroup, SLRN automaticamente ordinerà gli articoli a partire da quello con punteggio più alto verso quello con punteggio più basso.
Il formato del file ~/slrnpull/Score non è complicato. Tale file consiste di sezioni, ognuna delle quali contiene le regole che devono essere applicate ad uno o più newsgroups per calcolare i punteggi da attribuire a ciascun articolo. Ogni sezione è identificata dalle parentesi quadre []. Per esempio, [it.comp.linux.*] indica l'inizio della sezione che definirà le regole per tutti i newsgroups che iniziano con i caratteri "it.comp.linux". Cioè per i seguenti gruppi :

it.comp.linux
it.comp.linux.setup
it.comp.linux.annunci

ecc ecc

Seguono ora alcuni esempi.

Con quest'ultima regola di assegnazione dei punteggi vi sarà senz'altro più semplice poter seguire le risposte ai vostri messaggi: compariranno per primi tutti i thread che contengono risposte a vostri articoli.
Per maggiori informazioni si veda il file /usr/doc/slrn-0.9.5.4/SCORE_FAQ

9. Protezione dallo "spamming"

Inserendo correttamente i vostri dati nel file ~/.slrnrc tutti coloro che leggeranno il vostro messaggio sapranno qual è il vostro indirizzo e-mail. Potrete così ricevere, in privato, le risposte ai vostri articoli da parte di altri frequentatori del newsgroup. Esistono però programmi appositi che vengono fatti entrare in un newsgroup per ricavare, dagli articoli inviati, gli indirizzi e-mail. Noto il vostro indirizzo e-mail è possibile inviarvi (in automatico) di tutto un po': proposte di vacanze in Papuasia, vendite di PC, consulenze informatiche, numeri del lotto, ... Questa poco civile pratica è nota come "spamming" (ho una mia versione in italiano ma è improponibile). Se volete evitare di trovare la vostra casella di posta intasata da messaggi non desiderati, potete alterare i vostri dati ed usare il file ~/.signature.slrn
Sempre facendo riferimento all' ipotetico abbonato di Tin Mario Rossi, potete editare il file ~/.slrnrc così:

hostname "tin.it"
set username "NOSPAM"
set realname "Mario Rossi"
set replyto "NOSPAM@tin.it"
set signature ".signature.slrn"

ed editare il file ~/.signature.slrn (per esempio) in modo che compaia la seguente frase: Per ottenere il mio effettivo indirizzo e-mail, sostituisci a NOSPAM il mio cognome.

In tal modo, solo chi avrà realmente necessità o voglia, vi contatterà tramite e-mail.

10. Autore dei programmi

L'autore dei programmi SLRN e SLRNPULL è:
John E. Davis davis@space.mit.edu
URL: http://space.mit.edu/~davis

L'ultima versione del programma SLRN è disponibile, tramite anonymous ftp, presso:
ftp://space.mit.edu/pub/davis/slrn/

oppure, presso i seguenti mirror:
ftp://ftp.uni-stuttgart.de:/pub/unix/misc/slang/
ftp://ftp.fu-berlin.de/pub/unix/news/slrn/
ftp://ftp.ntua.gr/pub/lang/slang/