中文版 The Linux News HOWTO 作者: Vince Skahan [1]vince@halcyon.com 译者: Hu,Shih-Ming [2]smhu@ish.chna.edu.tw v1.4, 29 November 1995 _________________________________________________________________ 这份文件是描述去设定、维护在 Linux 系统下的 USENET News 伺服器。如果您 打算要在自己的主机或同时在自己以及别人的主机上读、张贴网路新闻的话,则 您可能需要此篇文件。如果您并没有打算在您的系统提供网路新闻伺服器的话, 那您可以不须阅读此文件的。 _________________________________________________________________ 1. 介绍 * 1.1 有关於本文件的更新版本 * 1.2 意见回馈 * 1.3 版权告示 * 1.4 除外责任 * 1.5 其他资讯的来源 * 1.6 那些地方不适合请求协助 2. 硬体需求 3. 取得 USENET news 的软体 4. 新闻传送软体 * 4.1 Cnews Cleanup Release * 4.2 InterNetNews (INN) * 4.3 一些其他的网路新闻传送软体 * 4.4 译者的话 5. News Readers * 5.1 Tin * 5.2 Trn/Mthreads * 5.3 NN * 5.4 其他的新闻读取程式 6. 感谢 7. 关於 USENET 经常被询问的问题 * 7.1 为什麽我不能在 moderated 的网路新闻群组张贴布告 * 7.2 为何我会有与 permission 有关的问题? * 7.3 为何我张贴的布告在本地可以看得见, 但是在其□送的下游却没有出现 ? * 7.4 为什麽我的可执行版本内没有 nntp ? * 7.5 在做 expire 时,为什麽明明还有很多的储存空间,可是它竟然告诉我 说「空间不足」呢? * 7.6 为什麽每样都看起来很正常,可是却不能张贴布告呢? * 7.7 我可以将新的 news overview( NOV) 放进 trn/tin/nn 内,以代替各种 不同的资料库吗? * 7.8 为何没有可执行版本的 NNTP ? * 7.9 如何设定 NNTP,可以允许透过网路去读或张贴布告,而在本地不要储存 任何的文章或是资料库? _________________________________________________________________ 1. 介绍 本文件的目的是要解答一些有关於 Linux 系统上 USENET News上看来符合所谓「 时常被询问的问题」, 以及 Linux Slackware 版本上的特定问题。 本文件及相关的 Mail 及 UUCP "HOWTO"文件将取代原来张贴在 comp.os.linux.announce 上的 UUCP-NEWS-MAIL-FAQ。 1.1 有关於本文件的更新版本 文件的新版本将定期的张贴在 comp.os.linux.announce, comp.answers 及news.answers 上。 同时也会出现在有 mirror ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO的 anonymous ftp sites 上; 同时您也可以在 Linux的全球资讯网(WWW )http://sunsite.unc.edu/mdw/linux.html上面取得。 1.2 意见回馈 欢迎您使用电子邮件来表示您对本文件的意见(不管是正面或是负面的意见)。 如果您发现错误或是明显欠缺什麽的话一定要与我联系。 所有收到的电子邮件我都会看,但是不一定会有反应。 对於要求增加内容的要求 也许在时机恰当、 有意义的需求,还有每天的血压值都合适的情况下会加以考虑 。 (译注:恐怕还要在这些条件上再加上一个「到那时如果我还记得的话」; 至於中文版的部份如果您觉得有任何意见的话,请 mailto:smhu@ish.chna.edu.tw。) flames 的话,会安静的到 /de/null 去,所以不要来烦我。 有一点比较特殊的是 Linux 的档案系统内并没有所谓的标准的路径, 在本份文 件内的路径是指在撰写文件时的标准或是我私人曾见过的。 请您和您使用的版本 之提供者询它们的路径。 您如果对於本份文件的格式有意见的话,请和 HOWTO 的维护者 - Greg Hankins (gregh@sunsite.unc.edu)联系。 1.3 版权告示 News-HOWTO 的版权是属於 Vince Skahan 的。 (译注:当然啦,中文版的版权 就是属於我的啦! ) 允许照原文逐字的复制、重制及散播到任何实体或是电子媒体,而不需要再通知 作者。 如果译者提到是由谁转译的,则翻译亦同样的被允许。 简短的引用不需再知会原作者, 衍生的工作或是特殊的散播 News-HOWTO 必需跟 随著本份文件的原文, 或是指出原文的出处。 同时允许及鼓励商业性的传播;不管如何, 有关於此类的散播作者将很乐意於被 知会(如果您再赠送一份给原作者的话)。 (译注:我是不用那麽麻烦啦!如果 是商业性质的传播的话, 请将每个字新台币一元的打字费以 Linux 的名义捐给 消费者文教基金会就可以了!) 事实上,我们希望能透过各种管道来推广这些资讯, 但是,我们还是希望能够保 留 HOWTO 文件的版权。 我们更希望在 HOWTOS 里面所有的文件被广为宣传。 如果您有问题,请与 Linux HOWTO 的管理者 -- Greg Hankins 连络, 他的电子邮件信箱为 gregh@sunsite.unc.edu 1.4 除外责任 当然啦,我不对使用本文件所引申的後果负任何保证责任。您使用其中的观念、 例子、及其他的任何部份之风险由您自行承担。 1.5 其他资讯的来源 USENET news.admin.misc 网路新闻伺服器管理者的一般话题。 news.admin.policy USENET 所发布的一些政策。 news.admin.technical 维护网路新闻伺服器(moderated)。 news.software.b 讨论一些与 B-news 相容的软体。 news.software.nn 讨论有关於新闻读取程式 "nn"。 news.software.nntp 网路新闻传输协定。 news.software.readers 一些用来读取网路新闻的软体。 news.sysadmin 对於系统管理者的评论。 news.announce.newusers 一些张贴给新使用者的布告(moderated)。 news.newsuers.questions 对於 USENET 新手的问题与解答 书籍 列的书籍可能对您会有所帮助。 * "Managing UUCP and USENET" 由 O'Reilly+Associates 所出版。 依我的意 见这是一本有关於 USENET 的程式及协定之最好书籍。 * "Unix Communications" 由 Waite Group 所出版。 它对於各个单元及它们 如何结合一起有很好的描述。 * "Practical Unix Security" 由 O'Reilly+Associates 所出版。 对於 UUCP 的安全有很好的讨论。 * "The Internet Complete Reference" 自 Osborne 是一本很好的参考书籍, 它说明各种在国际网路上不同的服务,包含 news、mail 及其他国际网路上 的资源。 * "The Linux Networking Administrators' Guide" 来自 Olaf Kirch 的 Linux DOC而至少有 O'Reilly 及 SSC 出版。 它一次就把所有关於UNIX 网 路的东西应该知道的东西全告诉您。 (译注:好厚喔,um... 当枕头保证不 舒服!) 1.6 那些地方不适合请求协助 在 Linux 下设定及执行USENET 的 news 并没有什麽特殊的地方, 所以请不要将 与 news 有关的问题张贴到 comp.os.linux.* 的新闻讨论群。 (译注:在 tw.bbs.comp.linux 上好像比较没有这种禁忌吧!也许是因为大部份的 问题也只 是「如何安装」啦,「如何设定」或是「如何找到...」这类的问题吧!) 除非您的问题恰好是真的只有 Linux 才有的( 例如:请告诉我在 SLS v1.03 上 使用 bash1.12 要去执行 INN 的话, 需要那些补丁(patch))这类的问题。则您 可以在相关的网路新闻群询问。 让我再重复一次 一般来说,没有理由在 comp.os.linux 相关的新闻群张贴与 news 有关的文章。 已经有 news.* 的新闻群可以去处理您所有的问题。 (译注:在本地,news 相 关的讨论在 tw.bbs.netnews; 不过那个版有些大老级的存在,所以要张贴前请 再三思, 在那儿闹笑话可是一点都不好笑;想想看, 一部 News Server 的管理 者竟也会问出这样子的问题, 如果让您的 feeder 知道了, 我看啦!他只要一 想到与您互相转信的话, 睡到半夜都会惊醒喔! -- 那天他的 news server 也 许就被您无意识的行为给搞死了也说不定!) 如果您将不是与 Linux 有特定关系的文章张贴到 comp.os.linux.* , 那您绝对 是找错地方寻求协助了。 USENET news 的老手们不见得会去看 Linux 相关的新 闻讨论群 (一般他们很少是跑 Linux 的作业系统的)。 与其张贴不单只是 Linux 才会有的主题到 Linux 的新闻讨论群是在浪费您自己 及其他人的的时间, 并且它时常延误对您所提问题所需要的答覆。 2. 硬体需求 在 Linux 下跑 USENET News 对没有特别的要求。 只要有足以储存软体及线 绪(thread)资料库以及其网路新闻内容之任何型态的储存媒体就可以了。 对於一 个刚开始者最小的需求量是硬碟里有 10 MB的空间。 (译注:别听他的,这种大 概就是那种「证明说我也能够...」的那种安装法啦! 单单一个 tw.bbs.* 一天 就有 10 MB 了, 只要您的 feeder 一开始□送,您总不能每天 expire 个两、 三次吧! 如果您希望文章能够保留个两周的话, 那 10 * 14 = 140 MB 就跑不 掉了, 加上一些有的没有的,大概要 200 MB, 如果又有那个没水准的逼逼也死 站设定个不好而资料回留的话, 保证您的 INND 马上就「挂」了!) 3. 取得 USENET news 的软体 本"HOWTO"内的软体都可以由阈际网路上的 anonymous ftp site 取得。 到 ftp.uu.net 的 /networking/news 内寻找,一般来说是一个好的开始。 newspak-2.4.tar.z 内含有在 Linux 系统下针对建立 uucp、news 及 mail 软体 的相关设定档(config file)及读我的档案(readme)。 这些都是免费的。您可以 在 sunsite.unc.edu:/pub/Linux/system/Mail/news 内找到它。 如果您在上述 地方没有办法找到的话, 请给我一个 email,我将会确定您可以得到一个复本。 译注:比较新的版本可以在以下地点取得: ftp://mail.ncku.edu.tw/pub/os/Linux/Unofficial/sunsite-incoming/newspa k-2.5.tar.gz ftp://ftp.ccu.edu.tw/pub1/unix/Linux/system/news/newspak-2.5.tar.gz 4. 新闻传送软体 在现在,UNIX 系统下有两大新闻传送软体,一个是 Cnews 以及 INN。 而旧版的 Bnews 已正式的宣布「死亡」了, 而且原作者也不再对其支援了。 在这里所说的新闻传送软体是指其在幕後处理, 以使得张贴的文章得以传递及使 得新闻阅读软体可以去存取的软体。 您可以设定您的路□到任何您喜欢的地方, 只要 UUCP 的绝对路径可以抓到 rnew 的许可档(Permission file), 以及您设定了您的网路新闻阅读软体, 使 得它可以去找到 "inews" 及 "mail"。 (译注:目前在台湾使用 UUCP 最具代表 性的大概是曾瑞源先生当年建立的 UUserv 了! 谢谢 cthuang@UUserv.NET.tw 所提供以下的讯息! >您在 <4p3h97$8jj@ish.chna.edu.tw> 文章内提到: >: 可以去找到 "inews" 及 "mail"。 (译注:现在还有人在用 UUCP吗) >当然有呀。UUserv 社区网路是台 湾少数提供 UUCP 的地方喔。 >而且也是台湾最大的 UUCP 集散中心呢。 um... 注完了 ) 注意:如果您尝试同时安装 Cnews 及 INN ,那您一定是在自寻苦恼; 只能选这 个或是另外一个。可以加入 NNTP 的 "reference Release" 到 Cnews , 因为本 来它们就打算「你侬我侬」的。 4.1 Cnews Cleanup Release 目前在网路新闻上标准的版本应该是 Cnews 了。 它已经出来好多年了,我是 在1988年第一次看到它的。 目前的版本叫做 Cnews Cleanup Release, 它是由 CR.G 做补丁的。 Cnews 主要的好处是它的成熟度。您会发现它可以在各种的 *nix 系统执行, 目 前在全世界已有数以千计的系统是使用 Cnews 的。 它主要的缺点则是它好像是要给那些利用 uucp 及 modem 连接两点之间所使用的 。 因此在管理网际网路及时系统的□送及读取时, 需要额外的 NNTP 软体。 尽管如此,对於一个新的 USENET 管理者首先最好是选择使用 Cnews。 因为它是 如此的稳定, 有良好的文件及好几千个有经验的管理者可以回答您的问题。 'Cleanup Release'表示了包含了对 Overview 的支援, 而且比过去的还要快。 结果呢就是您现在可以直接使用 Cnews NOV 所提供的功能, 而不需另外再利用 其他的软体来支援网路新闻读取程式如 nn、 tin、及 trn。 我并没有完整的说明如何去安装及设定这个软体, 原因是我在家里好久以前就转 换到 INN了。 如果有任何人要提供我此方面的线索, 请送个电子邮件给我。 在 sunsite 的 newspak 含有在 Linux 系统上跑 Cnews Cleanup Release 的设 定档。 而您如果要使用 bash1.12 的话则您需要做一些补丁的工作。 基本上您跑新的 'quiz' 脚本并且采用预设值。 您必须参考您的 /usr/include 来回答一连串的问题, 但是您也不必担心,那些都是很明确的。 安装 Cnews 安装 Cnews Cleanup Release 绝对是非常单纯的工作; 只要取得原始程式,解 开它们, 然後按照指示去作就好了。 在 newspak 内的 quiz.def 是当您第一次执行 quiz 时所产生的。 而您只要查 看在 /usr/include 内的档案就可以得到正确的答案。 您需要最近版本的 bash 才可以使 Cnews 通过自我测试。 您可以利用 'bash -version'来知道您现在使用的 bash 的版本。 1.14.2 的版本绝对是不怎麽的高 明。 在我写这个文件的时候,看起来 1.14.5 好像有比较好些。 Steve Robbins 已确定最近的版本之 'Cnews Cleanup Release' 发现与 GNU 的shellutils-1.9 结合时有一只□! 我记得 Steve 有将其补丁放到 sunsite。 设定 Cnews 至少您需要去编辑或是看一下底下的一些档案, 它们都放在 /usr/local/lib/news。 active - active 档案。(译注:就是存放您要收的网路新闻讨论群的名字) batchparms - 批次作业的参数。 explist - 设定文章存活的时间。 mailname - mail replies 时在 header 的名字。 mailpaths - 要张贴文章到 moderated 时 mail 的路□。 organization - 您的公司名称。 sys - 控制那些是您要接收或是□送的。 whoami - 在 Path: 那行您的主机名称。 维护 Cnews 首先,最重要的原则就是不要手动去弄乱那些本来有公用程式去设定的档案。 特 别是不要手动去设定 newsfeed (您可以跑 addfeed)及弄乱您的 active 档案 (您可以跑 addgroup)。 当您有疑问的时候,读...再读附在原始程式内的文件 。 每件事都可以利用 cron 来做。 我的 crontab 内有关於 news 的部份如下: # take the compressed batches that came in from other systems # also, post (locally) articles that originated here 20 * * * * /usenet/sw/news/bin/input/newsrun # batch 'em up to go out 0 * * * * /usenet/sw/news/bin/batch/sendbatches myfeedsite # expire C-news 59 0 * * * /usenet/sw/news/bin/expire/doexpire # monitor stuff and report if needed 10 5 * * * /usenet/sw/news/bin/newsdaily 00 5 * * * /usenet/sw/new/bin/newswatch # turn processing of incoming news batches off 6:30AM - 4:00 PM 30 6 * * * /usenet/sw/news/bin/input/newsrunning off 00 16 * * * /usenet/sw/news/bin/input/newsrunning on 4.2 InterNetNews (INN) INN 是新跃上舞台者,但是由於它的完整性使得它获得欢迎。 它主要的好处是它 的 速度以及包含了完整的 nntp 的包装。 它主要的缺点是它是属於比较新而尚 未在许多标准的 *nix 系统上安装及没有瑕疵的跑过。 另外,它需要有个守护神 (daemon)一直在执行(innd) 及再加上一个 overchan 的 daemon 去处理线 绪(threading)。 它的标帜看来就是可观的记忆体及较快的速度。 我曾经在一台 8MB 386-33(没有跑 Xwindows) 的主机上用 INN 以 UUCP 的形 式透过14.4 kb modem 而有过一个晚上最高 5 MB 新闻□送量的记录, 并且没有 任何的问题。 尽管它在 Linux 下是快速而且相当的稳定, 但是由於它对於刚开始的新闻伺服 器管理者而言并没有完整的文件 (虽然真实的情形是如果您□解以後,跑它是相 当的容易的)。 所以新的 USENET管理者最好是先用 Bnews 或是 Cnews , 直到 您对网路新闻有了相当的程度後再去使用 INN。 (译注:别听他的, 在台湾是 一百台新闻伺服器主机至少有九十五台是安装 INN 的, 文件少是真的,不过在 Linux 上安装并不是很困难, 文件现在有 News FAQ part 1-9以及相当完整 的manual page, 只是您所需要的只是多做点功课就是啦! 尤其是有位 C.S.Chen ;免惊啦) INN 的 permission 是很特别的,别把它们弄混了。 INN 对於标准的 TCP/IP 的要求也很特殊, Linux 在这方面并不是很合乎条件, 因此您最好是去一般 Linux 的 archie site 抓特定给 Linux 用的 INN 来用可 能比较妥当。 (译注:这一方面在 Linux 1.3.67 以上的版本其 TCP/IP 己经符 合其要求了, 目前最 smart 的是kernel 1.3.70以上再加上 inn1.4unoff4 um...据说 unoff5 都出来了! 使用 redhat 3.0.3 的可以到他们公司的 ftp site 下载 newspak-unoff3 5.rpm 违是一个 binary distribution) 安装 INN ( 以下来自 Arjan de Vet - devet@info.win.tue.nl ) 我为了要使 INN 1.4 可以在 Linux 上跑, 於是做了必要补丁及设定档, 您可 以在以下的地方取得它: ftp.win.tue.nl:/pub/linux/ports/inn-1.4-linux.tar.gz INN 需要一个良好的 /bin/sh。我使用 bash 1.13 beta版 (您可以在各个 ftp site 找到它)。 bash 1.12 有一些小问题, 有些网路新闻群它并不能正确的掌 控 (也许还有其他的问题,不过我不记得了)。 设定 INN 基本上只要您按照 Arjan's 的指引, 就可以把它设定完成。 这里是一些须要做 些什麽的摘要。 * 在 config.data,确定您已将 HAVE_UNIX_DOMAIN 设定成 DONT。 (译注: 在使用新的 kernel及 inn-1.4unoff4 时,您可以设定成 DO) * 将您跑 innd 的那台主机名称加入 hosts.nntp, 如果您只使用 uucp 的话 , 就填入您的 sitename。 * 确定您的 /etc/inetd.conf 内那行 nntp 已经用"#"号将它 comment 掉了。 (译注:如果用暴力一点的方式,就乾脆将它 kill 掉) * 如果您有安装 Taylor UUCP的话, 则还要将 config.data 内的 HAVE_UUSTAT 设成 DO。 如果您在此设定错误的话, 会导致没有办法将 news 外送。 * 如果您跑 INN,您务必记得要去修改 syslog.conf,这对您有很大很大的帮 助。 INN 有个很特别的 FAQ,每个月都会定期的张贴到 news.software.nntp, news.software.b,news.answers。 您也可以在 rtfm.mit.edu:/pub/usenet-by-hierarchy/news 下取得。 您将会很高兴您做了 ! 维护 INN 我发现 Linux 的 INN site 除了设定一些 cron 外, 它几乎不须什麽照顾的。 基本上您需要一些像以下的 crontab: # daily maint, also expire the .overview database and articles 1 0 * * * /usenet/sw/inn/bin/news.daily expireover delayrm < /dev/null # send 'em out 5 * * * * /usenet/sw/inn/lib/send-uucp (如果您已经改用 bash 1.13 则 "< /dev/null" 就不需要了) 4.3 一些其他的网路新闻传送软体 以下列出一些在 Linux 上确认也可以跑的网路新闻传送软体: * dynafeed * nntp1.5.11 * slurp1.05 4.4 译者的话 翻译了老半天,结果是愈翻愈火大。 还好是当初我在安装 INN 的时候, 还没有 看到这个HOWTO, 否则看了老半天,能不能安装的起来, 我看还是个大问题! 以下是利用 Slackware Linux (我忘了那一个版本了啦!但不是 3.0 的喔 :-( 照样来段声明: 如果您要利用 3.0以上的版本来安装, 发生一切意外,其後果 由您自行承担, 不过我很怀疑难道 Slackware 的安装会改了吗? 如果您利用 3.0 安装後有了结果, 请 email 告诉我) 首先呢就是您要有 Slackware Linux 啦, 要怎麽取得您就自己设法吧! 看是要 用 hopenet 的光碟, 还是要利用网路安装, 或是要买正式版本的 Slackware 我都没有意见啦! 您可以利用 pkgtool 来安装 N 系列里面的 innd。 它会帮您安装的差不多; 但 是,只是差不多而已喔, 并不是帮您安装的好好的呢! 您还是需要再去做一些 设定的啦! 有一点要提醒各位的是, Slackware 的 inn 是安装到 /usr/lib/news 去, 而 不是一般的/usr/local/lib/news 喔。 然後您就 cd /usr/lib/news/tools.linux , 这个里面有好多的宝藏呢, 首先 您先把有个叫INSTALL.linux 的给印了出来, 然後您就按照上面的步骤一步一步 的做下去大概就接近完成了。 我在下边所附的是从那儿翻译过来的文件, 但还 是强烈的建议您最好还是看原始的。 --------------------------------------------------------------------- 系统需求: * ld.so * libc.so.4 -> libc.so.4.5.19 * smail 或是 sendmail 安装步骤: 1. 利用您套装的工具解开程式组, 在 Slackware Linux 则是利用其公用程式 pkgtool。 2. 确定您的系统内有个使用者及群组名称叫 news 的。 /etc/passwd news:*:9:13:news:/usr/lib/news: | | |____ GID 13 ! | |_______ UID 9 ! |_________ 这个原文写错了,如果您是用news::9:13 的话,任何人都可以使用 news 的身份并且不需要 password 就可以 login 了,如果您们是这样子设定,请告诉我,那天去坐坐..... ^_^ /etc/group news::13:news |_______GID 13! 3. 因为有一些 script 会寄信给 usenet,所以必须设定一个 mail 的 alias, 把它放在 /etc/aliases。内容如下: /etc/aliases: news: root usenet: root 然後再利用 newaliases 命令重建 alias 的资料库。 4. 到 /etc/rc.d/rc.local 加入 inn 起动的 script "rc.news" # start inn /usr/lib/news/etc/rc.news 5. 将在 /usr/lib/news/tools. 里面有个叫做 crontab-news 的档案复制到 /usr/spool/cron/crontabs/news去, 并且将它做适当的修改。 将它里面有 个名字改成□送网路新闻给您的主机名称。 6. 您现在的 news LIBDIR 是在 /usr/lib/news。 但因为有很多的新闻读取程 式会到 /usr/local/lib/news 去读取相关的设定, 因此您需要做一个符号 的连结: ln -s /usr/lib/news /usr/local/lib/news 如果您在以前曾经安装过 Cnews 的话, 那就已经存在个 /usr/local/lib/news了, 因此您需要先利用 rm 将它拿掉! 7. news 的 spool 目录在 /var/spool/news。 如果在您的系统内已经有在不同 目录下的 news 文章时, 而您又已经有 /var/spool/news 的目录时, 先移 除/var/spool/news 目录, 然後再将您的 news spool 目录做个符号连结 (例如说,如果您原有的在 /news 的话) ln -s /news /var/spool/news 8. 修改在 /usr/lib/news 下的 config 档: 在以下的档案内容里面如果有看 到 manlobbi , 这表示是个新闻伺服器主机, 而 knobel 是我的网路新闻 器客户端。 您必须去浏览在 /usr/lib/news 内的以下档案。 expire.ctl hosts.nntp inn.conf moderators newsfeeds nnrp.access nntpsend.ctl passwd.nntp 以上一定要修改的有 inn.conf, hosts.nntp, newsfeeds, nnrp.access 其 他的 ... um.. 就看著办好了。 如果您是用 nntpsend 的话, 那您就需要 去改 nntpsend.ctl 9. 建立一个空的history database 及 log :>/usr/lib/news/history :>/usr/lib/news/history.dir :>/usr/lib/news/history.pag :>/usr/lib/news/errlog :>/usr/lib/news/log chmod 664 /usr/lib/news/{history*,log,errlog} chown news.news /usr/lib/news/{history*,log,errlog} 10. 以 root 的身份执行 makedirs.sh 11. 利用 man news-recovery 去读 news-recovery。 它包含当您已将您的 news 系统升级到 INN 时如何去回复它。 12. 确认您的 uucp permission file 允许 uux 去跑 rnews 及 grnews。 um... 懒得再翻下去了, 这个真得是国情不同, 你要用 uucp 吗? 顺便提 一下, 如果您对外的频宽低於 28.8k 的话, 那我看就算了, 不要再装什 麽 news server 了; 前些日子□得无聊算了一下下, 如果只接tw.bbs.*的 话, 一天会吃掉一条 14.4k 的频宽。 13. 这条有点儿问题, 如果没有记错的话, 在 News FAQ 里面建议的改法可能 会好一些! 就是在 /etc/syslog.conf 内加入 *.=info;*.=notice;news.none /usr/adm/messages ^^^^^^^^^^ 加上去 news.crit /var/log/news/news.crit news.err /var/log/news/news.err news.notice;news.info /var/log/news/news.notice 这三个档,news.daily 在每天执行的时候, 会将它们压缩起来, 然後放 到/var/log/news/OLD 里面去, 预设值是存七天, 名字好像就是 news.err.gz.1这种样子, 直到 .7 为止代表七天前的一些 log 。 我曾经看过很多人的都是放到 /usr/adm/messages 及 /usr/adm/syslog 里 面去,这样子做的缺点是 messages 会一直长大, 而 news.daily 并不会去 处理 messages 这个档, 到了有一天,您也没有什麽工具程式可以看它或是 去编辑它, 就只有把它给删除掉这一条路而已。 可是您知道那样子可能有 些重要的讯息就被您给...了。 um...果然是年纪大了,常常忘东忘西的, 您还要利用 ps 找到 syslogd 的 pid, 然後利用 kill -HUP pid 重新起动它才有用喔! 14. 修改 /etc/inetd.conf 的内容。 将里面有一行 nntp 的把它给删除掉! 或 是在那行的前面加上一个 "#" 号。 这个目的是在 Cnews 里面是利用 inetd 去监听 port 119 如果有 connect 到这个 port 的话, inetd 就叫 用 nntp 啦。 但是 INN 的作法不太一样, 它是利用 innd 这个 daemon 去 监听这个 port 的, 所以如果这个 port 被使用了, innd 被不能再利用它 了。 对了, 先利用 ps ax 查看 inetd 的 pid , 然後利用 kill -HUP pid 重新起动 inetd。 15. 利用下述的命令起动 innd, 记得要以 root 的身份喔! /usr/lib/news/etc/rc.news --------------------------------------------------------------------- 现在您的 innd 应该已经起动了, 您可以利用 ps 的指令看到它。 如果没有看 到的话大概是去报到了, 到 /var/log/news 看一下 news.err 及 news.crit 吧 ! 看看错误讯息是什麽! 然後就去翻 NEWS FAQ part 3:Reasons why INN isn't start。 看看您的情况是不是在 FAQ里面有提到; 如果没有提到的话, 再翻 NEWS FAQ part 5:Other error messages and what they mean。 如果还是 没有的话, 就只好 NEWS FAQ 由part 1到 part 9 都看一次了! 看看有没有什 麽灵感,如果还是没有的话, 建议您再看一次;如果仍没有的话, 再读一次, 顺便把它成中文。 真的,我不是开玩笑的, 您读了,与动手去把它翻成中文这 中间, 认知上的意境还是有相当程度的差别的。 如果连这样都还是有问题, 那 您可以找同意□送资料给您的 news server 管理者, 我相信他们都会拨个空帮 您看看的, 可能有那个地方有问题, 也许这个问题会危及与您互相□送的 news server 也说不定。 如果连他也没有办法解决的话, 将您的问题 post 到 tw.bbs.netnews, 或是您要 smart 一下 post 到 news.software.nntp 也不错 啦! 不过 post 之前再想一下, 如果能私下解决的问题, 就私下解决吧! 同 样是把问题解决了, 可是 tw.bbs.netnews 上有好几位 news 的管理者也在看呢 ! 所以太那个的问题, 有时还会被拿去当教材说! 另外就是其他人也会觉得怕 怕的, 因为 news 的特点就是 server 与 server 相连的, 今天多了一个不是 很称职的管理者就算我都会耽心, 那天就这样被摆了一下子也说不定呢! 对了,忘记提一点,在 /usr/lib/news/etc/rc.news 内有一行是用来设定 innwatch 是否要起动的, default 值是 false 建议改成 true ; 如果您定成 true 的话, 在起动 innd 的同时, 它也会起动 innwatch。 而 innwatch 的功 能就是监视 innd 是不是死掉了啦! (innd 也是会死掉的, 并且是莫名其妙的 死掉, 而且还是死得无声无息的, 您都不知道咧! 不过话说回来, 如果死的 有声有色的话, 那可实在太可怕了啦!) 如果有 innwatch 的话, 他会寄封信 给 root。 还有就是系统的 load 太高啦, 或是硬碟的空间不够了, 它会把 innd 先停住 (有时您还会气的想把它给停掉呢! 明明没怎麽嘛! 这时候您需 要去调整 innwatch.ctl 里面的一些参数值)。 尤其是硬碟的空间如果用光的话 , 再接著下来, 您要是能够无伤的重新起动 innd 的话, 那还真的是您的造化 呢。 另外记得一点, 以後要修改设定啦, 或是加入新的 feed site , 还是新的 newsgroup 等等, 反正除了起动 rc.news 之外的一切与 news 相关的, 您都要 用 news 的身份去作(su news)。 在开始网路传送之前, 您可以先看 INN FAQ Part 4: The debugging tutorial (setup of feeds etc.)。 并参照上面的建议, 先试试看您的设定是否都是正确 的。 如果这一关您也通过了的话, 再执行个 /usr/lib/news/bin/inncheck -v , 看看有没有错误的讯息, 如果也没有的话, 这时候应该就可以通知您 的feeder 开始□送相关的网路新闻讨论群给您了! 5. News Readers 这里所谓的 News Readers 是泛称许多架构在 Linux 上用以阅读 news的特定软 体。 而一般来说, 最容易自 Linux 和 newspak 中取得的版本是"tin","rn" ,"trn"。 基本上,当选择一个 news reader 时, 其标准不外是使用简单, 与容易设定( 易於选择有兴趣想阅读的news, 并筛除掉不想阅读的文章)。 您可以设定路径到任何你高兴的地方, 只要全部的新闻读取程式可以从你安装 的INN或Cnews找得到 "inews"及"mail"程式以送信去回覆张贴布告。 ( 译注: 如 果您使用的是 Slackware Linux, 在安装时也有选择安装 N系列, 那麽系统就 会自动帮您正确安装好 INN 与 C-News , 您所须要作的就只是跟著 /usr/lib/news/tools.linux目录中的 INSTALL.linux档案所说明的调整一些设定 档而已。 ) 本章接下来将会简短地提及 news reader 中几个较受欢迎且常见的软体。 不要 你问,我有很多理由去用"nn"。 5.1 Tin Tin 是一个相当适於新手使用的「讨论串式新闻读取程式」。 它可支援删除档案 与 NOV 串列方式。 如果您使用的是 INN , 那麽 Tin 预设为读取 NOV.overlay 的档案, 而不写索引档。 如您想要在 Linux 的环境下编绎 Tin , 基本上只需在 makefile 中设定其软体 所在位置 ( 尤其是 inews 所在的位置 ) , 然後输入 "make linux" 的命令即 可。 对於在 Linux 下操作的 news 而言, 并不需要特别的补丁码。 至於讨论串式的阅读, 您可以输入 "tin -u" 来 update 索引档。 为了确保可以使用 NNTP 协定来阅读 news , 在编绎的过程中, 您必须设定 "NNTP_ABLE", 这个参数的设定在使用 local host 读取的情况下会生成 "tin" ; 而以 NNTP 方式读取 news 时,则会产生 "rtin" 的档案。 键入"tin -r"将 可得到与键入"rtin"相同的功能。 Iain Lea 先生建议在 crontab 中加入以下的叙述, 并键入 "make daemon" 来 make "tind" 。 # thread the database 35 * * * * /usenet/bin/tind -u 我曾在 SLIP 协定下把 tin 当成 NNTP-based 的 newsreader 使用过。 如果您 所要接上的系统接受全部的新闻群组时, 则您就必须花很多时间在等待系统载入 "active"这个档案。 5.2 Trn/Mthreads trn 软体的前身是 "rn" , 而两者间的不同则在於前者可以提供讨论串式的阅读 。 trn3.2 或者更新的版本可以选择使用 "mthreads" 方式 ( trn 的内定 ) 或 是 NOV 方式 ( INN ) 来做串列式的阅读。 想要编译本软体, 只需执行 Configure , 并接受其所评估过的内定值。 还有 就是你的系统中至少要有 lib4.4.1 和 bash-1.13 (现在在很多的Linux archive sites已经有beat版本) 才能使Configure 成功的执行。 你可能同时需 要bash1.13和libs4.4.1以使得新的Configure可以正确的执行。 在 sunsite 的 newspak 包含有在 Linux 下给 trn 用的可以工作之config 档案 。 一般来说去修改 trn 的 config.sh 档案并不是聪明的举动, 除非说只是一些非 常单纯如修改路径以符合你的工作之类的动作。 如果您想这样做的话, 也最好 在执行"make depend"、 "make"、 "make install" 之前先执行"Configure -S" 。 尽管在 Linux 上以 bash1.12 执行 "configure" 失败, 但 "Configure -S" 却 工作的很好, 因此如果你以 newspak 的 config.sh 作为一个起点, 那你就很 接近了。 编译使用 NNTP 读取的 trn 也只是当 Configure 问你是不是要去做时简单的回 答"yes"而已, ( 假设 Configure 可以正常作动 ) 。 未来的新版也将会把 NNTP 读取的 config.sh 包含进来 -- 一如在 local host 读取者的 config.sh 。 我曾在 SLIP 协定下把 trn 当成 NNTP-based 的 newsreader 使用过。 如果您 所要接上的系统接受全部的新闻群组时, 则您就必须花很多时间在等待系统载入 "active"这个档案。 trn 有相当多的命令列指令可供使用, 您可以轻易地自其 man page 中取得您所 需要的资讯细节。 至於我则使用另一个有方便的方法来设定trn : * 把所有的参数设定写在 /.trnrc * 执行以下命令 export TRNINIT=" /.trnrc" 在目前的 newspak 中都会有一个 .trnrc 档可做为例子,您可以参照看看。 trn3.2 及更新的版本可以自由选择使用支援 NOV 或 mthreads 的串列阅读方式 。 因此,我个人建议设定 trn 软体, 使之两种格式都可阅读 (可在 Configure中设定 ) , 然後在启动 trn 时再选择其中一种来使用, 例如: 您 可以用 "trn -Zo"选择 NOV 格式; 或者 "trn -Zt" 使用mthreads , 而且您可 以在 alias 中写入上述命令, 这会使您的使用更方便。 为了要建立使用 mthreads 串列式阅读的资料库, 您尚须在 news crontab 中输 入以下叙述。 # thread the trn database 35 * * * * /usenet/bin/mthreads all 5.3 NN 您可以在 sunsite 上取得这一套软体, 且其中亦包含安装 nn6.4.18 时完整可 使用的组态档 (working configure file), 您只需取得此软体, 并在 Linux 下键入 "make" 便可自行编绎, 还有就是此组态档在nn6.5b3( nn6.5 的 beta 版 ) 亦可使用。 编绎完成後,进行下列步骤: * - 执行 "inst" 命令以安装全部的东西。 * - 初始化资料库。 * - 执行 nnmaster 有关的细节,您必须再详读随nn而来的文件档。 除了您必须把nnmaster设定 在crontab中执行而不是当成在背景执行的守护者(daemon)外, 在 Linux 中编绎 , 设定与执行 nn 和在其他 *nix 系统并无不同。 此外如果您尝试把 nnmaster 直接丢到背景来执行, 那麽它也无法正确的被驱动。 设定 nn 的执行是相当简单的,您只需在 crontab 中加入以下叙述: # run nnmaster to collect "nn" stuff # (not needed if you use NOV from INN in nn-6.5beta3) 25 * * * * /usenet/sw/nn/lib/nnmaster # expire the nn database # (not needed if you use NOV from INN in nn-6.5beta3) 0 4 * * * /usenet/sw/nn/bin/nnadmin =EYW # stash a copy of the active file for "nngoback" and keep last 7 0 3 * * * /usenet/sw/nn/lib/back_act 7 我曾试著在 SLIP 协定下把 nn 当成 NNTP-based 的 newsreader 使用过。 在这 种情况下对 config.h 档案稍做修改仍是必要的, 而您可以在该档案的注解文字 中得到更细节的资讯。 把 nn 当成 NNTP-based 的newsreader 使用时, nn 会 在己端 (local) 执行 nnmaster保有一份串列式阅读的资料库, 因此,在己端选 择文章的动作会比其他软体快许多。 ( 当然,如果您是使用 modem 上 silp , 一些合理的等待时间仍是无可避免的。 ) 新版的 nn (6.5.x) 当然也支援 INN 的 NOV 资料库格式, 且当您使用此功能时 , 您就可以不必执行 nnmaster 了, 我个人强烈推荐使用此功能, 因为如此您 就可以不用浪费 cpu 的时间去执行 nnmaster 与取得串列式阅读的资料库, 至 於真正的 news 文章在此功能下则是非同步的取得。 5.4 其他的新闻读取程式 下列是一些亦可在 Linux 下使用,但未提及的 newsreader。 * tass * xrn * gnus 6. 感谢 感谢以下所列的各位先生们, 他们曾经提供许多宝贵的资讯与经验,协 助本篇 文章的完成。 Ed Carp, Steve Robbins, Ian Taylor, Greg Naber, Matt Welsh, Iain Lea, Arjan de Vet 如果我还忘了谁,我道歉! 7. 关於 USENET 经常被询问的问题 7.1 为什麽我不能在 moderated 的网路新闻群组张贴布告 在准备张贴时, 您的 newsreader 会启动 /bin/mail 来递送邮件, 如果您的 mail 程式版本过於陈旧, 那麽 newsreader 有可能不会作动而导致此一结果。 如果是这样的话, 解决之道就是更换较新的版本使用, 例如较新版 Slackware 中的 mailx-5.5.tar.z, 且您可以用 Slackware中的 pkgtool 命令来安装并设 定之。 另一个可能性则是虽然在您的系统中此一 newsgroup 是定成没有管制 者(moderator), 但在□送您系统的上游却将此 newsgroup 定成有所管制的, 那麽也许您的文章在管制者 ( 为一系统软体, 并不是一个真正的人) 处就被删 除了。 您可以在收到由 news.admin 送达的文件之後, 执行 checkgroup 命令 来确认。 7.2 为何我会有与 permission 有关的问题? 因为本来就那样 :-) 检查您的 permission 是否正确; 检查在您是否在 /etc/passwd 定义有一个叫 news 的使用者; 是否在 /etc/group 中定有一个叫 news 的群组, 上述的定义 并不是 Linux 的标准帐号, 所以您必须自行注意。 除了 /usr/local/lib/news/setnewside 的 uid 必须是 root 外, 所有在 /usr/local/lib/news 子目录下档案的拥有者 (uid) 和所属群体 (gid) 都必须 是 news ( 即 news.news) 。 您可以用任何数值作为 "news" 的 UID 与 GID。 ( 译注: 在您 install Slackware 时, 系统会自动帮您内定一些 GID与 UID , 一般来说,没有特殊的理由, 很少有入会去修改这些内定值。) 7.3 为何我张贴的布告在本地可以看得见, 但是在其□送的下游却没有出现? 也许是因为您未在 cron 中设定执行 newsrun 程式; 也许因为您自行手动修改 系统档案, 以致系统乱掉; 也许是您少掉了 /usr/spool/news/out.going这个 子目录或是什麽的, 或者有可能您所取得的是 "Performance" 或 "Cleanup" 版 本的 cnews , 而它需要在 cron 中设定执行 newsrun 来做批次处理, 分送 news 至其他站台, 或是在已端显示文件。 千万不要尝试手动去修改加入 active 档案或系统档案, 正确的方法是使用在 /usr/local/lib/news/bin/maint 下的公用程式来完成这些动作。 7.4 为什麽我的可执行版本内没有 nntp ? 为了要在 Linux 系统下支援 plug-n-play , 并且避免 SLS 的 news 系统因要 同时具有 nntp 和 non-nntp 版本的 newsreader 与传输程式 (news transport programs) 而导致整个系统的过大。 7.5 在做 expire 时,为什麽明明还有很多的储存空间,可是它竟然告诉我说「空间不足」 呢? 因为系统读不到 /etc/mtab 档。 记得把该档的 mode 定成 644 。 这种情况常 会发生在您以root的身份去 umount一个filesystem时(umask), 这个命令会导致 属於 root 的档案无法被其他使用者读取而产生此错误。 ( 译注: 现在另一个最 常发生的情况则是 inode 数不足, 建议的解决之道是在架构系统时选择较多的 inode , 如 1024bytes/inode 。 尤其是 /var/spool/news/tw/bbs时 ,*sign*) 7.6 为什麽每样都看起来很正常,可是却不能张贴布告呢? 好像旧版的 Linux 在装设 cnews 时都很容易有此一问题 (blow up) 。 尤其是 当您在一较旧版的 SLS 上装设时, 您一定要检查 /bin 和/usr/bin , 确认您 只有一套最新版的 news 。 因为在 1993 年二月 "Performance Release" 以前的版本, 您都必须在cron 里 周期性地启动 newsrun以执行某些程序。 而这正是很多人常常不知道的。 7.7 我可以将新的 news overview( NOV) 放进 trn/tin/nn 内,以代替各种不同的资料库 吗? 是的,trn, tin 及 nn 的 beta 版现在都已经支援这项功能了。 您可以把新的 news overview(NOV) 放入 "Performance Release" "Cleanup Release"的 cnews , 或是其他的新闻读取程式。 我现在手上有的 nn6.5的 beta 版也支援 NOV 格式, 而且在 Linux 下也工作的很好, 它现在可以被执行 而无须再跑 nnmaster 。 您可以在 uniwa.uwa.edu.au 找到这个版本的 nn 。 7.8 为何没有可执行版本的 NNTP ? 因为您必须定义许多在己端系统所独有的资讯, 而这些设定是无法在执行时由程 式自动帮您设定的。 如果你要做这种事, 请用INN而不要用Cnews 加 NNTP。 7.9 如何设定 NNTP,可以允许透过网路去读或张贴布告,而在本地不要储存任何的文章或 是资料库? ( mdw@sunsite.unc.edu (Matt Welsh) ) * 1) 取得nntp 的"reference implementation" 和 rn软体 您可以到 ftp.uu.net:/networking/news/nntp下取得 nntp.1.5.11.tar.Z * 2) 编绎 nntp 如下: 拷贝 common/conf.h.dist 到 common/conf.h。 修改 common/conf.h 以设定下列参数: 以下为我所设定的: DOMAIN: 不定义它(就是将那行改为 #undef DOMAIN). REALDOMAIN: 须定义,它会利用libraries搜寻domain。 SERVER_FILE: 设定为定义有您 news 伺服器 ( 就是您读或贴 news 的那一 台主机 ) 主机名称 (hostname) 的档案名称,我使用的路径名 和档案名为 "/usr/local/lib/news/server" PASSFILE: 如果您的news伺服器需要被授权(某种username/password) 才能 张贴布告,那麽把此项参数设为含有该username/password 的档案,我使用 的路径名和档案名为 "/usr/local/lib/news/nntppass" 。 如果您决定要把所有 news 有关的档案置於 /usr/local/liib/news的目录下 , 将其他需要定到路径名称的地方(ACTIVE_FILE, NEWSGROUPS_FILE... etc) 全定成 /usr/local/lib/news 。 这其中有很多是设定给 NNTP server 用的 ( 非 client) ,但为了安全计, 我把它们全部改变指向正确 的位置,您当 然可以使用内定的路径名,不过要先确定您有该对应的子目录 。 3) 建立一个使用者叫 "usenet" 。 inews 的软体会需要以这个 user来执行 。 不过您也只需要这一个 userid ,您不需要配给该 userid 如子目录 (homedirectory) 或是其他的东西。 在此项中,所有您必需作的就是在 /etc/passwd 的档案下加入下列这一行 usenet:*:13:1::/: 确定您的 userid 是唯一的 ( 上述是 13) 。 group 可以定成是其他 的东 西,在这里我定成 "daemon"(gid 1) 。 * 4) 建立上述的SERVER_FILE,例如说我的news伺服器名称为 "wonton.tc.cornell.edu" , 那麽我就必须在 /usr/local/lib/news/server 中加入下行: wonton.tc.cornell.edu * 5) 建立PASSFILE。格式如下: 再举例说明,如果您的news伺服器名称为 shoop.vpizza.com, 而在此机器 上张贴布告必需要被授权为 news(password=floof)才可以, 那麽您就必须 在 /usr/local/lib/news/nntppass 下加入: shoop.vpizza.com news floof * 6) inews 是以 "usenet" 的 id 在执行的,所以为了安全应把 news 的 目 录和 nntppass 档案等的所有者定成是 usenet 。 chown usenet /usr/local/lib/news chmod 755 /usr/local/lib/news chown usenet /usr/local/lib/news/nntppass chmod 600 /usr/local/lib/news/nntppass 如果这样作,就没有人能读到这些档案了吗?不!在档案中的密码并未被编密 。 * 7) 回到 nntp1.5.11 的目录中,下达 "make client" 的命令, 然後您就可 以得到 NNTP 版的 inews,这是 NNTP client 上可使用的唯一软体。 当我 建 inews 时,我发现函式库中有一个错误会使得在 uname.c 中的函式 uname() 会不停地自己呼叫自已。如果您发现您的 inews 看起来好像当机了 ,且您的系统明显地变慢,那麽您最好编辑一下 uname.c 档, 把 uname() 改成像 my_uname() 之类的名字, 并且把 inews.c 中呼叫的部份也改成 my_uname() 。 如果您也遇到如样的问题 的话,请您寄一封 mail 给我 (Matt) 。 * 8) 下达命令 "make install_client" 。这样安装 inews 的档案到您的系统 中。 并且连结/usr/local/lib/news/inews到 /usr/local/bin/inews 然後 您应该就可以开始张贴布告了(手动),您可以试试下述的: $ inews -h << EOF Newsgroups: misc.test From: me@foo.bar.com Subject: Testing Reply-To: my-real-address@wherever.edu This is a test. EOF 如果成功, inews 会把文章贴上。而且您会知道, 因为 misc.test的 test-responders 会回信到上述的 Reply-To 的位址。 请不要在其他的板面 上张贴测试的文章(例如American On Line)。 References 1. mailto:vince@halcyon.com 2. mailto:smhu@ish.chna.edu.tw