Next Previous Contents

5. News 新聞討論群

5.1 我要如何設立一個線上新聞讀取器呢 ?

只要 PPP 在運作中,就能讀取線上的新聞群組 news。 有許多捶手可得的程式,簡單介紹兩個程式: rtin 和 trn.

想開始讀取news,一般在建構時只需設定 NNTPSERVER (通常只需在 .profile 檔裏設定一次即可一勞永逸):

export NNTPSERVER=news.acme.xz

有些程式在要取得正確的張貼 來源-位址時,可能會要求:

export NNTP_INEWS_DOMAIN=acme.xz

5.2 我要如何設立一個離線新聞讀取器呢 ?

想在離線 offline 時讀取新聞群組 news 來 減少電話帳單費用以及擁有更大的彈性,我們需要設定一或多個的 news-spool。 這需要一些建構,當然也需使用到一定的磁碟空間,在初始化後,會產生或多或少的事,但 隅而才需要去留意一下。

我們在這兒說明兩種解決方案:

5.3 我要如何設立 C News?

這個所描述的解決方案是以 C News 這個新聞群組伺服器為基礎, 且使用 NNTP 協定的。 C News 原本是以其他建構為目標的,但它也蠻符合處理我們的情況的。 也許有人會使用較近期的 INN 新聞群組伺服器news server ,但它卻在資源使用上多了一些。不管任何方法,請小心 不要 兩個都安裝! 他們 不會那麼好在一起相處的。

news為使用者來遷入系統來做為新聞群組的維護是很重要的。 所有的建構檔案都被放置在 /usr/lib/news裏。 要處理這個,我們可以 su news; cd來遷入為 root 來處理它。

在建構裏,最重要要的檔案是:

Dirk Gently's Holistic Detective Agency

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。

5.4 我要怎麼設立 Leafnode?

還有一個不同的解決方案是,安裝整合套件 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 功能。


Next Previous Contents