News Leafsite mini-HOWTO

Florian Kuehnert

     [email protected]
   

Перевод: Павел Гашев, SWSoft Pte Ltd.

v0.3, 4 January 1998

Этот HOWTO поможет вам настроить Leafnode. Маленький беcплатный сервер новостей Usenet. С вопросами, замечаниями и предложениями обращайтесь к Florian Kuehnert ([email protected]). (C) 1998 by Florian Kuehnert.


1. Зачем нужен Leafnode?

Обычно, если вы хотите читать новости в offline, на вашем компьютере должен быть установлен сервер новостей (INN или CNews). К тому же у вас должен быть доступ через nntp или uucp к серверу новостей вашего провайдера. На самом деле, эти пакеты содержат намного больше возможностей, чем вам может понадобиться, так что лучший выход - это поставить себе Leafnode.

Leafnode намного проще в использовании и намного меньше в размерах, но имеет несколько недостатков: медленно работает и при сбое может потерять некоторые сообщения. Вот почему вы не должны использовать его в качестве большого сервера новостей, но тем не менее, это подходящее решение для обычных пользователей, которые не хотят тратить много времени на настройку INN.


2. Где взять Leafnode?

Leafnode доступен на ftp://ftp.troll.no/pub/freebies/. Автор - Arnt Gulbrandsen, служащий Troll Tech AS. Последняя версия 1.4. Кроме того, Leafnode включен в состав некоторых дистрибутивов (например, Debian). Однако, убедитесь, что у вас, как минимум, версия 1.4, в которой были исправлены некоторые критические ошибки.


3. Как его установить?

Небольшая помощь в установке идет вместе с пакетом, но давайте сделаем это вместе :-) - Если Leafnode v1.4 входит в состав вашего дистрибутива, достаточно мудро будет использовать скомпилированную версию и пропустить шаги с 1 по 4.

1.) Убедитесь, что на вашем компьютере нет другого запущенного сервера новостей. Когда вы наберете $ telnet localhost nntp, то вы должны получить сообщение об ошибке. В противном случае, нужно деинсталлировать INN, CNews или другой сервер новостей, и закомментировать строчку nntp в файле /etc/inetd.conf.

2.) Убедитесь, что существует пользователь "news" - проверьте его в файле /etc/passwd. Если нет, создайте его (просто наберите $ adduser news или сделайте нечто подобное при помощи утилит, поставляемых с вашим дистрибутивом).

3.) Распакуйте исходные тексты: $ tar xfz leafnode-1.4.tar.gz и перейдите в каталог $ cd leafnode-1.4

4.) Скомпилируйте программу и установите ее $ make; make install

5.) Отредактируйте файл /usr/lib/leafnode/config (он может находиться в другом месте. Например, в /etc/leafnode, если вы используете готовую версию из вашего дистрибутива). Строка "server =" должна указывать на сервер новостей вашего провайдера.

6.) Отредактируйте файл /etc/nntpserver. Он должен содержать имя вашего компьютера (localhost или другое, выдаваемое командой hostname). Если в каком-нибудь файле запуска (/etc/profile или /.bash_profile) определяется соответствующая переменная окружения, вы должны установить ей аналогичное значение.

7.) Отредактируйте файл /etc/inetd.conf: Убедитесь, что в нем нет строки, начинающейся с "nntp" (закомментируйте ее символом "#", если это так). Затем добавьте следующую строчку: nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/sbin/leafnode Когда кто-то (например вы :-) подключится к вашему компьютеру на порт NNTP в качестве сервера запустится leafnode.

8.) Подключитесь к Интернет и запустите программу "fetch" от пользователя root или news. Когда fetch запускается в первый раз, он скачивает список групп новостей вашего пройвадера. Это может занять некоторое время, в зависимости от скорости соединения и количества групп.

9.) Запустите вашу любимую программу чтения новостей (slrn, (r)tin и knews - не очень плохое начало) и подпишитесь на все группы, которые хотели бы получать. Причем не только подпишитесь, но и зайдите в них, даже если они пусты.

10.) Снова запустите fetch и загрузите все новости групп, на которые подписаны.


4. Как мне его поддерживать?

Теперь ваша система новостей запущена и работает, но можно сделать еще несколько вещей. Отредактируйте файл /usr/lib/leafnode/config, чтобы установить время устаревания групп, т.е. когда старые сообщения должны удаляться. Если вы читаете какие-нибудь группы с большим трафиком, стандартное время в 20 дней возможно окажется слишком большим для вас - 4 дня или одна неделя, я думаю, вас больше устроит. Можно изменить это значение для всех групп ("expire = n" хранит все группы n дней) или для каждой группы отдельно, написав groupexpire foo.bar n для хранения сообщений группы foo.bar n дней.

Установка времени сама по себе не удаляет старые сообщения - это производит программа texpire. Она может быть запущена, как задание, из cron или из командной строки. Если ваш компьютер работает круглосуточно, можно добавить следующую строку в файл crontab пользователя news (чтобы изменить его, войдите как news и наберите "crontab -e" или наберите как root "crontab -u news -e"):

0 19 * * * /usr/local/sbin/texpire
Эта строка заставляет cron запускать texpire каждый день в 19:00 (man crontab). Если ваш компьютер работает не круглосуточно, то нужно время от времени самому запускать texpire, когда заметите, что fetch начал работать слишком медленно.


5. Как он работает?

Leafnode - "самый настоящий" NNTP сервер, т.е. вы можете также войти в него с другого компьютера (через Internet, локальную сеть и т.п.). Каждый раз, когда вы входите в группу, программа чтения новостей запрашивает ее у leafnode. Если группа не существует, leafnode создает пустой файл, названный согласно группе, в каталоге /var/spool/news/interesting.groups. Когда вы запустите fetch в следующий раз, он загрузит сообщения группы. Если группа новостей не посещалась определенное время, leafnode перестанет загружать ее статьи и удалит ее имя из /var/spool/news/interesting.groups. Аналогично, если вы случайно подписались на группу новостей с большим трафиком, то можно самостоятельно удалить оттуда свой файл, если не хотите загружать сообщения этой группы в течении следующей недели.

Недели для Вас не достаточно? Вы хотите уйти в отпуск на три недели и продолжать получать новости? К сожалению, в leafnode нет опции для настройки этого, но вы можете отредактировать файл leafnode.h и перекомпилировать leafnode. Просто установите время в секундах в константах TIMEOUT_LONG и TIMEOUT_SHORT. Другое, более простое решение определить задание для cron, выполняющееся каждую ночь "touch /var/spool/news/interesting.groups/*".

Если вы хотите узнать список всех доступных групп, загляните в файл /usr/lib/leafnode/groupinfo, где найдете короткое описание к каждой группе.

Если хотите снова загрузить список групп новостей (например, захотите почитать новую группу), просто удалите файл /var/spool/news/active.read. Fetch создаст его и получит новый список. Впрочем, вам не нужно следить за этим постоянно, т.к. fetch время от времени делает это сам.


6. Какой программой чтения новостей мне пользоваться?

Под Linux нет *настоящей* программы чтения новостей, впрочем, как нет и *настоящего* текстового редактора. Я пользуюсь emacs в режиме GNU, т.к. это самый гибкий редактор под Linux. Многие пользуются trn, nn и др., так что можете попробовать любую программу на свой вкус. Только одной программой не стоит пользоваться - Netscape. Он большой, нестабильный, с маленькими возможностями и иногда создает корявые сообщения. Впрочем, вам выбирать.

В любом случае, knews - это неплохая отправная точка, чтобы набрать первый опыт. Он очень дружественен и легок в понимании.


7. Где мне получить дополнительную информацию?

Кое-какая документация идет вместе с пакетом Leafnode (почитайте файлы INSTALL и README, да и исходные тексты тоже очень интересны). Если вы хотите больше узнать о "профессиональных" и "больших" серверах новостей, посмотрите INN FAQ (идущий вместе с пакетом INN). Для того чтобы узнать информацию о вашей программе чтения новостей, наберите "man имя_программы", или посмотрите другие файлы в каталоге /usr/doc.

Если у вас есть вопросы относительно систем новостей, просто спросите об этом в соответствующей конференции (посмотрите в иерархии news.software.*).

Если у вас есть вопросы относительно этого HOWTO, просто напишите мне ([email protected]).


8. Благодарности

Я хочу поблагодарить Michael Schulz ([email protected]) за его помощь в решении языковых проблем и Cornelius Krasel ([email protected]) за его идею с "touch *".


9. Авторские права

Авторские права на русский перевод этого текста принадлежат © 2000 SWSoft Pte Ltd. Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: или к координатору русского перевода Linux HOWTO компании SWSoft Pte Ltd. по адресу