只要 PPP 在运作中,就能读取线上的新闻群组 news。 有许多捶手可得的程序,简单介绍两个程序: rtin 和 trn.
想开始读取news,一般在建构时只需设定 NNTPSERVER (通常只需在 .profile 档里设定一次即可一劳永逸):
export NNTPSERVER=news.acme.xz
有些程序在要取得正确的张贴 来源-位址时,可能会要求:
export NNTP_INEWS_DOMAIN=acme.xz
想在离线 offline 时读取新闻群组 news 来 减少电话帐单费用以及拥有更大的弹性,我们需要设定一或多个的 news-spool。 这需要一些建构,当然也需使用到一定的磁盘空间,在初始化后,会产生或多或少的事,但 隅而才需要去留意一下。
我们在这儿说明两种解决方案:
这个所描述的解决方案是以 C News 这个新闻群组伺服器为基础, 且使用 NNTP 协定的。 C News 原本是以其他建构为目标的,但它也蛮符合处理我们的情况的。 也许有人会使用较近期的 INN 新闻群组伺服器news server ,但它却在资源使用上多了一些。不管任何方法,请小心 不要 两个都安装! 他们 不会那么好在一起相处的。
以 news
为使用者来迁入系统来做为新闻群组的维护是很重要的。
所有的建构文档都被放置在
/usr/lib/news里。
要处理这个,我们可以 su news; cd
来迁入为 root
来处理它。
在建构里,最重要要的文档是:
addgroup comp.os.linux.networking y
。
Dirk Gently's Holistic Detective Agency
acme.xz
。site
。
在这里的设定中,使用
newsx,这个名称不会离开这个机器,
你可以将它设定成任何只要你非常认为它很特别即可。 这个例子中即 roderick
。acme.xz
到路径 Path上,这也是我们所拥有的仅有的新闻群组来源。
上面的例子告诉我们将接受任何抵达的新闻张贴,我们将只张贴新闻到 acme.xz
上,这也是我们从未见过
的,而它是我们原本张贴在我们自己的网站上的。在这个简化的设立中,我们假设所有的群组都从单一源头而来。
/all
表示供应商版, 必须 将它们包含进去。字元 F
表示
(指出) 向外的新闻文章会被搜集成文档。
ME:all/all::
acme/acme.xz:all,!junk/all:FL:
mkdir /var/spool/news/out.going/acme
C News 需要每天一定程度的维护,但也可只用一次一劳永逸的方法 ,
那就是以 news
的身份,经由 crontab -e
命令
即可达成。建议设立的步骤如下,你可以照你的需要来调整:
# 维护进来和出去的批次资料
10,40 * * * * /usr/lib/newsbin/input/newsrun
# 每天停止 C News 一次
30 0 * * * /usr/lib/newsbin/expire/doexpire
# 如有需要,监控并报告状况
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-server 挑选信息,这个程序可从下面位址找到:
ftp://sunsite.unc.edu/pub/Linux/system/news/transport/newsx-0.9.tar.gz
Or:
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: 在一个小型的 news-spool里,通常是不太需要对新闻群组的
控制
的。在可能没有用处的状况下,交通流量 太大。
重点是新闻张贴的文章会被取消,而新闻群组会被自动地建立。为了确认
含有newgroup
的控制信息不会把我们给混乱了,有个叫
newgroupperm 的文档会指定
我们所允许的事情:
comp.os.linux tale@uunet.com yv
all any nq
在这个例子里,所有在 comp.os.linux 下的合适讨论群组都会被建立 (y),而 news
使用者会被
通知 (v)。 其于的会被静静地 (q) 忽略掉 (n)。最后一行已经足够让你手动地建立所有的群组了。
ALT: 还有一个 NewsX 的替代程序 suck。
还有一个不同的解决方案是,安装整合套件 leafnode。 它能处理所有个人 news spool 的所有工作,而且很容易建构。它可经由下列位址取得:
http://www.troll.no/freebies/leafnode.html
和 C News 一样,所有的 news 维护工作都应该是以 news
使用者的身份来做:
leafnode的位置在 /usr/lib/leafnode。安装它,执行:
cd /usr/lib/leafnode
tar -xzvf leafnode-0.8.tgz
cd leafnode-0.8
make
su
make install
注意,如果你从一个套件中安装 leafnode 的话,/usr/local/sbin 应该改成 /usr/sbin。
像之前地,以 root
身份来改变在
/etc/inetd.conf档
里控制 NNTP 的那行
nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/sbin/leafnode
使用下面命令来启动它:
killall -HUP inetd
执行 exit回到 news
使用者。在
/usr/lib/leafnode/config 档里改变定义 NNTP 伺服器的那行。在我们的例子中:
server = news.acme.xz
以news
的身份下 crontab -e
命令后, Leafnode 就会
自已扛起照顾自己的工作。
# 每天结束 Leafnode一次
0 4 * * * /usr/local/sbin/texpire
News 的交换也是以 news
使用者来完成,以下面的命令 (假设 PPP 已经架好且正执行中):
/usr/local/sbin/fetch
想阅读新闻讨论群组的使用者可以用 我要如何设立线上新闻阅读器呢?内的处方来做, 除非它们建构自己的本地端机器,例如:
export NNTPSERVER=localhost
相关资料应该都在那儿。首先,fetch
会传递可订阅的新闻群组的列表。
接著 Leafnode 会监控使用者所要求的哪些群组,并在下次它们被启动时将
它们加进来。
注:在 NNTP 需经授权才能使用时,Leafnode 好像就无法工作了。+.LP
ALT:有一个leafnode的替代品 nntpcache可由下面位址取得:
ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz
ALT: 还有个替代方案是使用与
slrn-pull 套件
一起的新闻阅读器
slrn 。 这个新闻阅读器在被编译时
设定好 spool
功能。