INSTALL   [plain text]


Mailman - The GNU Mailing List Management System
Copyright (C) 1998,1999,2000,2001,2002 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA

これは Mailman 2.1 の INSTALL を菊地@高知大が和訳したものです. 
誤訳があるかもしれないので,必ず原本(英文)を参照してください.

このファイルには Mailman のインストール方法が載っています. 
Mailman は標準の GNU autoconf ソフトウェアを使って設定されます. 
まず最初に,以下のセクションで概説されているようにシステムを 
セットアップしてください.その後,Mailmanソフトウェアを configure 
し, インストールしてください.

バージョンアップ
Mailman をバージョンアップするのは,既存のバージョンを上書きして
新しい バージョンをインストールするのと同じくらい簡単です.しかし, 
バージョンアップの前に UPGRADING ファイルに書いてあるノートを
読んでください. 重要な情報があります.

0. インストールの必要事項

    まず, あなたがメールを送るときに使える, メールサーバ(MTA)と,
    CGI/1.1 の API をサポートするウェブサーバが必要です. Apache が
    ウェブサーバとしては適当です. また, MTA としては, Postfix, 
    Exim, Sendmail, qmail などはどれも使えます.

    セキュリティ向上のために用いられている wrapper プログラムを
    構築するためには ANSI C コンパイラーが必要です. GNU の C
    コンパイラ gcc 2.8.1 以降のバージョンでうまくいきます.Gcc 
    を取って来るには, 以下の URL を参照してください.

        http://www.gnu.org/

    システムには Python インタプリタがインストールされていなけれ
    ばなりません. 現時点で,Python 2.1.3 または 2.2.1 を推奨しま
    す. Python のソースまたは RPM, コンパイル済みバイナリを取得す
    るには Python のWebサイトをご覧ください.

        http://www.python.org/

    もし, Python をソースからインストールするのであれば, UNIX 的
    OS に標準の "./configure ; make install" でいけるでしょう.
    "make test" を実行すると沢山のテストがスキップされるかもしれ
    ません --- 気にすることはありません. 多分必要ないでしょう.
    Mailman は殆んどのシステムでコンパイルできる, 基本的な機能だ
    けを使うようにしています.

    もし, あなたが使おうとするメールサーバ(MTA)について
    README.<yourMTA> があったら, 今読んでください. MTA によっては
    最新の機能(例えばウェブ経由でリストを作成・削除)をシームレス
    に統合することができます. 例えば Exim と Postfix です. 特定の
    MTA についての設定指南がそれらの README ファイルに入っています.


1. システムセットアップ

    このセクションのステップを実行するには root になる必要があります.

    Mailman ソフトウェアのインストールの前に,特定のユーザとグルー
    プを追加登録することでシステムの準備をする必要があります. 

    - 新しいユーザ 'mailman' を登録してください.普通これは 
      /etc/passwd ファイルに追加されます.(訳注:直接 /etc/passwd 
      を編集するので無く,adduser/useradd/vipw などのコマンドを使い
      ます.) もし, mailmanが(他の目的で)すでに使われていたら,他の
      名前を選んで,下の --with-ownername フラグで指定します.

    - 新しいグループ 'mailman' を登録します.普通これは /etc/group 
      ファイルに 追加されます.Mailman のファイルは 'mailman' グルー
      プでインストール され set-group-id ビットが立てられます.この
      ことによって,Webベースとメールベースの両方のプログラムが正し
      い書きこみ許可を持つようにできます.(訳注:システムによっては 
      ユーザの登録に「既に登録されたグループ」が必要なことがありま
      す.また,別のシステムでは,コマンドでユーザ登録する時に同時
      にグループ登録もできます) もし,mailman が既に使われていたら,
      別の名前を選んで,下の --with-owergroup で指定します.

    - インストールのディレクトリを作成します (以下の文書では
      $prefix と呼ぶ). 全ての Mailman ファイルはこの $prefix の下
      にインストールされます. "configure --help" を実行すると, 読み
      取り専用と読み書き可能なファイルとに分けてインストールする方
      法が出てきます.

      Mailman 2.1 のデフォルトのインストールディレクトリは
      /usr/local/mailman です. Mailman 2.1apha 以前のバージョンでは
      /home/mailman でした. デフォルトを変更するには configure で
      --prefix オプションを使います (下を参照). Mailman 2.1 以前の
      バージョンから更新するには, インストールディレクトリを変更す
      るので無い限り, --prefix を設定する必要があります.

      あなたのサイトで /usr/local に nosuid オプションが付いてマウ
      ントされていないか注意してください. これがあると, Mailman の
      インストールに失敗します. というのは, セキュリティ上の理由で
      set-gid プログラムの利用を前提としているからです. もし, この
      ような問題があったら, 単純に setgid プログラムを置けるような
      場所に Mailman をインストールしてください.

      インストールのディレクトリが `mailman' グループに設定されて
      いることを確認してください (あるいは --with-groupname で指定
      しようとしているグループ). そして, setgid ビットがセットされ
      ていることを確認してください. (もし, BSD システムを使うなら
      README.BSD も読んでください) また, このディレクトリが全ての
      ユーザに読み取りと実行(移動)可能であることを保証したいと思う
      でしょう. 以下のシェルコマンドでこれらのことが設定できます:

          % cd $prefix
          % chgrp mailman .
          % chmod a+rx,g+ws .

      これで, Mailman ソフトウェアを configure しインストールする
      準備ができました.

2. configure を走らせる

    下にある,--with-mail-gid と --with-cgi-gid のオプションに特に
    注意. 多分これが必要になります.

    このセクションに書いてある手順を実行する間は, あなたは root に
    なるべきではありません. 自分自身のログイン名か, 他のソフトを
    インストールするときに使うアカウントを使ってください. また,
    mailman ユーザになる必要はありませんが, そうしても構いません.
    但し, 前の手順で作成した $prefix ディレクトリの書き込み許可を
    得るためには, そのアカウントが mailman グループに所属している
    必要があります.

    ターゲットのインストールディレクトリに書き込み権限があることと,
    そこに setgid ファイルを作成できることを確認してください.
    (NFS や他のマウント方式で setgid を禁止している場合があります)

    もし, 他の GNU ソフトをインストールしたことがあるなら, configure
    スクリプトにはおなじみでしょう. Mailman の tarball を開いた
    ディレクトリに cd して, configure を引数を付けずに実行して
    ください.

        % cd mailman-<version>
        % ./configure
        % make install

    以下のオプションで Mailman をカスタマイズできます.

      --prefix=<dir>
            標準的な GNU configure のオプションで Mailman がインス
            トールされることになるベースのディレクトリを変更します.
            デフォルトでは $prefix は /usr/local/mailman です.この
            ディレクトリはその時点で存在していなければならず,上の
            セクション1で説明したようにセットアップされていなけれ
            ばなりません.

      --exec-prefix=<dir>
            標準的な GNU configure のオプションでアーキテクチャに
            依存したバイナリのインストールディレクトリを指定できます.

      --with-var-prefix=<dir>
            交換可能なデータを prefix や exec-prefix の代わりに
            <dir> の下に保存します.

      --with-python=</path/to/python>
            wrapper プログラムで使用する Python インタプリタを変更
            して指定することができます.デフォルトはシェルの $PATH 
            の中で最初に見つかったものを使います.コマンドラインか
            らスクリプトを実行する際には, $PATH の中で最初に見つかっ
            た Python のインタプリタが常に使われます.

      --with-username=<username-or-uid>
            `mailman' でないユーザ名をデフォルトに使う場合に指定
            する. `mailman' というユーザ名が既に別人によって使用さ
            れている場合にのみ使ってください. このスイッチは整数の
            ユーザID またはユーザ名を使うことができます. $prefix
            ディレクトリがこのユーザの所有であることを確認してくだ
            さい.

      --with-groupname=<groupname-or-gid>
            `mailman' でないグループ名をデフォルトに使う場合に指定
            します. `mailman' というグループ名が既に使われている
            場合に限って使ってください. このスイッチは整数のグルー
            プID またはグループ名を使うことができます. $prefix
            ディレクトリがこのグループの所有であることを確認してく
            ださい.

      --with-mail-gid=<group-or-groups>
            mail wrapper を介してスクリプトを実行する際のグループを
            指定します.<group-or-groups> は,1個または複数の整数
            のグループID でも,グループの名前であっても可です.リス
            トの最初の値で実際に存在 するグループの値が使用されます.
            デフォルトでは,これは `mailman other mail daemon' の 
            リストになっています.

            これは高度にシステム依存であり,正しい値を知っておく必
            要があります.というのは,グループIDがmail wrapper プロ
            グラムにコンパイルされてセキュリティを高めるからです.
            Sendmail を使っているシステムでは, sendmail.cf に 
            "DefaultUser" を使って sendmail プロセスの gid が 設定
            されています.(もし,コメントアウトされていたら,それで
            もデフォルトを示しているかもしれません)

            このスイッチの正しい値を知るために, 使用している MTA の
            説明や設定ファイルをチェックしてください.

      --with-cgi-gid=<group-or-groups>
            CGI wrapper を介してスクリプトを実行する際のグループを
            指定します. <group-or-groups>は,1個または複数の整数
            のグループID でも,グループの名前であっても可です.リス
            トの最初の値で実際に存在 するグループの値が使用されます.
            デフォルトでは,これは `www www-data nobody' の リスト
            になっています.

            この値は Web サーバの設定に依存します.正しい値を知っ
            ておく必要があります. というのは,グループIDがCGI wrapper
            プログラムにコンパイルされてセキュリティを高めるからで
            す.これが違っていると Mailman CGI スクリプトは 動きま
            せん.

            もし Apache を使っていれば,httpd.conf に書かれている 
            `Group' オプション の値をチェックしてください. 

      --with-cgi-ext=<extension>
            cgi プログラムの拡張子を指定します.$PREFIX/cgi-bin に
            置かれた CGI wrapper はこの拡張子を持ちます.(Webサーバ
            によっては 拡張子が必要です) <extension> には . (dot) 
            を入れておくこと. 

      --with-gcc=no
            gcc が見つかっても使いません.`cc' が $PATH に無いとい
            けません.

3. インストールのチェック

    "make install" を実行した後, 正しいパーミッションとグループ所
    有権が設定されていることを check_perms スクリプトで確かめてく
    ださい.

    - cd で $prefix へ移動

    - bin/check_perms を実行

    ソースディレクトリで bin/check_perms を実行しようとしないでく
    ださい. インストールした (つまり, $prefix) ディレクトリでのみ
    実行可能です.

    これが問題を報告しなければ, あなたのインストールは正しく設定さ
    れていた可能性が高い <wink> です. もし, 問題点が報告されたら,
    手で修正するか, もう一度インストールをやりなおすか, check_perms
    を使って(多分, 一番簡単)修正することが出来ます.

    - インストールを行ったユーザ ($prefix のファイルの所有権を持つ
      ユーザ) になるか, root になります.

    - bin/check_perms -f を実行する.

    - エラーの報告がなくなるまで, 上の手順を繰り返す!

4. 最終システムセットアップ

    おめでとう!Mailman ソフトウェアのインストールが完了しました. 
    しかし,実際に全てをうまく動かすには,Mailman を Webサーバと
    Mailシステムの 両方に接続しないといけません.

    - もし,MTAとWebサーバを別のマシンで動かして,Mailman を NFS 
      経由で 共有したいと考えていたら,その2つのマシンの時計が同期
      していることを 確かめてください.この手の環境では,
      Mailman/LockFile.py に定義された CLOCK_SLOP という定数を使って,
      時計のずれを補償したファイルロック機構 にすることができます.

    - Webサーバの設定で $prefix/cgi-bin に CGI スクリプトの実行許可を
      与えてください.これをやるには root になる必要があるでしょう.

      設定ファイル (httpd.conf) に書き加える行は以下のようなものにな
      るはずです. (もちろん,$prefix のところは実際の絶対パスディレ
      クトリにしてください)

          Exec          /mailman/*      $prefix/cgi-bin/*
      又は,
          ScriptAlias   /mailman/       $prefix/cgi-bin/

      詳しくは,自分が使っている Webサーバの説明書を読んでください.

    - CGIスクリプトを実行する ユーザIDが `mailman' グループに入って
      い*ない*ことをよく確認してください.でないと,非公開の保存書
      庫(private archive) が誰にでも見られてしまいます.

    - Mailman, Python, GNU のロゴをWebサーバのアクセス可能なところに
      コピーしてください.例えば Apacheの場合,画像ファイルを入れて
      おくのに 'icons' ディレクトリが用意されているはずです.例:

        % $prefix/icons/*.{jpg,png} /path/to/apache/icons

      $prefix/Mailman/mm_cfg.py にロゴのベースディレクトリを書いた
      行を追加してください.例えば:

      IMAGE_LOGOS = '/images/'

      IMAGE_LOGOS のデフォルト値は '/icons/' です.Defaults.py.in に
      書かれたコメントを読んでください.

    - Pipermail の公開メーリングリスト保存書庫を参照できるように 
      Web サーバを 設定してください.

      例えば Apache の場合:

         Alias /pipermail/ $varprefix/archives/public/

      ここで, $varprefix は通常は $prefix と同じで, --with-var-prefix
      オプションを付けて configure した場合にはその値となります.

      詳しくは,ご利用の Web サーバの説明書を調べてください. また,
      このディレクトリでシンボリックリンクをたどることができるように 
      Web サーバを設定してください.でないと,Pipermail の書庫にアク
      セスできません.Apache のユーザは FollowSymLinks オプションを 
      調べてください.

      また, もし公開保存書庫を国際化したいのであれば, Pipermail
      ディレクトリのデフォルト文字集合の指示をオフにした方がよいかも
      しれません. でないと, 多言語の保存書庫は正しく見ることができな
      いでしょう. Apache の標準のインストールについての設定例は:

      <Directory "/usr/local/mailman/archives/public/">
          AddDefaultCharset Off
      </Directory>

      ここで, Webサーバを再起動してください. 

    - "サイト全体の" メーリングリストを作成します. これは, パスワード
      の覚えを送信するときの送信者に設定されます. 通常, これは mailman
      という名前のメーリングリストにしますが, もし変更が必要なら,
      mm_cfg.py に MAILMAN_SITE_LIST を設定します.(下を参照)

          % bin/newlist mailman

      入力要求に従って必要事項を入力してください. README にも情報が
      あります.

    - crontab の設定をします.Mailman は沢山の cron ジョブを使って,
      基本的な機能を実現しています. 以前のバージョンから更新している
      場合には, 新しい crontab を入れる必要が出てきます. しかし, サイ
      トで複数の Mailman をインストールしている場合には注意してくだ
      さい. crontab を変更すると平行した Mailman を壊すかもしれません.

      あなたの使う crontab で -u オプションを使えるなら, 次の例のように
      root になって実行します. 次のコマンドを実行して 
      $prefix/cron/crontab.in を crontab に登録してください.

          # cd $prefix/cron
          # crontab -u mailman crontab.in

      もし, --with-username オプションを使っていたら, -u の引数には,
      mailman の代わりにそのユーザ名を使います. もし, crontab が
      -u オプションをサポートしていなければ, 次のようにしてください.

          # cd $prefix/cron
          # su - mailman
          % crontab crontab.in

    - Mailman の qrunner デーモンを $prefix ディレクトリで次のように
      コマンド実行して起動します.

          % bin/mailmanctl start

      システムをリブートするたびに Mailman を起動したければ, そして,
      OS が chkconfig コマンドをサポートしていれば (例えば Red Hat
      や Mandrake の Linux) 次のようにしてください. (Mailman の
      インストールディレクトリから, root になって)

          # cp scripts/mailman /etc/init.d/mailman
          # chkconfig --add mailman

      (/etc/init.d はシステムによっては /etc/rc.d/init.d かもしれません)

      Debian では, chkconfig の代わりに次のようにします.

          # update-rc.d mailman defaults

      chkconfig をサポートしない UNIX では, scripts/mailman をコピーして

          # cp scripts/mailman /etc/init.d/mailman

      次のようにシンボリックリンクを張ります.

          # cd /etc/rc.d/rc0.d
          # ln -s ../init.d/mailman K12mailman
          # cd ../rc1.d
          # ln -s ../init.d/mailman K12mailman
          # cd ../rc2.d
          # ln -s ../init.d/mailman S98mailman
          # cd ../rc3.d
          # ln -s ../init.d/mailman S98mailman
          # cd ../rc4.d
          # ln -s ../init.d/mailman S98mailman
          # cd ../rc5.d
          # ln -s ../init.d/mailman S98mailman
          # cd ../rc6.d
          # ln -s ../init.d/mailman K12mailman

    - Defaults.py の中の DEFAULT_EMAIL_HOST と DEFAULTS_URL_HOST を
      チェックしてください. 変更が必要な場合は mm_cfg.py に書きます.
      また, どちらかの値を変更したときには, mm_cfg.py の変更の後に,
      次のように追加してください.

          add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)

    - あなたは先に作成した mailman リストに入会してください.

5. Mailman のカスタマイズ

    以下の作業は上の第2節で Mailman をインストールしたときのユーザで
    おこなう必要があります.

    - $prefix/Mailman/Defaults.py には, インストールのときのデフォルト
      が, 沢山記述されています. もし, そのうちのどれかが間違っていれば
   $prefix/Mailman/mm_cfg.py で上書きしてください. Defaults.py を
      変更しないように! Defaults.py に書いてあるコメントに詳しく書かれ
      ています. リストが作成されてしまうと, それらの変更は効果が無く
      なります. その時点からは, リストの設定変更はウェブインターフェース
      を使うか, bin/withlist または bin/config_list のコマンド行
      スクリプトを使ってください.

      インストールの過程では既存の mm_cfg.py を上書きしません. 
      このため, このファイルには自由に変更を加えることができます.

      注意: HOME_DIR と MAILMAN_DIR を変更しないこと. これらは,
      configure スクリプトで自動的に設定されます.

    - 次のコマンドでサイトパスワードを設定する.

        % $prefix/bin/mmsitepass <your-site-password>

      このパスワードは個人ユーザやリスト管理者のパスワードが必要な
      ときにはいつでも使えます. つまり, サイト管理者には必要があれ
      ば, これらのことを調整する能力が与えられます.

      また, "リスト作成" の役割を持たせたサイト全体用のパスワード
      を作成することもできます. (これは, サイト管理者以外のだれかに
      ウェブ経由でリストを作成したり削除したりさせたいときに使い
      ます.) -c オプションを使うとこれができます.

6. さあ, 始めよう

    README ファイルには "初めてリストを作成する" というところに,
    最初のテストリストを作成する方法が書いてあります.

7. トラブルと対策

    もし,Mailman の実行で問題が発生したら,まず以下の「一般的な
    問題」のセクションをチェックしましょう.もし,問題がそこに含
    まれていなければ,FAQ ファイルとオンラインの FAQ Wizard を
    チェックしてください.それから,システムの syslog と,
    $prefix/logs/error ファイルにエラーが入っていないかもチェック
    しましょう.

    あなたのマシンでの syslog の所在はマシンによって変わります.
    /var/log/maillog にあるかもしれません./var/log/sylog の可能性
    もあります.多くのマシンでは /var/log の代わりに /adm/log に 
    syslog ファイルが住み着いています.

    もし,エラーに遭遇したら,エラーレポートを mailman-users@python.org 
    に送ってください.その中には 問題を起こしたとき,あなたが何を
    やったか説明を入れてください.また,syslog から関係する行を
    コピーしてください. また,あなたのオペレーティングシステムと 
    Pythonのバージョンの情報も 入れてください. 
    (訳注:もちろん英語です.) 

8. 一般的な問題

    問題:    Mailman の Webページが全て 404 File not found エラーに
             なります.

    解決法:  Web サーバの設定で Mailman の CGI コマンドを正しく扱え
             るように設定できていません.以下を確認:

             1) Webサーバで $prefix/cgi-bin に正しく許可(permission)
                を設定する.
             2) Webサーバを正しく再起動する. 

             Webサーバのドキュメントをよく読んでどうしたらよいか調べ
             てください.

    問題:    Mailman の Webページが全て "Internal Server Error" に
             なります.

    解決法:  間違った GID または UIDを使って CGIスクリプトを実行し
             ようとしている可能性があります.syslog をチェックして
             ください.例えば,以下のような行があったら,

                Attempt to exec script with invalid gid 51, expected 99

             Mailman を再インストールしなければなりません.インス
             トールのセクションで書かれたようにして $CGI_CGI を 51
             に指定してください.

             (訳注: ログは Web サーバの error_log に出ているかもし
              れません. 再インストールは 
                 ./configure --with-cgi-gid=51 ... 
              と make install でできるはずです.他に問題が無ければ
              ですが.) 

    問題:    メールをリストに送ったら,リストが見つからないという
             メールを受け取りました.

    解決法:  多分,システムの alias データベースに必要な alias を 
             追加していなかったのでしょう.alias は newlist コマンド 
             を実行したときに出てきます.もし実際に追加していたら, 
             newaliases を実行して alias データベースを更新していな
             かった のかもしれません.上のセクション5をもう一度読んで
             ください.

    問題:    リストにメールを送ったら,"unknown mailer error" が 
             帰ってきました.

    解決法:  メールシステムで間違った GID または UIDを使っている
             可能性があります.syslog をチェックしてください.次の
             ような 行があったら,

             Attempt to exec script with invalid gid 51, expected 99

             Mailman を再インストールしなければなりません. 
             インストールのセクションで書かれたようにして $MAIL_GID 
             を 51に指定してください.Postfix については次の問題も 
             見てください,デフォルトではこのような問題が発生します.

             (訳注:エラーメールの中に書かれているかもしれません. 
              ./configure --with-mail-gid=51 ... make install で 
              修正します) 


    問題:    私は Postfix を MTA に使っています.そして, mail wrapper 
             プログラムは GIDが違っていると不平を log に残します.

    解決法:  Postfix の main.cf 設定ファイル内に, "alias_maps" と
             いう名前で, Postfix 用に別の aliases ファイルを作って
             ください. ファイルは mailman のホームディレクトリの
             どこかあるいはどこでも mailman が書きこめるところに置
             いてください. mailman ユーザになって Postfix の 
             "postalias" コマンド を alias file について実行します.

             % postalias <the alias file>

             さらに,mailman ユーザで,

             % python -c'import os; print os.getgid()'

             を実行します.これで mailman プログラム が mail wrapper 
             実行の際に 使うべき グループ ID が出力されます. これを 
             "thegid" としましょう.次のようにして mailman を再構築
             してください.

             % ./configure --with-mail-gid=thegid

             Postfix と Mailman を連携して使う件については,
             README.POSTFIX も見てください.


    問題:    リストにメールを送ると, 
             "sh: wrapper not available for sendmail programs" 
             というメールが帰ってきます.

    解決法:  あなたのシステムでは sendmail restricted shell (smrsh)が
             使われて います.メール wrapper ($prefix/mail/wrapper) 
             から smrsh で実行が許可されているディレクトリへシンボ
             リックリンクを 張る必要があります.

             一般的にこのディレクトリは /var/admin/sm.bin, 
             /usr/admin/sm.bin 又は /etc/smrsh などに設定されています. 

             Debian linux ではシステムは /usr/lib/sm.bin を作成します
             が,これは間違っています./usr/admin/sm.bin を 作ってそ
             こへリンクを作成する必要があります. 
             注:newaliases が吐き出すどの alias も wrapper への
             安全なリンクを指す必要があります.

    問題:    configure を呼び出すときに散らかしてしまいました. 
             掃除をして再インストールするにはどうしたらいいですか?

    解決法   % make clean
             % ./configure --with-the-right-options
             % make install