Next Previous Contents

В дистрибутиве Linux-Mandrake RE Spring 2001 [1] есть rpm-пакет leafnode-1.9.18, но лучше взять более новую версию - архив исходников занимает всего 272Кб.

Распакуйте архив:

tar xzvf leafnode-1.9.19.tar.gz

Если сильны в английском, прочтите файл INSTALL. Если нет, то находясь в каталоге с исходниками вы должны набрать три команды (последнюю под правами root'а):

./configure make make install

Если всё сразу соберётся, то предпоследней строкой вы увидите фразу:

"Edit /etc/inetd.conf to start /usr/local/sbin/leafnode and restart inetd" Перевод: "Отредактируйте /etc/inetd.conf для запуска /usr/local/sbin/leafnode и перезагрузите inetd"

Можно, конечно, настроить для работы и inetd, но дело в том, что при инсталляции Linux Mandrake RE Spring 2001 [1] и ASPLinux 7.1 [2], по умолчанию устанавливается демон xinetd, а не inetd, т.к. считается более защищённым и не таким ресурсоёмким в использовании.

Конфигурация для inetd:

nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/sbin/leafnode

Перезапустите inetd:

/etc/rc.d/init.d/inetd restart

Конфигурация для xinetd:

service nntp { disable = no flags = REUSE socket_type = stream wait = no user = news server = /usr/local/sbin/leafnode only_from = 127.0.0.1 log_on_failure += USERID }

В последних версиях xinetd конфигурационные файлы для запуска сервисов находятся в каталоге /etc/xinetd.d

Перезапустите xinetd:

/etc/rc.d/init.d/xinetd restart

Проверьте поднялся ли сервер (желательно под root'ом):

netstat --inet -pan | grep 119

Если сервис поднялся, то вы увидите строку:

tcp 0 0.0.0.0:119 0.0.0.0:* LISTEN 4158/xinetd

Если нет, то проверьте правильность указания пути к leafnode - проблема скорее в этом. Заодно посмотрите что говорится в логах (/var/log/syslog/messages) про leafnode.

Я столкнулся с этой проблемой, когда писал статью - отлаживая leafnode, я не мог подключиться к нему, - изучение файла /var/log/news/errors показало, что leafnode не может открыть /etc/leafnode/config, т.к. у на него стояли права rw только для root'a.

Для того чтобы ваш news-сервер начал работать, в файле конфигурации leafnode /etc/leafnode/config нужно прописать минимум два параметра:

server = имя_сервера_новостей_провайдера expire = 20

Если вы планируете забирать новости с публичного сервера новостей, то нужно добавить две строки для авторизации на нём:

user = ваш_логин password = ваш_пароль

Все остальные параметры (порт, таймаут и т.д.) вводятся по умолчанию. Теперь подключитесь к Internet и наберите следующую команду (под правами root'а):

Это может занять несколько минут. У меня это заняло около 10 минут. После этого отключитесь от Internet-а и запустите knode (или тот клиент для чтения новостей, с которым вы работаете). Это клиент для чтения новостей для KDE. В качестве news-сервера укажите localhost. Дайте команду подписаться на группы новостей. Ваш news-сервер предложит вам список групп новостей, который он считал у news-сервера провайдера (список находится в файле /var/spool/news/leaf.node/groupinfo + там же создаётся пустой файл с именем news-сервера, например: news.talk.ru). Отметьте те группы, которые вас интересуют. После этого в каталоге /var/spool/news/interesting.groups появятся пустые файлы с именами выбранных групп новостей, например: fido7.ru.linux .

Опять подключитесь к Интернет. Запустите команду fetchnews, но уже без ключа -f (под правами root'а):

su news -c "/usr/local/sbin/fetchnews -vvv"

Программа начнёт принимать новости, которым 10 дней и меньше. Этот возраст статей установлен по-умолчанию. Если вы хотите его изменить, то добавьте строку maxage = 10 в файл конфигурации.

Кроме программы fetchnews, вам ещё понадобится программа texpire. Она расположена в том же каталоге, что и fetchnews. Эта программа удаляет те новости, чей возраст превышает значение переменной expire в файле /etc/leafnode/config. По-умолчанию - это 5 дней. В rpm-пакете поставляемом с Linux-Mandrake RE Spring 2001 [1] добавлен скрипт, который размещается при инсталляции в каталоге /etc/cron.daily. В этом скрипте стоит две команды:

su - news -c /usr/local/sbin/texpire su - news -c /usr/local/sbin/fetchnews

Первую команду можно оставить. Вторую удалить, т.к. она не предназначена для работы с dial-up. Вторую команду вы должны поместить в файл /etc/ppp/ip-up.local. В этом случае, новости будут проверяться и обновляться при каждом подключении к Интернет. Правда нужно учесть следующее: если вы подключены к одному и тому же провайдеру, то проблем нет, если же с вашего компьютера подключаются к разным провайдерам и news-сервер привязан к одному из них, то придёться ставить проверку на то к кому сейчас подключен компьютер.

Отправкой новостей занимается ваш локальный news-сервер. Исходящие сообщения располагаются в каталоге /var/spool/new/out.going. <!> Если вы хотите отправить сообщение в news-группу через почту, то вы можете воспользоваться публичным сервером новостей TalkRu [8]. Правда только в том случае, если такая группа новостей есть в нём. Адрес получателя выглядит как название_группы@talk.ru (fido7.ru.linux@talk.ru). И не забывайте про необходимость указывать ваш код для групп новостей Fido [7].

Александр Куприн. ru_classic@mail.ru


Next Previous Contents
Используются технологии uCoz