[Memo2014][ITPASS] ezmlm のインストールと設定
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 宛てにメールを送り, エラーメールが管理者にフォワードされていることを確認した.
Keyword(s):
References:[[ITPASS2014]2014年度サーバ構築ログ]