INN はちょっと大げさであるのでパス。また, スプール取り込みには, 日本製ソフトでドキュメントも日本語でかいてある gnspool を使うことにした。 最近は leafnode がはやりなんだそうだが, 「何でも全自動」というのが恐いのでやめた。
と, こうすると実は Linux JF の Offline-News-mini-HOWTO と全く同じになる。ということで, このドキュメントを参考に, FreeBSD 上でニュースサーバを立ち上げることにする。
うまい具合に, FreeBSD のパッケージの中に gn も nntpd もあるので, こいつらを使わせてもらう。NFS で共有した CDROM からインストールする。
pkg_add /netcdrom/2.2.1-RELEASE/packages/news/jp-gn-gnspool-1.35.tgz pkg_add /netcdrom/2.2.1-RELEASE/packages/news/nntp-1.5.11.5.tgzこれでインストール終了。続いて, 設定である。
こんな感じの .gnrc を書いた。
NNTPSERVER news.some.domain.some.where DOMAINNAME some.domain.some.where ORGANIZATION dokoka UNSUBSCRIBE all,!hoge.test NAME news subsystem GENERICFROM 1 ARTICLE_LIMIT 0 ARTICLE_LEAVE 0 SELECT_LIMIT 0 GNSPOOL_LANG EUC AUTHOR_COPY /dev/null NEWSRC ~/.newsrc上4行はサイト固有なので, 各自自分のサイトに合わせて書き換えて欲しい。 でもって, スプール用のディレクトリ /var/spool/gnspool, アクティブファイルなど用のディレクトリ /usr/local/news/lib などをオーナー news で作成する。
でもって, 実際にニュースの記事を取り込んでみる。
su news -c "gnspool -h"とすればいい。ニュースグループのチェックをはじめ, 最初は非常に時間がかかる (かもしれない) が, 我慢しよう。 おわったら, /var/spool/gnspool にファイルができているか確認する。
となるのだが, これにはまってしまった。 パッケージとしてインストールされているソフトは, どういう設定でコンパイルされているかが全くわからない。 gnspool の方は親切にも /usr/local/share/doc の中にドキュメントがあったので, 何とかわかったものの, nntpd の方は man ページしかドキュメントがなく, そこにも, コンパイル時の設定が書いてない。 実は nntpd は, inetd から起動させて使う時と, 常駐デーモンとして使用する時とで, コンパイル時の設定が違う。 そのうえ, news server として働く時に読み込むファイルの場所 (設定ファイル, ニュース記事のスプールディレクトリなど) などもコンパイル時に決めるのだが, それもどこかわからない。
私は, この nntpd は inetd から立ち上げるタイプであると思い込んでいて, inetd.conf を書き換え, inetd に HUP シグナルを送っても,
telnet localhost nntpができないので, 半日ほど悩みまくってしまった。 /var/log/messages に残るメッセージを調べたり, リブートしたり, インストールし直したり, 挙げ句の果てには, 「もしかして CDROM が壊れているのだろうか」 などと CDROM を調べたりした。
ここまで読めばわかるだろうが, 原因は 「packages の nntpd は常駐デーモンとして使うようにコンパイルされていた」 ためである。 inetd.conf を元に戻して nntp ポートを開けて, コマンドラインから nntpd を実行すれば, あなたのマシンはもう nntp server。このことにすぐ気づいていれば, 「あっ」と言う間にサーバが立ち上がったのだ。
気づかない私が悪いともいえるが, せめてこういうことぐらい package の DESC の中に書いといて欲しかった。 また, gnspool のスプールディレクトリと nntpd が期待するスプール先が異なっていたので, 最初は記事をとってきたのに「記事は0」などと表示されて困った。 どこがスプールディレクトリになっているかわからないので,
strings nntpd | lessなどとして, それっぽいディレクトリ名を探し出すことによって, スプールを発見した。
ln -s /var/spool/gnspool /var/spool/newsなどとやり, さらに, nntp アクセス制限ファイル /usr/local/news/lib/nntp_access (このファイルについては man ページにかいてあったので, すぐにみつけられた) を書き換えて, やっと記事が見えるようになった。 このファイルはこんな感じである。
default no no host1 read post host2 read post localhost read post当然ながら, host1,host2 というのは, LAN 内の実際のマシン名にする。
ということで, 今回の教訓:「急がば回れ」。 インストールが簡単だからとパッケージ使うより, 自分でコンパイルした方が早かったかも知れない。
普通メールの方が先だろう
番外:テレホーダイ契約