中文版 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