只要 PPP 处于活动状态,就可以在线阅读新闻。有很多可用的程序,两个简单的替代方案是rtin 和trn。
要开始阅读新闻,在大多数情况下,配置方面唯一需要做的就是设置 NNTPSERVER(通常在文件.profile)中设置一次即可
export NNTPSERVER=news.acme.xz
为了在帖子中获得正确的发件人地址,某些程序可能需要
export NNTP_INEWS_DOMAIN=acme.xz
为了能够在离线时阅读新闻,从而减少电话费并提供更大的灵活性,必须设置某种本地新闻假脱机。这需要一些配置,并且还会涉及一定的磁盘空间。初始设置完成后,事情应该或多或少地自行运行,只需偶尔关注一下即可。
这里将介绍两种不同的解决方案。
这里描述的解决方案基于新闻服务器 C News 和 NNTP 协议。C News 最初是针对另一种配置的,但也足够灵活来处理我们的情况。也可以使用更新的 INN 新闻服务器,但这可能需要更多的资源。无论哪种方式,请注意不要同时安装两者;它们不能轻易地共存。
至关重要的是,所有新闻维护都必须在以用户 news
身份登录时完成,并且所有配置文件都必须放在/usr/lib/news 中。一种处理方法是,在以 root
身份登录时,写入 su news; cd
。
配置中最重要的文件是
addgroup comp.os.linux.networking y
。
Dirk Gently's Holistic Detective Agency
acme.xz
。site
在 Path: 线程中的名称。在本文描述的设置中,使用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 需要一定程度的日常维护,但这可以通过命令 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
新闻可以通过程序 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 -
备选方案: 在小型新闻假脱机中,通常不需要新闻组 control
。与可能的用途相比,流量是巨大的。主要点是文章将被取消,并且组可能会自动创建。为了确保包含 newgroup
的控制消息不会给我们带来麻烦,需要一个名为newgroupperm 的文件指定我们将允许的内容
comp.os.linux tale@uunet.com yv
all any nq
在本例中,comp.os.linux 下的所有适当组都将被创建 (y),并且用户 news
将收到通知 (v)。其他一切都将被静默 (q) 忽略 (n)。如果您想手动创建所有组,则最后一行就足够了。备选方案: NewsX 的替代方案是 suck。
完全不同的解决方案是安装集成包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
请注意,如果从软件包安装了 leafnode,则以下内容中的前缀 /usr/local/sbin 应替换为 /usr/sbin。
在仍以 root
身份登录时,更改 /etc/inetd.conf 中控制 NNTP 的行/etc/inetd.conf
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
Leafnode 将通过以用户 news
身份通过 crontab -e
添加以下命令来照顾自己
# expire Leafnode, once a day
0 4 * * * /usr/local/sbin/texpire
新闻交换也以用户 news
身份通过以下命令完成(假设 PPP 已启动并运行)
/usr/local/sbin/fetch
想要阅读新闻的用户应该使用如何设置在线新闻阅读器?中的方法,除了他们为本地机器配置,即
export NNTPSERVER=localhost
这就是全部内容。第一个 fetch
将传输可用新闻组的列表。然后,Leafnode 将监视用户正在请求哪些组,并在下次激活时适应这种情况。
请注意,leafnode 似乎在需要 NNTP 授权的情况下不起作用。+.LP
备选方案: leafnode 的替代方案是 nntpcache,可从以下位置获得
ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz
备选方案: 另一个替代方案是使用新闻阅读器slrn 以及slrn-pull 包。新闻阅读器必须使用 spool
功能集编译。