Så länge PPP är igång så går det att läsa nyheter online. Det finns många program för detta, två enkla alternativ är rtin och trn.
För att läsa nyheter så är det enda som behövs, i fråga om konfiguration, att
specificera omgivningsvariabeln NNTPSERVER, vanligtvis en gång för alla i
filen .profile
:
export NNTPSERVER=news.acme.xz
För att få Från-adressen korrekt i sina inlägg, så kan vissa program kräva:
export NNTP_INEWS_DOMAIN=acme.xz
För att kunna läsa nyheter när man är off-line och därmed reducera telefonräkningarna och få större flexibilitet, så måste man sätta upp en lokal nyhets-spool av ett eller annat slag. Detta kräver lite konfiguration och det krävs även en viss mängd diskutrymme. Efter den första konfigurationen så skall det fungera mer eller mindre av sig självt, med endast lite tillsyn då och då.
Två olika lösningar beskrivs här.
Lösningen som beskrivs här baseras på nyhetsservern C News och protokollet NNTP. Från början var C News tänkt att vara till för en annan typ av konfiguration, men det är tillräckligt flexibelt för att klara av våran situation också. Man kan även använda den nyare nyhetsservern INN, men den kräver något mer resurser. Hur som helst, se till att inte installera båda; de fungerar inte bra tillsammans.
Det är ett måste att allt underhåll av nyheterna görs när man är inloggad som
användaren news, och att alla konfigurationsfiler placeras i katalogen
/usr/lib/news
. Ett sätt att fixa detta är genom att, när man är
inloggad som root, skriva su news; cd
De viktigaste filerna att konfigurera är:
active
är en överblick över aktiva nyhetsgrupper. Den uppdateras med
kommandot addgroup, tex addgroup comp.os.linux.networking y
.organization
skall endast innehålla det du vill skall stå i fältet
Organization: i dina inlägg, i vårt fall:
Dirk Gently's Holistic Detective Agency
mailname
skall i vårt fall innehålla acme.xz
.whoami
innehåller namnet på din sajt i Path:-tråden. I en
konfiguration som den som beskrivs här, om man använder newsx, så lämar
detta namnet aldrig din maskin, så du kan sätta det till vad du vill så länge
du är hyfsat säker på att det är unikt. I vårt fall roderick
.sys
kontrollerar hämtning och vidarebefodring av nyheter. Vi
antar ISPn i vårt fall och lägger till acme.xz
till Path, och det är
den enda nyhetskälla vi har. Exemplet säger egentligen att vi tar emot allt som
anländer och att vi endast postar nyheter till acme.xz
som den inte sett
innan, och som är postade från våran sajt. I denna förenklade inställning kan
vi anta att alla grupper kommer från en enskild källa. /all
specificerar distributionen och måste inkluderas. Bokstaven F
säger
att (referenser till) utgående nyhetsartiklar kommer att samlas i en fil.
ME:all/all::
acme/acme.xz:all,!junk/all:FL:
mkdir /var/spool/news/out.going/acme
mailpaths
kontrollerar inlägg i kontrollerade (moderated) grupper,
även om denna uppgift vanligtvis utförs av ISPn.C News kräver ett visst dagligt underhåll, men detta kan specificeras en gång
för alla via kommandot crontab -e
, angivet som användaren news. En
möjlig konfiguration följer; den kan finjusteras efter behov:
# maintain incoming and outgoing batches
10,40 * * * * /usr/lib/newsbin/input/newsrun
# expire C News, once a day
30 0 * * * /usr/lib/newsbin/expire/doexpire
# monitor and report if needed
00 2 * * sat /usr/lib/newsbin/maint/addmissing
40 3 * * * /usr/lib/newsbin/maint/newswatch
50 3 * * * /usr/lib/newsbin/maint/newsdaily
newsrun
flyttar in och ut artiklar (två gånger i timmen), doexpire
tar bort gamla artiklar (varje natt klockan 00:30), och de tre sista kommandona
utför olika övervaknings och felkontrolluppgifter.
Man skall se till att det städas upp när man startar maskinen. Som användare
root, lägg till följande i /etc/rc.d/rc.local
:
su news -c /usr/lib/newsbin/maint/newsboot
Nyheter kan samlas ihop med programmet NewsX, som hämtar dem från en
NNTP-server. Programmet kan hittas på:
ftp://sunsite.unc.edu/pub/Linux/system/news/transport/newsx-0.9.tar.gz
eller:
ftp://ftp.sol.no/user/egilk/newsx-0.9.tar.gz
Att sätta upp NewsX är ganska enkelt. Installationen är ett klassiskt fall av:
make
su
make install
exit
Med inställningarna som finns här så är allt du behöver göra att skapa de grupper du vill läsa med kommandot addgroup.
För att hämta artiklar så utför användaren news följande kommandon (med antagandet att kommunikationen sker via PPP eller något liknande):
newsrun
newsx acme news.acme.xz
newsrun
Parametern -d
ger utskrift till skärmen. Se dokumentationen för NewsX för
mer information.
NewsX tar även hand om att skicka iväg utgående artiklar.
För att kontrollera borttagning av artikler allt eftersom de blir gamla så
behövs en fil explist
. Kommentarerna i detta exempel bör förklara vad vi
vill göra:
# hold onto history lines 14 days, nobody gets >120 days
/expired/ x 14 -
/bounds/ x 0-1-120 -
# retain these for 2 months
comp.sources,comp.os.linux.all x 60 -
# noise gets thrown away fast
junk,control x 2 -
# default: 14 days, no archive
all x 14 -
ALT: I en liten nyhets-spool behöver man oftast inte nyhetsgruppen
control
. Trafiken är enorm jämfört med hur användbar den är.
Huvudsyftet är att artiklar avbryts och grupper skapas automatiskt. För att se
till att kontrollmeddelanden som innehåller newgroup
inte skall förstöra
saker och ting för oss, så specificerar filen newgroupperm
vad vi
tillåter:
comp.os.linux tale@uunet.com yv
all any nq
I detta exemplet så skapas (y) alla riktiga grupper under comp.os.linux
och användaren news kommer att meddelas (v). Allt annat ignoreras (n)
tyst (q). Sista raden räcker om du vill skapa alla grupper manuellt.
ALT: Ett alternativ till NewsX är suck.
En annan lösning är att installera det integrerade paketet leafnode. Detta tar hand om alla uppgifter som krävs för en personlig nyhets-spool, och det är lätt att konfigurera. Det är tillgängligt via:
http://www.troll.no/freebies/leafnode.html
Som för C News, så bör allt underhåll göras som användaren news.
Hemkatalogen för leafnode är i /usr/lib/leafnode
. För att installera
så skriver du:
cd /usr/lib/leafnode
tar -xzvf leafnode-0.8.tgz
cd leafnode-0.8
make
su
make install
Notera att i det som följer så skall prefixet /usr/local/sbin
ersättas
med /usr/sbin
om du installerade leafnode från ett paket.
När du fortfarande är inloggad som root, ändra raderna som kontrollerar
NNTP i filen /etc/inetd.conf
:
nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/sbin/leafnode
Aktivera det med:
killall -HUP inetd
Återvänd till användaren news genom att skriva exit
. Ändra sedan
raden som definierar NNTP-servern i filen
/usr/lib/leafnode/config
. I vårt fall:
server = news.acme.xz
Leafnode sköter sig självt ifall man som användare news lägger till
följande via crontab -e
:
# expire Leafnode, once a day
0 4 * * * /usr/local/sbin/texpire
Användare som vill läsa nyheter skall sedan använda receptet i Hur sätter jag upp en on-line nyhetsläsare, förutom att de skall konfigurera det för den lokala maskinen, dvs:
export NNTPSERVER=localhost
Detta skall räcka. Den första `hämtningen' kommer att föra över en lista med tillgängliga nyhetsgrupper. Leafnode håller sedan koll på vilka grupper som användarna frågar efter och anpassar sig till det nästa gång det aktiveras.
Observera att leafnode inte verkar fungera i de fall när NNTP auktorisering krävs.
ALT: Ett alternativ till leafnode är nntpcache, tillgängligt på:
ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz
ALT: Ett annat alternativ är att använda nyhetsläsaren slrn
tillsammans med slrnpull-paketet. Nyhetsläsaren måste kompileras med
alternativet spool
.