inn+suck - instalacja. Rafał Czeczótka, michu@amg.gda.pl 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 <mailto:michu@amg.gda.pl>. Oryginał tego doku mentu możesz znaleźć pod adresem www.amg.gda.pl/~michu/uploads/ <http://www.amg.gda.pl/~michu/uploads/>. Dokument ten został napisany w standardzie ISO-8859-2. ______________________________________________________________________ Spis treści 1. Wstęp. 1.1 Przedmowa. 1.2 Podziękowania. 2. Słowo o programach, instalacja i konfiguracja. 2.1 Co to jest inn i suck. 2.2 Kiedy instalować inn+suck. 2.3 Wady i zalety tego rozwiązania. 2.4 Instalacja i konfiguracja. 2.5 Uwagi i kruczki. 3. Prawa autorskie/legalność. ______________________________________________________________________ 1. Wstęp. 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. Słowo o programach, instalacja i konfiguracja. 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: 1. 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), 2. 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), 3. 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: 1. cleanfeed (np. cleanfeed-0.95.5a-1), 2. inn (np. inn-1.7.2-13, UWAGA: oryginalny pakiet z dystrybucji RH5.1 jest niepoprawny), 3. perl-MD5 (np. perl-MD5-1.7-2), 4. suck (np. suck-3.9.4-2). Ja skorzystałem z adresów jak poniżej: ˇ pakiety cleanfeed, inn i perl-MD5 - ftp.task.gda.pl/pub/linux/redhat-updated/i386/RedHat/RPMS/ <ftp://ftp.task.gda.pl/pub/linux/redhat-updated/i386/RedHat/RPMS/> ˇ pakiet suck ftp.task.gda.pl/pub/linux/redhat-contrib/tbird/i386/ <ftp://ftp.task.gda.pl/pub/linux/redhat-contrib/tbird/i386/> 2.3. Wady i zalety tego rozwiązania. Zalety inn+suck: 1. Szybki (piekielnie), 2. 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), 3. Instalując ten serwer jesteś "wśród najlepszych" (większość dużych serwerów news działa właśnie na inn'ie), 4. 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: 1. Dość pogmatwana konfiguracja i hermetyczna dokumentacja (przynajmniej na początek) ale ten dokument powstał właśnie aby wyeliminować tę niedogodność, 2. 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): 1. Zainstalować inn i suck (i jeszcze parę wymienionych wcześniej drobiazgów), 2. W pliku "/etc/news/innfeed.conf" usunąć sekcję peers, 3. 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 ----- 4. 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), 5. 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ę), 6. Usunąć pliki "/etc/cron.daily/inn-cron-rnews" oraz "/etc/cron.hourly/inn-cron-nntpsend" (to dla nas robi suck). 7. 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/rc0-6].d/" (np. poleceniem ntsysv), 8. 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 ----- 9. 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/suck newsrc". 10. Wymianę newsów ze zda...
Porozmawiajmy.TV