## 5. Новости

## 5.1 Как настроить онлайновую читалку новостей?

Пока PPP активен, можно читать новости в онлайне. Есть куча доступных программ. Два примера: rtin и trn.

Чтобы начать читать новости, то в большинстве случаев достаточно сделать (обычно только раз и для всех в файле .profile):

> `

>     export NNTPSERVER=news.acme.xz

> `

Для получения в сообщениях корректного From-address, некоторые программы могут потребовать:

> `

>     export NNTP_INEWS_DOMAIN=acme.xz

> `

## 5.2 Как настроить оффлайновую читалку новостей?

Чтобы читать новости в offline и таким образом сократить счета за телефон и достичь большей гибкости, надо установить локальный news-spool. Это потребует усилий по настройке, и также определенного объема дискового пространства. После первичной настройки все должно более или менее благополучно работать, требуя лишь некоторого внимания время от времени.

Здесь описаны два различных решения.

## 5.3. Как настроить C News?

Здесь описано решение на базе ньюссервера C News и протоколе NNTP. C News предназначался для несколько других целей, но его гибкости хватает и для нашей ситуации. Также можно использовать более свежий продукт - сервер новостей INN, но он может требовать большее количество ресурсов. В любом случае не вздумайте ставить их обоих одновременно; они не дружат друг с другом.

Критично, что обработка новостей делается от имени пользователя `news`, и все конфигурационные файлы находятся в каталоге /usr/lib/news. Один из способов сделать это, при регистрации как `root` выполнить `su news; cd`.

Самые важные настроечные файлы это:

- active - краткое описание активных групп новостей. Он обновляется командой addgroup, например, `addgroup comp.os.linux.networking y`.
- организация может быть указана по вашему усмотрению в поле заголовка Organization: , в нашем случае:

  > `

  >     Dirk Gently's Holistic Detective Agency

  > `

- почтовое имя в нашем случае `acme.xz`.
- whoami установливает имя вашего сайта в Path: . В установке, описанной здесь, с использованием NewsX, это имя никогда не выйдет за пределы машины, так что можете установить его так, как вам нравится, если только уверены, что оно уникально. В нашем случае это `roderick`.
- sys управляет выборкой и дальнейшим распространением новостей. Допустим, что ISP в нашем случае добавляет `acme.xz` к `Path`, и, что он единственный наш поставщик новостей. Данный пример в действительности говорит о том, что мы будем принимать все, что приходит, и, что мы отсылаем новости только на `acme.xz`, который прежде не видели и первоначально отправляли на наш собственный сайт. В этой упрощенной установке мы допустим, что все группы приходят из одного источника. `/all` определяет дистрибуцию, и должно быть включено. Буква F говорит о том, что все (указатели на) исходящие новости будут складываться в файл.

> `

>     ME:all/all::
>     acme/acme.xz:all,!junk/all:FL:

> `

- Должен быть создан подкаталог для исходящих новостей, в нашем случае:

> `

>     mkdir /var/spool/news/out.going/acme

> `

- mailpaths управляет отправкой сообщений в модерируемые группы, хотя эта задача обычно оставляется на усмотрение ISP.

C News нуждаются в определенной доле ежедневного внимания со стороны администратора, но его действия могут быть определены один раз и для всех командой crontab -e для пользователя news. Далее показано как может выглядеть эта установка; она может быть настроена как вам угодно:

> `

>     # 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 перемещает входящие и исходящие статьи (дважды в час), doexpire будет удалять утаревшие статьи (каждую нось в 00:30), а три последние команды выополняют различные административные и корректирующие ошибки функции.

Нужно также удостовериться, что при запуске машины все чисто. От пользователя root, добавьте строку в /etc/rc.d/rc.local:

> `

>     su news -c /usr/lib/newsbin/maint/newsboot

> `

News могут обрабатываться программой NewsX, извлекающей новости с NNTP-сервера. Программа может быть найдена на:

`ftp://sunsite.unc.edu/pub/Linux/system/news/transport/newsx-0.9.tar.gz` или:

`ftp://ftp.sol.no/user/egilk/newsx-0.9.tar.gz`

Установка NewsX предельно проста. Установка в классическом случае:

> `

>     make
>     su
>     make install
>     exit

> `

Для приведенной установки все, что вы должны сделать - это создать группы, которые вы хотите читать, используя команду "addgroup".

Чтобы выбрать статьи, пользователь news выдает следующие команды (при установке связи по PPP, или аналогичной -):

> `

>     newsrun
>     newsx acme news.acme.xz
>     newsrun

> `

Опция -d дает непрерывную распечатку экрану. За подробной информацией обратитесь к документации NewsX.

NewsX будет также заботиться о регистрации исходящих новостей.

Для управления удалением статей при их устаревании требуется файл explist, требуется. Комментарии в этом примере должны объяснить, что мы делаем:

> `

>     # 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:В маленьком спуле новостей, не требуется частое управление группами новостей. Полезность трафика изменяется в широких пределах. Основная задача состоит в определении, какие статьи отбросить, а какие группы создать автоматически. Чтобы гарантировать, что управляющие сообщения, содержащие новую группу, не создадут у нас беспорядок, в файле, называемом newgroupperm определяется, что именно мы позволяем:

> `

>     comp.os.linux   tale@uunet.com  yv
>     all             any             nq

> `

В этом примере, будут созданы все группы в иерархии comp.os.linux (y), и пользовательские новости будут сообщаться (v). Все остальные будут молча (q) проигнорированы (n). Последняя строка нужна, если вы хотите создавать все группы вручную.

ALT: Альтернатива NewsX - suck, или slurp совместно с postit. Slurp использует NNTP NEWNEWS, который может работать с несколькими серверами.

## 5.4 Как настроить Leafnode?

Другое решение состоит в установке интегрированного пакета leafnode. Он выполняет все задачи, требуемые для персонального спула новостей, и легко настраивается. Доступен на:

`http://www.troll.no/freebies/leafnode.html`

Как для C News, вся обработка новостей ведется от пользователя news.

Домашний каталог для leafnode /usr/lib/leafnode. Для установки введите:

> `

>     cd /usr/lib/leafnode
>     tar -xzvf leafnode-0.8.tgz
>     cd leafnode-0.8
>     make
>     su
>     make install

> `

Заметьте ниже, что префикс /usr/local/sbin должен быть заменен на /usr/sbin, если вы ставите leafnode из пакета.

Оставаясь пользователем root, измените строку, которая управляет NNTP в /etc/inetd.conf:

> `

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

> `

Активизация:

> `

>     killall -HUP inetd

> `

Возвратимся к пользователю news, напечатав exit. В /usr/lib/leafnode/config изменяем строку, которая определяет сервер NNTP. В нашем случае:

> `

>     server = news.acme.xz

> `

Leafnode будет обслуживать себя добавлением следующей команды через crontab -e от пользователя news:

> `

>     # expire Leafnode, once a day
>     0 4 * * * /usr/local/sbin/texpire

> `

Обмен новостями производится также от пользователя news следующей командой (PPP поднят и запущен):

> `

>     /usr/local/sbin/fetch

> `

Пользователи, которые хотят читать новости, должны после этого использовать рецепт "Как мне установить онлайновую читалку новостей?", за исключением того, что их настройки производятся для локальной машины, т.е.:

> `

>     export NNTPSERVER=localhost

> `

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

Note that leafnode does not seems to work in cases where NNTP authorization is required. +.LP

ALT: Альтернатива leafnode - nntpcache. Он доступен на:

`ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz` ALT: Другая альтернатива - использовать читалку новостей slrn вместе с пакетом slrn-pull. Читалка новостей должна быть скомпилирована с поддержкой `spool`.