次のページ 前のページ 目次へ

News-HOWTO 日本語版
原文 : The Linux News HOWTO 1994/3/26 版 v1.7
Vince Skahan, <vince@victrola.wa.com> 著
さとけん (ken@gamba.forus.or.jp) 訳

この文書では Linux で USENET ニュースを設定し、管理および配送する方法
を扱います。ローカルシステムのみで、もしくは他サイトと USENET ニュース
を読み書きする予定があれば、この文書を読んで下さい。USENET ニュースを
利用しないなら、これを読んでも意味がないでしょう。

1. 始めに

Linux 一般で、また特に SLS 版 Linux で USENET ニュースのソフトウェアを
使用する際によく出る質問や意見に答えるのが、この文書の目的です。

以前 comp.os.linux.announce に投稿されていた旧 UUCP-NEWS-MAIL-FAQ の続
編が、この NEWS-HOWTO や、 UUCP とメールの HOWTO 文書です。


1.1 この文書の最新版

この文書の最新版は定期的に comp.os.linux.announce, comp.answers,
news.answers に投稿されます。また sunsite.unc.edu の 
/pub/Linux/docs/HOWTO ディレクトリをそのままコピーしている FTP サイト
からも取得できます。


1.2 感想などは

この文書に関するメールでの意見はどんな物にも感心があります。間違いや追
加して欲しい事があれば私にお知らせ下さい。

私は、受け取るメールは全て読みますが、全部に返事を出す訳ではありません。
暇があるか、変更に価値があるか、その日の血圧はどうか :-)、等を考慮の上
で、この文書を希望に沿って改善します。

お怒りは静かに /dev/null に葬られますので、わざわざ送る意味はありませ
んよ。

この文書の構成に関する意見は、HOWTO のまとめ役である Matt Welsh 氏 
<mdw@sunsite.unc.edu> に送って下さい。


1.3 著作権

News-HOWTO は Vince Skahan に著作権があります。

そのままの形であれば、いかなる媒体や電子的であろうと、複製や配布に著者
の許可は必要ありません。翻訳についても、だれが翻訳したかを明記していれ
ば、同じように許可は必要ありません。

短い引用として使用するときにも、著者の同意は先でなくてもかまいません。
この文書を大幅に書き換えたり、不完全な形で配布する場合には、原本のコピー
か、原本の在処を添付して下さい。

営利目的での再配布も、もちろん許可します。けれども、配布の際には著者に
連絡して下さい。

この情報を必要とするたくさんの人への宣伝の、促進を願っています。けれど
も HOWTO 文書の著作権も保持したいと思っていますので、 HOWTO の再配布の
予定などは、連絡して下さい。

HOWTO をより良くするための情報であれば、なんでも教えて下さい。もし質問
があれば、 Linux HOWTO のまとめ役である Matt Welsh に連絡して下さい。
連絡は、電子メールであれば mdw@sunsite.unc.edu に、電話であれば +1 607
256 7372 にお願いします。


1.4 標準の放棄

もちろん、私は本文書の内容についての責任を否認します。本文書に含まれて
いる概念、例などを使用するのは、全てあなたの責任で行って下さい。


1.5 情報源


1.5.1 USENET

内容によって以下のようにニュースグループが分かれています。

        news.admin.misc : ネットワークニュース管理に関する一般的な話題
        news.admin.policy : USENET の利用方針
        news.admin.technical : ネットワークニュースの保全について(査読あり)
        news.software.b : B-News 互換ソフトウェアに関する論議
        news.software.nn : nn ニュースリーダに関する論議
        news.software.nntp : ネットワークニュース転送プロトコル関連
        news.software.readers : ネットワークニュースリーダ関連
        news.sysadmin : システム管理者向け
        news.announce.newusers : 新規ユーザへの説明(査読あり)
        news.newusers.questions : 新規ユーザのためのQ&A

1.5.2 書籍

これが全てではありませんが、役立つ本を下に紹介します。

・「Managing UUCP and USENET」(O'Reilly and Associates)
  【訳注:日本語訳は「UUCP システム管理」(アスキー)】
  USENET に接続する時に使うプログラムやプロトコルを解説し、市販されてい
  る本の中では最高だと思います。

・「Unix Communications」(Waite Group)
  UNIX の通信について、あらゆる事柄がうまく解説されています。

・「Practical Unix Security」(O'Reilly and Associates)
  【訳注:日本語訳は「UNIX セキュリティ」(アスキー)】
  一般的な UUCP の安全対策について、良く書かれています。

・「The Internet Complete Reference」(Osborne)
  インターネットで利用できるさまざまなサービスや、ニュースで紹介される情
  報のための素晴らしい one-stop-shopping のソースや、メール、その他のさ
  まざまなインターネットの資源について説明されている、良い参考書です。


1.6 質問するべきでない所

Linux で USENET ニュースを動かすのは特別な事ではありません。ですからニュー
スに関する一般的な質問は comp.os.linux.* には投稿しないで下さい。

本当に Linux に特化した問題でない限り、上にも書いたニュースグループに
質問して下さい。Linux に特化した質問とは次の様な物です。「SLS 1.03 に
入っている bash1.12 で INN を動かすためのパッチはありますか?」

もう一度繰り返します。

ニュースに関する質問を comp.os.linux に投稿する理由はもう存在しません。 
Linux でのニュースシステムに関する質問も news.* で扱っています。

あなたが comp.os.linux.* に Linux に特化しない一般的な質問を投稿したな
ら、答えは得られないでしょう。 USENET ニュースのエキスパートは上に書い
ているニュースグループしか見ていないでしょうし、大概 Linux は動かして
いません。

comp.os.linux.* に Linux に特化しない一般的な質問を投稿しても、あなた
の質問の答えを得るために、しばしばあなたや他の人の時間を浪費するだけで
す。


2. 必要なハードウェア

Linux の USENET ニュースでは、特殊なハードウェアは必要ありません。利用
するソフトウェア、スレッドデータベース、およびニュース記事を保持するこ
とができるディスク領域(最低でも10M程度)が必要なだけです。


3. USENET ニュースソフトウェアの取得

この文書で扱っている全てのソフトウェアは、インターネットの大抵の FTP 
サイトから入手できます。

まずは ftp.uu.net の /news を見るのがいいでしょう。

newspak-2.1.tar.z に入っている設定ファイルや解説文には、各処の自由に使
えるソースファイルから UUCP、ニュース、メールなどのソフトウェアを構築
し、 Linux で動かすための情報があります。これは大抵 sunsite.unc.edu の 
/pub/Linux/system/Mail ディレクトリにあります。


4. ニュース転送ソフトウェア

最近の *nix 用ニュース転送ソフトウェアには、Cnews と INN の2つがあり
ます。古い Bnews は、今後バージョンアップもサポートもされないことが作
成者から公式に宣言されました。

ニュース転送ソフトウェアは、記事の投稿を受け付け、配送し、ニュースリー
ダで読めるようにするソフトのことです。

UUCP の Permissions ファイルに絶対パスで rnews を記述し、ニュースリー
ダから inews と mail が利用できるように設定すれば、何処に置いてもかま
いません。

重要:Cnews と INN の混用は厄介なだけです。どちらか一つだけを使いましょ
う。 Cnews と NNTP の Reference Release は始めから相性よく作られていま
すから、両方インストールしても問題ありません。


4.1 Cnews Performance Release

Cnews は現在標準的に使用されているニュースソフトウェアです。 1988 年に
公開され、改良が続けられています。

Cnews の主な利点は、その完成度にあります。文字通り世界中の幾千のシステ
ムで動作していますので、知られている全ての *nix マシンで動作するでしょ
う。

欠点は、モデム経由での UUCP 接続しか考えられていないために、リアルタイ
ムにインターネットで配送し読むためには NNTP ソフトウェアを追加しなけれ
ばならないことでしょう。

さらに各種ニュースリーダ用の外部スレッドパッケージが必要です。しかし現
在でも、少しは役に立つ NOV パッケージへの接続が可能ですし、もうすぐ公
開される Cnews cleanup release では正式に対応するという話です。

いずれにせよ、安定してる、文書が豊富、どんな質問にも答えてくれる経験豊
富な管理者が沢山いる、等の理由から、 USENET の管理を始める人はまず 
Cnews を動かすのが良いでしょう。

sunsite にある newspak-2.1.tar.z には、Linux で Cnews を動かすための設
定ファイルや、bash1.12 で doexplode をメイクする際に発生する問題 
(Linux のアーカイブサイトに置かれている bash1.13 を使えば発生しません
が ) を回避するためのパッチが含まれています。


4.1.1 Cnews のインストール

ドキュメントを読めば、 Cnews Performance Release はまったく問題なくイ
ンストールできます。 Cnews Performance Release のインストールはマニュ
アルを読んでください。ソースファイルを入手し、展開して、マニュアルの手
順に従うだけです。

newspak に含まれている build.def は最初に build を実行し、単に 
/usr/include のファイルから答えを調べて、生成されたものです。

コンパイルは何回か止まるでしょう。いずれも gcc で問題になる atoi() と 
atol() マクロを、 doit.bin からコメントアウトしなければなりません。

また、 bash 1.12 のバグを回避するように doexplode に次のパッチが必要で
す。このパッチを使わなければ下流サイトには何も送られません。

        ( Steve Robbins 氏 <steve@nyongwa.cam.org> から )

        if [ ! -f $f ] ; then continue; fi        # この行を追加
        #       case "$f" in                      # この行をコメントアウト
        #       "out.master/[0-9]*")    break ;   # この行をコメントアウト
        #       esac                              # この行をコメントアウト

Cnews に詳しい Henry Spencer 氏によると、 doexplode と bash で現在問題
になっているコードについては、新しいリリースでの修正項目になっているそ
うです。

Linux 用の bash 1.13 β版でもこのパッチが必要かどうかは現時点では不明
です。私は、新しい bash とライブラリでパッチ無しに切替えましたが、落ち
た事はありません。 ( 何が良かったのかは分かりませんが :-)


4.1.2 Cnews の設定

少なくとも、/usr/local/lib/news にある以下のファイルは編集しなければな
りません。

        active : active ファイル
        batchparms : バッチパラメータ
        explist : 記事の時効の設定
        mailname : メールでリプライするためのヘッダ内の名前
        mailpaths : 査読のあるニュースグループへの投稿用アドレス
        organization : あなたの組織名
        sys : ニュースグループの取捨を選択
        whoami : Path: 行に設定するホスト名


4.1.3 Cnews サイトの管理

まず、専用のユーティリティがあるファイルを直接エディタなどでいじるのは
止めた方が良いでしょう。特にニュースの配送と active ファイルの設定では、
それぞれ addfeed や addgroup などのコマンドを使って下さい。迷った時に
は、ソースに含まれている文書を何度も読んで下さい。

その他は全部 cron から起動します。私の crontab の news に関する部分は
下のようになっています。

        # 他システムから送られてきた圧縮済みデータの取得
        20 *           * * * /usenet/sw/news/bin/input/newsrun  

        # 送信用のファイルをまとめる
        0 *    * * * /usenet/sw/news/bin/batch/sendbatches myfeedsite

        # 時効記事の削除
        59 0           * * * /usenet/sw/news/bin/expire/doexpire 

        # ニュースを監視し、必要なら報告
        10 5 * * * /usenet/sw/news/bin/newsdaily 
        00 5 * * * /usenet/sw/new/bin/newswatch 

        # 受信ニュースデータの処理の停止( 6:30am - 4:00pm )
        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 でもインストールや動作が必ずしもすんなりとは
行かない事でしょう。また、メモリ使用量とスピードの兼ね合いになりますが、
常に動いているデーモン(innd)と、オーバチャネルになる可能性を秘めたス
レッド用デーモンを用いて動作するのも欠点でしょう。

新しい USENET 管理者は、B-news か Cnews のどちらかを経験するまでは、 
INN は止めた方がいいでしょう。Linux 上でも高速で信頼性がありますが、ニュー
ス管理の初心者用の文書はありません。(ただし、実際には、設定がわかれば
後は比較的簡単です。)

INN はパーミッションにとても厳重ですから、それらを修正しないで下さい。

INN はまた、同時に動かされている TCP/IP の品質にとても厳格です。現在の 
Linux では必ずしも当てはまりませんが、 Linux の有名なアーカイブサイト
から Linux 用の INN を入手される事をお勧めします。


4.2.1 INN のインストール

( Arjan de Vet 氏 <devet@info.win.tue.nl から )

私は、Linux で INN 1.4 を動かすためのパッチと設定キットを作りました。 
ftp.win.tue.nl の /pub/linux/ports ディレクトリにある 
inn-1.4-linux.tar.gz です。

INN は /bin/sh の互換品に非常に依存します。私は Linux 用に公開され、普
通のアーカイブサイトに置かれている bash 1.13 β版を使っています。 bash
1.12 では、(他にもあるでしょうが)ニュースグループを正しく扱えない等
のいくつかの問題が起きます。


4.2.2 inn の設定

基本的に Arjan の手順に従えば全て設定できますので、要約だけ書きます。

・config.data に "HAVE_UNIX_DOMAIN DONT" があることを確認します。

・innd が動いているホストネーム( UUCP のみのサイトでは、自分のサイト
ネーム)を hosts.nntp に追加します。

・/etc/inetd.conf に nntp の行が無いことを確認します。

・taylor uucp パッケージからインストールされた uustat があれば、 
config.data の例にある "HAVE_UUSTAT DONT" ではなく "HAVE_UUSTAT DO" が 
innshellvars に設定されていることを確認します。誤って定義すると、送信
用のニュースが一つにまとめられない事になります。

INN を動かすのなら、Arjan 氏が勧めるように syslogd のファイルを確実に
定義しましょう。大変、役に立ちます。

INN の壮観な (!!!!) FAQ が、 rtfm.mit.edu に毎月出されています。一見の
価値はありますので、読んで下さい。


4.2.3 inn サイトの管理

INN サイトの管理と配送は、cron を使うこと以外ありません。基本的に必要
な crontab は、下のようになります。

        # 日常の管理、または時効になった .overview データベースと、記事の削除
        1 0 * * * /usenet/sw/inn/bin/news.daily expireover delayrm < /dev/null

        # 記事の送信
        5 * * * * /usenet/sw/inn/lib/send-uucp

( bash1.13 を使っているのなら、上の < /dev/null はいりません )


4.3 その他のニューストランスポートエージェント

その他のニューストランスポートエージェントとして、以下のものも Linux 
で動くことが知られています。

    dynafeed, nntp1.5.11, slurp1.05


5. ニュースリーダ

「最良のニュースリーダ」というものは存在しません。よって、 たくさんの
良く知られたニュースリーダが Linux で使えます。たとえば、 Linux の有名
な配布版には、 tin, trn, nn が含まれています。

ニュースリーダは、操作が簡単だったり、ユーザで色々設定できたり、スレッ
ドが使えたり、(興味のある記事だけ選択し、もしくは興味のない記事を見な
くする等)ファイル操作が使えたりなど好みで選べます。

Cnews もしくは INN でインストールされた inews と、投稿への返信メールを
送るための mail プログラムが全てのニュースリーダから利用できれば、好き
な所(パス)に置くことができます。

この章では、いくつかの良く使われているものについて、簡単に説明します。
ただし、私はいくつかの理由により nn を使っています :-)


5.1 Tin

Tin は、初心者でも簡単に使えるように作られた、一般的なスレッドニュース
リーダです。ファイルの削除と NOV スレッドがサポートされています。 INN 
を動かしているなら、デフォルトで NOV の .overview ファイルを読んで、イ
ンデックスファイルには何も書きません。

Linux で Tin をコンパイルするには、基本的にソフトウェア(特に inews )
の在処について makefile を編集し、 make linux とタイプするだけです。パッ
チを当てる必要はありません。

基本的に tin -u とするだけで、インデックスファイルが更新され、スレッド
が使えるようになります。

NNTP を使えるようにするには、 NNTP_ABLE を定義してコンパイルして下さい。
そうすると、ローカル用の tin と NNTP 用の rtin に結果が反映されます。 
tin -r は rtin と同じように動作します。

Ian Lea 氏は、 make daemon で tind を作って、下の crontab エントリで動
かすことを勧めています。

        # データベースにスレッドを使う
        35 * * * * /usenet/bin/tind -u


5.2 Trn/Mthreads

trn は rn から派生したスレッドニュースリーダです。trn3.3 では( trn の
スレッドパッケージである) mthreads もしくは( INN のスレッダである) 
NOV のいづれを選択することが出来ます。

コンパイルするには Configure を動かして、結果のデフォルト値を与えるだ
けです。lib4.4.1 と( Linux アーカイブサイトで公開されているβ版ですが) 
bash-1.13 を持っているなら、 Configure は正常に動作するでしょう。新し
い Configure を動かすためには、 bash1.13 と libs4.4.1 の両方が多分必要
となるでしょう。

Linux で trn を動かすための設定ファイルが、 sunsite に置いてある 
newspak-2.1.tar.z に含まれています。

システムに合わせてパスを変更するぐらいのとても簡単なこと以外では、trn 
の config.sh をエディタ等で編集しない方が良いでしょう。変更したなら、 
make depend, make, make install を実行する前に、 Configure -S を実行し
て下さい。

bash1.12 を使っている Linux では大抵 Configure が失敗しますが、最初か
ら newspak に含まれている config.sh を使えば Configure -S だけは正常に
動作します。

NNTP を使うようにコンパイルするには、(僭越ながらあなたのシステムで 
Configure が実行できれば) Configure からの質問に yes と答えるだけです。 
newspak の未来のリリースには、NNTP 利用者向けの config.sh と、有害な 
:-) bash を使っている人がローカル用に使える現在の config.sh を含む予定
です。

trn には、あらゆる挙動を制御するため何十ものコマンドラインスイッチが存
在します。詳しくは trn のマニュアルを読んで下さい。私は必要な全てのス
イッチを簡単に設定するために、下のようにしています。
・/.trnrc というファイルに全ての設定を加え、
・export trninit="/.trnrc" を行ないます。

将来の newspak には、私の .trnrc が例として含まれる予定です。

trn3.2 以上のバージョンであれば、 NOV もしくは mthreads のスレッドがサ
ポートされ、ユーザが選択できます。そこで、(これは Configure の質問に
ありますが)両方のスレッド機構を使えるようにソフトウェアを構築されるこ
とを勧めます。実行時に、NOV を使う時には trn -Zo 、 mthreads を使う時
には trn -Zt とタイプします。

mtheads データベースを構築するには、 news 用の crontab の中で下のよう
にします。

        # trn 用スレッドデータベース
        35 * * * * /usenet/bin/mthreads all


5.3 NN

Linux で動かすには、 Linux 用の設定ファイルに置き換えて make するだけ
です。 nn6.4.18 の Linux 用設定ファイルは sunsite の newspak-2.1.tar.z 
に含まれています。また、公開された nn6.5 への更新用の 6.5b2 でも動作し
ます。

コンパイルが終了したら、以下のことをして下さい。
・inst プログラムを実行して、(必要なもの全てを)インストール
・データベースの初期化
・nnmaster の立ち上げ

詳細は nn のドキュメントを見て下さい。Linux 上で nn をコンパイル、設定、
動作させることは、デーモンではなく cron で nnmaster を動かすこと以外、
他の *nix で nn を動かすこととなんら違いはありません。Linux で 
nnmaster をデーモンとして動かす場合、このデーモンが適切に起動されると
は限りません。(cron で動かしても結局は同じ事ですが。)

下は、nn 用の簡単な crontab エントリです。

        # nn に必要なファイルを集めるための、 nnmaster の実行
        25 * * * * /usenet/sw/nn/lib/nnmaster

        # 時効になった nn データベースの削除
        0  4       * * * /usenet/sw/nn/bin/nnadmin =eyw 

        # nngoback 用に active ファイルをコピーして、7日間保存する
        0 3 * * * /usenet/sw/nn/lib/back_act 7 


5.4 その他のニュースリーダ

Linux でインストール、動作できると言われているニュースリーダの内の一部
を書きます。

    tass, xrn, gnus


6. 謝辞

以下の人たちは、この文書を書くに当たって情報を提供してくれました。

Ed Carp, Steve Robbins, Ian Taylor, Greg Naber, Matt Welsh, Iain Lea,
Arjan de Vet

抜けている人がいれば、ごめんなさい。


7. usenet(c.o.l.* その他) についてよくある質問


7.1 なぜ議長のいるグループに投稿できないのですか?

ニュースリーダはメールを送るために /bin/mail を呼ぼうとしますが、多分
それが良くないのでしょう。SLS 版の /bin/mail を mailx-5.3b.tar.z のも
のに置き換えて、( elm のように) mail グループでモードが 2755 として
作成して下さい。mailx-5.3b.tar.z は、 sunsite.unc.edu の 
pub/Linux/system/Mail ディレクトリに置かれています。

それ以外では、ローカルシステムで議長がいるニュースグループを議長がいな
いかのように設定し、どこかの上流サイトが記事を黙って削除した(いくつか
のシステムソフトウェアであって、人ではない)場合も考えられます。2〜3
週間毎に news.admin に投稿される checkgroups 記事が到着した時に、 
checkgroups を実行して確認して下さい。


7.2 なぜパーミッション関連の問題が発生するのでしょうか?

あなたがインストールした配布版の /etc/passwd と /etc/group ファイルに 
news ユーザとグループが存在するかと、パーミッションをチェックして下さ
い。これらはまだ、 Linux 標準のアカウントになっていないようです。

/usr/local/lib/news/setnewside をルートに setuid する以外は、 
/usr/local/lib/news ディレクトリのファイルの所有者は news.news でなけ
ればいけません。

news にはどんな uid と gid を使ってもかまいません。


7.3 なぜローカルに投稿した記事が、下流サイトに送られないのですか?

多分、 cron で newsrun を起動していないか、 sys ファイルの編集を失敗し
たか、 /usr/spool/news/out.going 以下のディレクトリ等が存在しないのか
もしれません。

ニュースグループの作成やニュースの配送を、active や sys ファイルを(エ
ディタを使って)編集して設定してはいけません。このような設定は 
/usr/local/lib/news/bin/maint にあるユーティリティを使って行って下さい。


7.4 なぜバイナリ配布版は Cnews の performance release ではないのですか?

いくつかの Linux で問題がありますし、 performance release 以前のバージョ
ンでも、手頃なシステムで安定して高速に動作するものが含まれていますので、
オプションになっています。まだ信じられない人のために、 Cnews の 
README.new ファイルからいくつか引用します。

「C news の Performance Release 1993/02/20 版は、 1992/03/02 版からい
くつかのインストールの問題点と重大なバグだけを改良したものです。」

「このリリースは、 cleanup release と呼ばれるものへの大体の中間点です。」

「古い Cnews で問題のない人は、スケジュールが遅れ公開されていませんが、
cleanup release を待った方がいいでしょう。」

主に、SLS1.01 が出来た頃のコンパイラとライブラリが、 Performance
Release に全然ふさわしくなかったからでしょうが、これらは現在改良されて
います。


7.5 なぜバイナリ配布版に nntp が含まれていないのですか?

Linux をセットアップしてすぐに使うことを想定していて、ニュースリーダと
ニューストランスポートプログラムで nntp を利用するものとしないものの両
方を管理する手間が非常に大きくなるのを避けたかったからです。また、ロー
カルな情報を含んでコンパイルすると、実行時に設定ファイルの内容で置き換
えられないからです。


7.6 なぜ時々、 doexpire (もしくは relaynews もしくは ...)で severe
space shortage が発生するのですか?

/etc/mtab が読まれていないのでしょう。( /etc/mtab の)モードを 644 に
設定して下さい。これは、ルート所有のファイルが全ユーザのリードが許可さ
れないような umask で、ルートによってマウントされたファイルシステムを
アンマウントする時に起こります。


7.7 全て正常に見えるのに、投稿できないのはなぜですか?

古いバージョンの Linux には、 Cnews がハングしてしまうような壊れた sed 
が含まれていました。古い SLS 版の上に重ねてインストールしたなら、 /bin 
や /usr/bin にあるのが新しい sed であるか確認して下さい。


7.8 trn/tin/nn に 新しい NOV の機能を付加し、独立したスレッドデータベー
スを置き換えることはできますか?

はい、できます。 trn3.3 は現在サポートされていますし、 tin は次のバー
ジョンでサポートされる予定です。

Cnews の Performance Release やその他いろいろなニュースリーダに接続で
きます。

NOV をサポートしている nn6.5 のベータコピーを使っていますが、 Linux で
きちんと動いています。私は、 nnmaster を動かさずに (!) 、 nn を動かし
ています。 uniwa.uwa.edu にコピーを置いています。


7.9 なぜ NNTP はバイナリで配布されていないのですか?

ローカルのみに重要な情報がコンパイル時に設定されていまい、実行時に自動
的に決定することができないからです。


7.10 ローカルにニュースの記事やデータベースを蓄えずに、ネットワークを
経由して読んだり投稿したり出来るように、NNTP を設定するにはどうすれば
いいですか?

( mdw@sunsite.unc.edu (Matt Welsh 氏) )

1) ローカルアーカイブサイトから nntp と rn の reference implementation 
を入手します。

ftp.uu.net では、 nntp.1.5.11.tar.Z は /news/nntp ディレクトリに、 
rn-4.4.pl3.tar.Z は /news/rn ディレクトリに置かれています。

2) 以下の手順で nntp をコンパイルします。

・common/conf.h.dist を common/conf.h にコピーします。
・重要なオプションを設定するよう、 common/conf.h を編集します。
私が設定したのは、

DOMAIN : ( #undef DOMAIN のように変更して)未定義にします。

REALDOMAIN : 定義します。ライブラリを使うドメインを調べます。

SERVER_FILE : ニュースサーバ(すなわち、ニュースを読んだり投稿したりす
るために経由するマシン)のホストネームが含まれたファイル名(私は 
/usr/local/lib/news/server )を設定します。

PASSFILE : 投稿するのにニュースサーバが(何がしかの種類のユーザネーム
とパスワードのような)権限を要求する時は、ユーザネームとパスワードが含
まれたファイル名(私は /usr/local/lib/news/nntppass )を設定します。後
で、書きます。

/usr/local/lib/news にある全ての news 関連のファイルを残すことにしまし
た。そのため、( ACTIVE_FILE, NEWSGROUPS_FILE, 等)ファイルにある残り
のパスを全て設定し、 /usr/local/lib/news を使うようにしました。このよ
うなファイルのうち多くはクライアントではなく NNTP サーバでしか使われま
せんが、安全のために上記のパスが正しいディレクトリを指すよう変更しまし
た。もちろんデフォルトのパスを使うことも出来ますので、この場合は単にデ
フォルトのディレクトリを作成して下さい。

3) ユーザ usenet が存在しなければ、作成します。inews プログラムはこの
ユーザで実行されます。このユーザには、ユーザ id は必要ですが、ホームディ
レクトリやシェルやその他については必要ありません。下の行を /etc/passwd 
に追加して下さい。

        usenet:*:13:1::/:

ユーザ id (上では 13 )が重複していないか、確認して下さい。グループは
何でもいいですが、ここでは daemon (gid 1) を使っています。

4) 上で書いた SERVER_FILE を作成します。例えば、ニュースサーバが 
wonton.tc.cornell.edu であれば、下の行を含めて 
/usr/local/lib/news/server ファイルを作成します。

        wonton.tc.cornell.edu

5) PASSFILE を作成します。このファイルは、下の形式で記述します。

        <サーバ名> <ユーザネーム> <パスワード>

ニュースサーバ(上記の SERVER_FILE の中のもの)が shoop.vpizza.com で、
そのマシンで投稿するためにはユーザネームが news、パスワードが floof の
ユーザの権限が必要だとしましょう。この場合、稿するために必要な権限を持っ
ているのであれば、 /usr/local/lib/news/nntppass )に、下の行が必要です。

        shoop.vpizza.com news floof

6) ファイルの安全性を高めます。inews プログラムはユーザ usenet で動か
して、ニュースのディレクトリと 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 

( nntppass ファイルに書かれている)パスワードは暗号化されていないので、
(ユーザ usenet と root 以外には)読めなくします。

7) nntp.1.5.11 のソースディレクトリに戻って、 make client を行ないます。
ここでは、 inews の NNTP バージョンを構築します。これは NNTP クライア
ントが使う唯一のファイルです。

私が inew を構築した時は、 uname.c にある uname() 関数が自分自身を永久
に呼び続けるというライブラリのバグがありました。これはもう修正されたは
ずです。inews がハングしたように見えたり、システムの動きが相当遅くなっ
たりしたら、 uname.c にある uname() を例えば my_uname() に変更し、
( inews.c の中で)代わりに my_uname() を呼ぶように変更して下さい。こ
の問題が発生したら、メールで知らせて下さい。 ( これは私 (VDS) ではなく 
:-) Matt 氏にメールして下さい。 )

8) inews のプログラムをインストールするために、 make install_client を
行ないます。これにより、 /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 が記事を投稿し、上の Reply-To の行にあるアドレスに、 
misc.test のテストレスポンダから返事が送られてきます。どうか c.o.l.*
:) のような実際のグループで、投稿のテストはしないで下さい。


7.10 nntp ベースのニュースリーダ/ポスタである rrn を構築するにはどう
すればいいですか?

( mdw@sunsite.unc.edu (Matt Welsh 氏) )

1. rn のソースディレクトリに移って、 ./Configure を実行します。ほとん
ど全ての質問でデフォルトを選択します。rn が利用できるように、 /lib の
中に cpp (通常は /usr/lib/gcc-lib/i386-linux/2.3.3 の中)へのリンクが
あることを確認して下さい。

- NeXT もしくは USG システムだといわれても、落ち着いて回答を続けて下さ
い。

- Do you expect to run these scripts and binaries on multiple
machines? には y と答えます。

- ドメインネームには、例えばシステムが foo.bar.com であれば bar.com と
答えます。(これはドメインであって、ホストネームではありません)

- ニュース管理のユーザネームには usenet と答えます。

- Where is your news library? には、上で書かれている、NNTP ファイルが
置かれているディレクトリ(私は /usr/local/lib/news )を答えます。

- Man page source は /usr/man/man1 です。

- Does your /etc/passwd file keep full names in Berkeley/V7 format? 
には y と答えます。

- コンパイラの名前には gcc と答えます。

- Do you want to build the NNTP version of rn (rrn)? には y と答えます。

- ニュースサーバのファイル名には、上で inews を構築する時に使用したも
の(私は /usr/lcoal/lib/news/server )と同じものを答えます。

まだ makedepend を実行しないで下さい。次のステップに進みましょう。

2) config.h を編集します。
まだ直っていなければ、
        #define ROOTID
の行を
        #define ROOTID 0
に変更して下さい。

3) rrn-4.4.pl3 には、 Linux には存在しない SIGEMT に関して小さなバグが
あります。rn はプロセスがまだ動いているかチェックするために SIGEMT を
使用しています。POSIX.1 では代わりにシグナル 0 を送ってやるだけです。

init.c の 243 行目が
        if (kill(processnum, SIGEMT)) {
となっていれば
        if (kill(processnum, 0)) {
に変更して下さい。

#ifdef で変えればいいと思われるでしょうが、 final.c の中の sigignore() 
で問題が発生しますので、 SIGEMT を 0 に定義してはいけません。

4) makedepend > makedepend.out を行ないます。

5) make を行ないます。これで rn のコンパイルが完了します。

6) make install を行ないます。

これでできあがりです。 rn は(いくつかのニュースリーダと同じように)ニュー
スグループファイルを扱うために大量のメモリを使用することを忘れないで下
さい。 rn を最初に実行する時は、ニュースグループを調査して .newsrc ファ
イルを作るために少し遅くなるでしょう。せっかちな人は、他の人が使ってい
る .newsrc ファイルをコピーして下さい。

次のページ 前のページ 目次へ