IT pass HikiWiki - [Memo2014][ITPASS] ezmlm のインストールと設定 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

== ezmlm のインストール

=== ezmlm のソースのダウンロードと展開

* ezmlm のソースを配布サイト((URL:http://cr.yp.to/ezmlm.html))よりダウンロードし, 展開した.

    # cd /usr/local/src
    # wget http://cr.yp.to/software/ezmlm-0.53.tar.gz
    # tar xfvz ezmlm-0.53.tar.gz

=== パッチの取得・適用とビルド

* ((<URL:https://itpass.scitec.kobe-u.ac.jp/server/2012/ezmlm/ezmlm-glib-log.patch>))で入手したパッチを当てた.

    # wget http://itpass.scitec.kobe-u.ac.jp/~itpass/server/2012/ezmlm/ezmlm-glib-log.patch
    # cd ezmlm-0.53/
    # patch  < ../ezmlm-glib-log.patch

* バイナリファイルのインストール先はこれまでのやり方にあわせ, /usr/local/ezmlm/bin 以下としたいので, conf-bin を以下のように書き換えた.

    # vi conf-bin
    /usr/local/ezmlm/bin

* man のインストール先も以下のように変更した.

    # vi conf-man
    /usr/local/ezmlm/man

* インストール先ディレクトリ /usr/local/ezmlm を作成した.

    # mkdir /usr/local/ezmlm

* conf-qmail に記述されているディレクトリが qmail がインストールされているディレクトリと一致していることを確認した.

    # cat conf-qmail
    /var/qmail

    # ls -F /var/qmail
    alias/  bin/  boot/  control/  doc/  man/  queue/  rc*  users/

* 確認した後, make でバイナリを, make man でマニュアルをビルドし, make setup でインストールした.

    # make
    # make man
    # make setup

== ezmlm の実行ファイルへのパスの設定

* インストールした ezmlm の実行ファイル群へパスを通した.

== ezmlm のマニュアルへのパスの設定

* /etc/manpath.config に以下の行を追加した.

    MANDATORY_MANPATH                        /usr/local/ezmlm/man
    MANPATH_MAP        /usr/local/ezmlm/bin  /usr/local/ezmlm/man
    MANDB_MAP          /usr/local/ezmlm/man  /usr/local/ezmlm/man

== ezmlm のテスト

*メーリングリスト (ML) を作成した.

    $ mkdir ~chikuwax4/ezmlm-test
    $ ezmlm-make ~chikuwa4/ezmlm-test/testlist ~/.qmail-testlist chikuwa4-testlist tako-itpass.scitec.kobe-u.ac.jp

* 次に作成した ML に ML 主催者が講読者を追加した.
  * 以降, ログのアドレスの '_at_' は '@' に読み替える.

      $ ezmlm-sub ~chikuwa4/ezmlm-test/testlist chikuwa4_at_tako-itpass.scitec.kobe-u.ac.jp

* 登録されているアドレスは,

    $ ezmlm-list ~chikuwa4/ezmlm-test/testlist

で一覧されるので, 確認した.

* 登録が終了した後 ML へ投稿し, 先程登録したアドレスへ届くか確かめた.

    $ echo Subject:Ezmlm_Test | qmail-inject chikuwa4-testlist_at_tako-itpass.scitec.kobe-u.ac.jp
    $ lv ~chikuwa4/Mailbox

* 次に ML の自動処理コマンドを確かめる. 始めに投稿アーカイブから記事を取り出すコマンドを試し, 記事が送られてくるかを確認した.

    $ qmail-inject chikuwa4-testlist-get.1_at_tako-itpass.scitec.kobe-u.ac.jp < /dev/null

* 次に ML 参加者による自動登録抹消を試した. Mailbox を確認し, 送られてきたメールに従い, 空メールを返信して登録を抹消した.

    $ qmail-inject chikuwaXX-testlist-unsubscribe_at_tako-itpass.scitec.kobe-u.ac.jp < /dev/null

* 登録を抹消できたかどうか確認した.

    $ ezmlm-list ~chikuwaXX/ezmlm-test/testlist

== ezmlm-idx のインストール

=== ezmlm-idx のダウンロード

* バージョン 0.40 の ezmlm-idx をダウンロードした.

    # cd /usr/local/src
    # wget http://web.archive.org/web/20110527170329/http://www.ezmlm.org/archive/0.40/ezmlm-idx-0.40.tar.gz

=== ezmlm のソースコードへのパッチあて

* ezmlm-0.53 のソースコードに ezmlm-idx のパッチを当てた.

    # tar xfvz ezmlm-idx-0.40.tar.gz
    # cp -r ezmlm-0.53 ezmlm-0.53-patched_by_idx
    # mv ezmlm-idx-0.40/* ezmlm-0.53-patched_by_idx/
    # rmdir ezmlm-idx-0.40
    # cd ezmlm-0.53-patched_by_idx/
    # patch < idx.patch

* crontab の場所を確認した.

    $ which crontab
    /usr/bin/crontab

* 以下のコマンドを実行した.

    $ make clean
    $ make
    $ make man
    $ make jp

=== インストール前の ezmlm-idx の動作テスト

* 一時的にユーザ eztest を作成し, ezmlm-idx のコマンドバイナリ群が実行できるか確かめた. また, ezmlm-test を実行する前にezmlm-idx のコマンドバイナリ群にパスが通っているかどうかを確認した.

    # chmod 755 ezmlm-test
    # adduser --uid 50000 eztest
    # su eztest

    $ ./ezmlm-test

    testing ezmlm-idx:    ezmlm-idx-0.40
    Using FQDN host name: tako-itpass.scitec.kobe-u.ac.jp
    ezmlm-make (1/2):     OK
    Using RDBMS support:  No.
    testing for qmail:    >=1.02
    ezmlm-reject:         OK
    ezmlm-[un|is]sub[n]:  OK
    ezmlm-send (1/2):     OK
    ezmlm-tstdig:         OK
    ezmlm-weed:           OK
    ezmlm-make (2/2):     OK
    ezmlm-clean (1/2):    removed mod queue entry 3 that wasn't due

* 上記のように正常に実行されることが確認した後に, exit する.

    $ exit

=== ezmlm-idx のリビルド

* 以下を実行した.

    # make std
    # make

* 以下を実行して ezmlm-idx のコマンドバイナリを /usr/local/ezmlm/bin 以
下にコピーした.

    # make setup

=== インストール後の ezmlm-idx の動作テスト

* インストールされた ezmlm-test を実行し, /usr/local/ezmlm/bin/ 以下のコマンドバイナリ群にパスが通っているか確認した.

  # su eztest
  $ source /etc/profile
  $ echo $PATH
    .... /usr/local/ezmlm/bin
  $ cd /usr/local/src/ezmlm-0.53-patched_by_idx
  $ ./ezmlm-test

    testing ezmlm-idx:    ezmlm-idx-0.40
    Using FQDN host name: tako-itpass.scitec.kobe-u.ac.jp
    ezmlm-make (1/2):     OK
    Using RDBMS support:  No.
    testing for qmail:    >=1.02
    ezmlm-reject:         OK
    ezmlm-[un|is]sub[n]:  OK
    ezmlm-send (1/2):     OK
    ezmlm-tstdig:         OK
    ezmlm-weed:           OK
    ezmlm-make (2/2):     OK
    ezmlm-clean (1/2):    removed mod queue entry 3 that wasn't due

  $ exit
  # userdel -r eztest

== prefix.pl の設置

* メーリングリストに流れたメールの件名に番号を振るため,
((<URL:https://itpass.scitec.kobe-u.ac.jp/server/2012/ml_prefix/prefix.pl>)) を /usr/local/lib/prefix.pl
に置いた.

  # wget http://itpass.scitec.kobe-u.ac.jp/server/2012/ml_prefix/prefix.pl
  # mv prefix.pl /usr/local/lib
  # chown root:root /usr/local/lib/prefix.pl
  # chmod 755 /usr/local/lib/prefix.pl

== ezmlm の自動送信メールのヘッダの設定修正

* /usr/local/ezmlm/bin/ezmlmrc の末尾に

   </charset/>
   iso-2022-jp

を追加し, 以下を実行した.

  # cd /usr/local/ezmlm/bin
  # cp ezmlmrc ezmlmrc.org
  # echo \</charset/\> >> ezmlmrc
  # echo iso-2022-jp >> ezmlmrc


== 自動送信メールの日本語化のテスト

* 先に ezmlm-test というディレクトリは作られているので, ここでは

    $ mkdir ~chikuwa4/ezmlm-test2
    $ ezmlm-make ~chikuwa4/ezmlm-test2/testlist2 ~/.qmail-testlist2 chikuwa4-testlist2 tako-itpass.scitec.kobe-u.ac.jp

とした.

* testlist2 ディレクトリ内に charset というファイルが作成されており,

    iso-2022-jp

と記述されていることを確認した.
* iso-2022-jp が二行書かれていたので一行削除した.

     $ ezmlm-sub ~chikuwa4/ezmlm-test2/testlist2 chikuwa4_at_tako-itpass.scitec.kobe-u.ac.jp

* 適当なメーラー(今回は村上(美)のノートパソコン)からchikuwa4-testlist2-
help_at_tako-itpass.scitec.kobe-u.ac.jp 宛にメールを送り, 日本語のヘルプ
メッセージが文字化けすることなく表示されることを確認した.


== エラーメールの転送設定

* 作成したメーリングリストの,
/home/chikuwa4/ezmlm-test/testlist/bouncer
を次のように変更した. ただし, 以降ログにおいて, _at_ はアットマークのこ
とを指している.

  # vim /home/chikuwa4/ezmlm-test/testlist/bouncer

   &itpadmin_at_itpass.scitec.kobe-u.ac.jp
   |/usr/local/ezmlm/bin/ezmlm-weed
   |/usr/local/ezmlm/bin/ezmlm-return -D '/home/chikuwa4/ezmlm-test/testlist'


* 設定後, テストを行う. ezmlm-sub を用いて, chikuwa4 のメーリングリストに

$ ezmlm-sub ~chikuwa4/ezmlm-test/testlist 1234567890_at_stu.kobe-u.ac.jp

のような実在しないアドレスを登録したうえで, 適当なメーラーからchikuwa4-testlist_at_tako-itpass.scitec.kobe-u.ac.jp 宛てにメールを送り, エラーメールが管理者にフォワードされていることを確認した.