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 宛てにメールを送り, エラーメールが管理者にフォワードされていることを確認した.
=== 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 宛てにメールを送り, エラーメールが管理者にフォワードされていることを確認した.