slrnpull/README 超「異」訳版

davis@space.mit.eduさんがお書きになったのかな。原文に著者名がないのですが。
翻訳：佐藤 大輔 <densuke@ga2.so-net.or.jp>

この記事は「無保証」です。失敗してどうにかなったって知りません。各自の責
任でやってください。翻訳についてのご意見等(誤字脱字は特に)はお気軽にメー
ルでどうぞ。

お手軽にインストールしたかったら、QUICK_INSTALLを読んでね。
(バイナリパッケージを使った人は不要だけど)
----------------------------------------------------------------------

slrnpullって何？
================

slrnpullというプログラムを使うことでslrnは、オフライン環境でも使えるんで
すよ。おおまかに言っちゃえば、slrnの代わりにslrnpullがNNTPサーバに接続し
てニュース記事を取ってきてくれるんです。

このテのツールとしては、leafnodeやsuckが有名ですが、(leafnodeを除いて)
innやcnews等のニュースサーバが必要になります。leafnodeはslrnpull同様、ニュー
スサーバは不要です。

多くの点でleafnodeはslrnpullより野心的な作りになってます。
例えばleafnodeは自分自身をニュースサーバのようにふるまって、他のニュース
リーダーからの接続を受け付けます。しかしながら、10〜20くらいのニュースグ
ループを扱うようになると、重くなってしまうようです。
そんなわけでslrnpullを作成しました。

slrnpullはとっても手軽に設定できます。ニュース用のルートディレクトリ(こ
のパッケージでは/var/spool/slrnpull)に置かれている設定ファイルをいじるだ
けです。この設定ファイルはどのニュースグループの記事をいくつ取ってくるの
か、どれだけたったら消去するかを設定するだけのものです。slrnpull.confが
そのファイルであり、その書式と例が書いてあります。

slrnpullは、記事に対して点数を付け、記事を取ってくるかどうかを決めること
ができます。slrnと異なる点は、この点数が*マイナス*の時は、この記事を取っ
てこないということです。

slrnpullのディレクトリ構造
==========================

slrnpullが想定しているディレクトリ構成はこんな感じです:

    SLRNPULL_ROOT/
    SLRNPULL_ROOT/data
    SLRNPULL_ROOT/news/
    SLRNPULL_ROOT/out.going/
    SLRNPULL_ROOT/out.going/rejects/

(このパッケージでは、SLRNPULL_ROOTは、/var/spool/slrnpullになっています。
以下、適宜置き換えて読んでください)

実際のニュース記事は、SLRNPULL_ROOT/news以下に置かれます。
out.goingディレクトリは記事を投稿したときに記事が置かれるところです。
投稿しようとして拒否された記事は、rejectsに置かれます。
slrnpullが作成する各種データファイルは、dataディレクトリに置かれます。

設定ファイル(slrnpull.conf)は、SLRNPULL_ROOTディレクトリに置かれます。
このファイルの初期状態では、書式と例が含まれています。
slrnpullを起動すると、このファイルを読み、newsディレクトリ以下に必要なディ
レクトリを作成します。

もし、ニュースサーバに接続する際に認証が必要であれば、SLRNPULL_ROOTディ
レクトリに"authinfo"というファイルを作成してください。
このファイルは
 1行目: 認証に用いる名前
 2行目: それに対応したパスワード
を書いておいてください。

slrnpullが動くと、SLRNPULL_ROOTディレクトリにlogというファイルができます。
既にある時は追加書き込みされます。なにかトラブっていそうなときは、このファ
イルを読んでどうなっているかを確認してみましょう。

slrnpullは、サーバから記事を取ってきたあと、SLRNPULL_ROOTディレクトリに
"active"というファイルを作成します。このファイルは、ニュースリーダが利用
することでしょう。

SLRNPULL_ROOTディレクトリは、以下の方法で指定できます:

   1. コンパイル時に指定する。デフォルトでは/var/spool/slrnpull
   2. 環境変数SLRNPULL_ROOTで指定する。
   3. コマンドラインで -d <ディレクトリ> と指定する。

サンプルスクリプト(slrnpull.sh)では3番目の方法を使っています。

注意: SLRNPULL_ROOTは複数のサーバで共用することはできません。複数のサー
バと接続するときは、各サーバごとに別のSLRNPULL_ROOTを指定してください。

slrnpullのコマンドラインオプション
==================================

オプションにより、slrnpullの動きをコントロールできます:

   slrnpull <オプション>

以下のものが使えます:

   -d SLRNPULL_ROOT 
   -h NNTPSERVER
   --expire
   --post
   --new-groups

"-d"が与えられないと、slrnpullは環境変数SLRNPULL_ROOTに指定したディレク
トリを使用します(環境変数が無ければコンパイル時に指定したもの)。

"-h"は、使用するニュースサーバを指定します。これが与えられてないと、環境
変数NNTPSERVERを利用します。

"--expire"は、削除モードで実行します。slrnpull.confに指定された日数より
長く残っている記事を削除します。このときは、ニュースサーバへの接続はしま
せん。できれば毎日1回は実行しましょう。少々時間がかかりますが、そのとき
にどの記事が削除されたかのデータベースを作成しています。

"--post"を指定すると、記事の投稿を行うだけで記事を取ってきません。
普段は必要ないでしょう。投稿待ちの記事があれば、起動時に投稿しますから。

普通、slrnpullは新規作成されたニュースグループを検索しませんが、
"--new-groups"を指定したときはそれを行います。
もし新規作成されたグループが存在していたらその情報をdata/new.groups
に記録し、data/new.groups-timeの日付を更新します。

slrnpullのスコアリング
======================

SLRNPULL_ROOTにscoreというファイルがあると、slrnのスコアファイルとして読
み込みます。このファイルは主にサーバから記事を取る前に拒絶するために使用
します。書式はslrnのスコアファイルと同じです。
点数がマイナスになった記事は取得しません。

slrnで利用するには
==================

SLRNPULL_ROOTが/var/spool/slrnpullだとしたら、こんな風に.slrnrcに書いて
おくことで、読むことができます:

    set spool_inn_root		"/var/spool/slrnpull"
    set spool_root		"/var/spool/slrnpull/news"
    set spool_nov_root		"/var/spool/slrnpull/news"
    set read_active		1
    set use_slrnpull		1

変数use_slrnpullを1にしておくことで、投稿した記事はout.goingディレクトリ
に置かれるようになります。spool_rootとspool_nov_rootは同じ値にしておいて
ください。
訳者注)slrn-offlineパッケージを使用している場合は、ドキュメントディレク
       トリにあるjslrn.rc-offlineにこの指定がすでに入っています。

さらに、hostnameにこんなのを指定しておくといいかもしれません:

    hostname			"your.host.name"
    username			"your.user.name"
訳者注)なにがいいのか私にはわかりませんでした。不要くさいです。

制限
====

slrnpullは、クロスポストされている記事を1つだけ取るようにしています
(fj.jokesとfj.news.usageにクロスポストされている記事で、先にfj.jokesから
取ってきていたら、fj.news.usageからは取らない)。理想としては、
fj.new.usageにコピーを作ればいいのですが、これは将来のバージョンでどうに
かするかもしれません。
