inn+suck - instalacja.
v1.00, 20 Września 1998
Wszelkie sugestie i poprawki są mile widziane i należy je wysyłać pod
adres
michu@amg.gda.pl. Oryginał tego dokumentu możesz znaleźć pod
adresem
www.amg.gda.pl/~michu/uploads/.
Dokument ten został napisany w standardzie ISO-8859-2.
1.1 Przedmowa.
Całą treść tego dokumentu stanowi opis mojej instalacji duetu
suck+inn w systemie RedHat5.1, w oparciu o konkretne pakiety
(inn-1.7.2-13 i suck-3.9.4-2). Impulsem do napisania tego opisu były
moje początkowo nieudane próby instalacji oraz nikły odzew jaki
wywołały moje posty na grupie pl.comp.os.linux (pewnie jak zwykle moje
zapytania zaginęły gdzieś w potoku informacji i zapytań jaki dociera
tu codziennie). "Kreśląc" te parę słow mam nadzieję, że moje marne
doświadczenia z tymi pakietami będą dla kogoś pomocne. Nie mam zamiaru
pretendować do miana fachowca od konfiguracji serwerów news (po prostu
u mnie już to działa), tym nie mniej mam nadzieję, że opis minimalnej,
działającej konfiguracji będzie dla kogoś przydatny.
W tym dokumencie w paru miejscach porównuję inn'a do leafnode'a,
którego wcześniej używałem.
1.2 Podziękowania.
Za pomoc w powstaniu tego teksu dziękuję:
- Ariadnie, za to, że wyjechała służbowo na dwa tygodnie i mogłem
m.in. spokojnie spłodzić ten dokument ;) oraz za poprawienie
literówek po powrocie (kobiety bywają czasem przydatne :)
- Bartoszowi Maruszewskiemu z JTZ (B.Maruszewski@jtz.org.pl) za
nadesłanie dołączonego skryptu do dodawania zasubscribowanych grup
do inn'a, wsparcie moralne (z czego pewnie nie zdaje sobie
sprawy :) oraz przekodowanie tego dokumentu do SGML,
- Tomaszowi Szymczakowi (szymczak@bg.univ.gda.pl) za sugestię dotyczącą
opcji "-M" w suck'u,
- Radosławowi Gancarzowi (feanor@zeus.polsl.gliwice.pl) za rozwiązanie
problemów z odrzucaniem niektórych postów (zmiany w newsfeeds),
- Krzysztofowi Zietarze (tarhim@alpha.net.pl) za rozwiązanie problemu
ze ściąganiem (a raczej jak ich nie ściągać) grup "control", "junk",
"test" i "to" oraz inne uwagi,
- Innym, nie wymienionym z nazwiska, za zwrócenie uwagi na parę
drobnych niedomówień, niedociągnięć, potknięć i nieścisłości.
2.1 Co to jest inn i suck.
Inn jest to "InterNetNews daemon" czyli program umożliwiający wielu
użytkownikom korzystanie z zasobów news.
Suck jest to zasysacz newsów; pośredniczy on w wymianie newsów
pomiędzy dwoma serwerami: naszym i zdalnym (emulując zachowanie
normalnego czytnika; protokół wymiany postów pomiędzy serwerami
(wbudowany w inn'a) odbywa się na trochę innej zasadzie i wymaga
specjalnej konfiguracji po obu stronach, czego chcemy uniknąć).
2.2 Kiedy instalować inn+suck.
Jeśli uważasz, że spełnione są poniższe warunki:
- Nudzi Ci się i potrzebujesz jakiejś odmiany (warunek konieczny, bo
przecież tak naprawdę jeśli potrzebujesz lokalnego serwera newsów,
to z pewnością wystarczy Ci dużo prostszy w konfiguracji i używaniu
leafnode, poza tym ten eksperyment może Cię kosztować sporo czasu
i nadszarpniętych nerwów),
- Z newsów na twoim komputerze korzysta więcej niż jeden użytkownik
(bo dla jednego usera zupełnie wystarczające jest "rtin -SQ")
ewentualnie "twój" komputer służy jako serwer news dla całej sieci
(np. w firmie),
- Możliwości leafnode'a już Ci nie wystarczają (potrzebujesz
killfile'i, różnych ograniczeń na ściąganą pocztę newsową, ...),
to znaczy, że powinieneś zainstalować duet inn+suck.
Jeśli już będziesz chciał zainstalować to oprogramowanie, to będą Ci
potrzebne następujące (lub inne wersje) pakiety:
- cleanfeed (np. cleanfeed-0.95.5a-1),
- inn (np. inn-1.7.2-13, UWAGA: oryginalny pakiet z dystrybucji RH5.1
jest niepoprawny),
- perl-MD5 (np. perl-MD5-1.7-2),
- suck (np. suck-3.9.4-2).
Ja skorzystałem z adresów jak poniżej:
2.3 Wady i zalety tego rozwiązania.
Zalety inn+suck:
- Szybki (piekielnie),
- Znaczne możliwości (killfile, ...), choć tu należy raczej patrzeć
na możliwości suck'a (ponieważ dopiero po ściągnięciu pliki są
przesyłane do inn'a a jak coś już w całości przeszło przez modem,
to moim zdaniem niech już zostanie),
- Instalując ten serwer jesteś "wśród najlepszych" (większość dużych
serwerów news działa właśnie na inn'ie),
- Można grep'ować pliki z zawartością grup bez żadnych "skutków
ubocznych" (ta uwaga odnosi się do dużo prostszego leafnode'a,
gdzie czas do expire jest liczony od daty ostatniego dostępu do
pliku, więc jeśli "to się zrobiło", to czas ten oczywiście
przedłużał się).
Wady inn+suck:
- Dość pogmatwana konfiguracja i hermetyczna dokumentacja
(przynajmniej na początek) ale ten dokument powstał właśnie aby
wyeliminować tę niedogodność,
- Pamięciożerność:
- Proces innd cały czas pozostaje w pamięci (leafnode wywoływany
jest "na żądanie"),
- Na dysku zajmuje więcej miejsca niż leafnode (choć jest to do
przyjęcia).
2.4 Instalacja i konfiguracja.
Proces instalacji i "konfiguracji" jest prosty (przynajmniej do
pierwszego "ruszenia", ale o tym, bez tego wstępu, przeciętny zjadacz
newsów możne przekonać się dopiero po parodniowych dociekaniach):
- Zainstalować inn i suck (i jeszcze parę wymienionych wcześniej
drobiazgów),
- W pliku "/etc/news/innfeed.conf" usunąć sekcję peers,
- W pliku "/etc/news/newsfeeds" dodać własną sekcję z feeds, np.:
----- ciach -----
...
news.task.gda.pl\
:!junk,!test,!to\
:Tf,Wnm:
...
----- ciach -----
gdzie news.task.gda.pl to nazwa mojego serwera news, oraz do
definicji dystrybucji akceptowanych przez nasz serwer dodać polską:
----- ciach -----
...
ME\
:*,@alt.binaries.warez.*,!junk,!control*,!local*,!foo.*\
/pl,world,usa,na,gnu,bionet,pubnet,u3b,eunet,vmsnet,inet,ddn,k12\
::
## ^^ - to jest to pl
...
----- ciach -----
- W pliku "/usr/lib/suck/get.news.innxmit" wstawić nazwę serwera news
(REMOTE_HOST=news.task.gda.pl) oraz "sajtu" (tego samego co w
punkcie 3., tj. SITE=news.task.gda.pl),
- W suck'u w pliku "/usr/lib/suck/sucknewsrc" zapisać wszystkie
interesujące nas grupy i numery postów, od których ma się zacząć
"ściąganie", np.:
----- ciach -----
...
pl.comp.ogonki 1
pl.comp.os.linux 1
...
----- ciach -----
UWAGA!!! Zaczynając od pierwszego postu jesteśmy narażeni na
ściąganie dużej ilości danych a co się z tym wiąże znaczne
koszty (a i tak w końcu zapewne okaże się, że większość postów jest
za starych i zostanie odrzucona przez inn'a). Lepiej więc nie
zaczynać od początku ale od kilku(set) postów wstecz (u mnie 57
grup (w całości) z dostępem online (ethernet "wpięty do" TASKu,
transfer osiągał 160KB/sec (ale to było bardziej ograniczenie
zdalnego serwera niż łącza)) ściągało się godzinę),
- Usunąć pliki "/etc/cron.daily/inn-cron-rnews" oraz
"/etc/cron.hourly/inn-cron-nntpsend" (to dla nas robi suck).
- Teraz możemy już wystartować serwer np. poleceniem
"/etc/rc.d/init.d/innd start". Można/trzeba także dodać odpowiednie
linki do katalogów "/etc/rc.d/rc<@@formula>0-6].d/" (np. poleceniem ntsysv),
- Dodać grupy do inn'a. Można to zrobić ręcznie poleceniem
"ctlinnd newgroup nazwa.grupy" lub skorzystać z poniższego skryptu:
----- ciach -----
#!/bin/bash
#
# Ten skrypt tworzy automatycznie grupy w inn-ie, ktore podales w pliku
# /usr/lib/suck/sucknewsrc - konfiguracyjnym dla suck-a.
# UWAGA !!!
# Wymagany format tego pliku to:
############################
# nazwa.grupy numer.artykulu
############################
#
# Mozesz podac inna lokalizacje
SUCK_FILE=/usr/lib/suck/sucknewsrc
#
# Podaj sciezke do programu ctlinnd. Skrypt sprobuje sam zgadnac, ale
# lepiej podaj jak wiesz.
CTLINND=`which ctlinnd`
cat ${SUCK_FILE} | while read ln; do
set -e $ln >/dev/null
${CTLINND} newgroup $1
if [ $? -eq 1 ]; then
echo Blad podczas zakladania grupy $1 !!!
exit
fi
done
----- ciach -----
- Jeśli nie chcemy ściągać grup "control", "junk", "test" ani "to",
musimy stworzyć plik "/usr/lib/suck/active-ignore":
----- ciach -----
control
junk
test
to
----- ciach -----
Oczywiście wówczas grupy te trzeba wyrzucić z
"/usr/lib/suck/sucknewsrc".
- Wymianę newsów ze zdalnym serwerem robimy skryptem
"/usr/lib/suck/get.news.innxmit".
@@endformula>
2.5 Uwagi i kruczki.
- Usuwanie grup odbywa się przez "ctlinnd rmgroup nazwa.grupy" (suck
już sam usunie taką grupę z pliku sucknewsrc),
UWAGA!!! Nie usuwać grup "control", "junk", "test" ani "to", inn
bardzo źle to znosi.
- Opisy grup można dodawać w pliku "/var/lib/news/newsgroups", np.:
----- ciach -----
...
pl.comp.ogonki O polskich literkach w komputerach.
pl.comp.os.linux Linux - system operacyjny dla kazdego.
...
----- ciach -----
- Dane o przeterminowaniach są w pliku "/etc/news/expire.ctl", usuwanie
przeterminowanych postów można wymusić uruchamiając skrypt
"/etc/cron.daily/inn-cron-expire" (przecież nie każdy ma włączony
komputer całą dobę).
- Wyłączenie odrzucania artykułów przez innd (już to przecież robi
suck) dokonuje się komendą "ctlinnd perl n".
- Aby usunąć limit linii dla postów ściągniętych przez inn'a (już po
zaakceptowaniu przez suck'a) należy dodać w pliku "/etc/rc.d/rc.news"
do opcji FLAGS flagę "-l0".
- Jeśli podczas ściągania newsów pojawi się komunikat "GROUP command
not recognized, try the -M option" oczywiście dodaj w pliku
"/usr/lib/suck/get.news.innxmit" opcję "-M" do wywołania suck'a.
Prawa autorskie należą do (C) Rafała Czeczótki
michu@amg.gda.pl.
Dokument ten jest rozpowszechniany na podstawie GPL (Gnu Public
License).
Znaki towarowe należą do ich właścicieli. Nie ma żadnych gwarancji
co do dokładności czy przydatności informacji zawartych w tym
dokumencie.