slrn-0.9.5.3jp0 + leafnode-1.4jp15 (Jam patch) でニュース


いや〜、これを書くまでにずいぶんと時間がかかってしまった。アウアウやってる間に、slrnもleafnodeもバージョンが上ってしまっているぞ(笑)

てなわけで、NetNewsだ。internetというと今じゃwwwのことを指しているような気がするが、んなもなぁほとんどread onlyなワケで、mosaicが世の中を席巻するもっとずっとずぅぅぅっと前から使ってる(というか参加してる)人はNetNewsとE-Mailこそがinternetだったのだ。などというウンチクはど〜でもいいのだが、現実に解決しなきゃならない問題として、Linuxを使っているユーザの人達は、Newsをどうやって読み書きしてるんだろうか。

誰も彼もが専用線を持っているワケじゃないよねぇ。OCNとかCATVなどの、繋ぎっぱなしな環境を個人で持っている人はまだ少ないと思う。会社のLANを使って会社のマシンで、という人は置いとくとすると、大部分の個人ユーザはダイアルアップな環境で、pppなりでinternetに乗り入れているはずだ。でもこれだとNewsって使いにくいんだよね。

NNTPを喋るNewsReaderといったアプリでサーバに蓄積された記事を直接読むというのが普通(今は普通じゃないか)というか基本だったのだが、そんなこたぁLANが敷かれている場所でだけできることで、ダイアルアップでサーバから直接読んでたりしたら時間がかかって仕方がない。特に通信費のバカ高い日本では、Newsを読んで、うぅ〜む、となっている間でも刻々と課金されていく。喜ぶのはNTTばかりと言うワケだ。じょ〜だんじゃねぇよな(-_-#)

そこで、誰もが考えるのが、ローカルにニュース・スプールを置いちゃえ、という方法だ。INN + suckとか、gnspoolとかね。やってることは皆似たようなもので、要するに、契約しているISPのNews鯖などからNewsを引っぱってきて、ローカルなスプールに格納し、あたかも自分のマシンに配信されたかのように見せてくれるワケだ。

だがここには落とし穴があって、特にINNなんか使うと、これはもはやまっとうなサーバなので、何十人ものユーザで共有できたりと何でもできるかわりに手間も食う。Newsを逆流させて、それと知らずに大変な迷惑をかけてしまったり、Message-ID(Newsの通し番号で重複してはならない)に腐った内容の文字列を入れてたりと、いろいろ起こる。

しょせんダイアルアップなのだから、もっとず〜っとシンプルなものでもいいのに… という人には、leafnode が絶対のオススメだ。

leafnodeの特長としては、まずインストールが簡単だ。というかインストールしたあと、Newsを持ってくるまでに踏まなければならない手順が非常に少ない。また、運用も簡単で、News Groupの管理をする必要がない。定期的にexpireしてやることにさえ注意していれば気を付けることはなにもない、といえる。ツール自体もコンパクトだしね。

また、架空のMessage-ID問題についてだが、leafnodeは昔は自前のMessage-IDを付けないことで知られていて、それで好んで使う人もいたと思う。が、いつしか(たぶん1.4からと思う)自前のMessage-IDを付けるようになってしまった。これはダイアルアップなユーザには余計なお世話なので、パッケージ置き場に置いてあるleafnodeのパッケージにはパッチをあててMessage-IDを付けないようになっている。配信を実際に依頼する、ISPのNNTP鯖に付けてもらうようになっているので、Message-IDの一意性が失われることはない。

Message-IDの他にも、X-TTでもお世話になっているJamさんのページからleafnode-jp15というパッチを頂いてきてあててある。基本的にはJamさんが磨いたleafnodeを赤帽向けにパッケージしただけ、と言える。複数のNNTP鯖からNewsをfetchしてきたり、Group毎にExpire間隔を設定したり、バグ・フィックスもたくさん施されていて、オリジナルよりもず〜っと良くなっている。

設定に必要なファイルは、文字通りconfigという名前のファイル1つだけで、パッケージ置き場から持っていったヤツだと /usr/lib/leafnode の下に置くようになっている。config.example というファイルが同じ場所にインストールされるようになっているので、それをベースに

# This is the NNTP server leafnode fetches its news from.
# You need read and post access to it.
server = ISPのNews鯖の名前
username = ISPでのUser ID
password = 上のUSer IDのパスワード
expire = 7
maxcount = 2000

などと書いておけばよいだろう。他にも設定できる項目はあるが、とりあえずこれだけで充分に動く。

configを書いたら、suしてfetch -v -vなどとして見よう。Newsを取りに行ったかな? すぐ返ってきちゃったでしょ?それでいいのだ。

というわけで次はslrnをインストールしよう。またしてもパッケージ置き場から持って行ってちょ。slang_jpも忘れずに。slang_jp と slrn は、基本的には師匠のページからもらってきて赤帽向けに調整し、rpmにしただけのものなのだが、slrnには朝木さんのページからパッチを頂いてきて調節してあててある。特にleafnodeは非常に簡易なサーバなので、NEWGROUPが働かないのがネックだったのだが、朝木さんのパッチのおかげで新しいNews Groupができたときにもslrnが認識するようになり、非常に便利になった。

さて次はslrnをインストールしよう。slrn にもそれなりに設定ファイルというものが必要で、~/.slrnrc というファイルを置いてやるのだが、パッケージ置き場から持っていったヤツなら /usr/lib/slrn/slrn.rc というファイルがインストールされているので、それをベースに書こう。

注意する箇所、追加してやる必要のあるものは

% use_mime を2(0と1以外)に設定すると、mimeデコードのみ行なう
% (したがって、このときsubjectに日本語があると生JISで出る)
set use_mime 1
set mime_charset "ISO-2022-JP"
set japanese_messages 1
set display_code 1
% set editor_command "mule %s"
set editor_command "jed %s -g %d -tmp"
set detect_SJIS 1
set gmt_to_local 1

nnrpaccess "news.gte.net" "" ""        <-- こっから下は適宜変えるべし。
hostname "gte.net"
set username "toru"
set realname "Toru Hoshina"
set replyto  hoshina@best.com
set signature "/home/toru/.signature"

といったところか。あとはもとのslrn.rcのままで良いと思う。オレはエディタにjedを使っているので上記のとおりになっているが、mule などの他のエディタを使っている人は適宜変更してちょ。といっても、slrnを使っていてエディタにjedを使わないってのはちょっと考えられないけどね(笑)

とりあえず、それらしく設定ファイルが書けたら、

slrn -f ~/.jnewsrc -create

として見よう。もちろん ~/.newsrc でもいい。オレはなんとなく .jnewsrc にしてるだけ(笑)

無事にslrnが起動したかな? ものすげ〜数のNews Group が Unsubscribe な状態で見えていると思う。読みたいGroupだけ s で選ぼう。でもNewsはまだ1通も来てないでしょ? それでいいのだ(バカボンのオヤジか)。 いったんslrnを終了して、もう一度suして

fetch -v -v

としてみよう。どう?Newsを取りに行ったかな? 最初はそれこそオニのようにかき集めるので、茶でも飲んで待とう。えっち画像のアーカイブなんかをfetchしようものなら泣きを見ること確実なので注意だ(*^-^*)


メール 戻る