IT pass HikiWiki - [Memo2008][EPA]tako作業メモ(納多)(080724) Diff

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

{{toc}}

((<[Memo2008][EPA]tako作業メモ(納多)(080723)>)) から続く.

= qpopper

== メーラーから Mailbox のメールを受け取れないトラブルの解決

メーラーから /home/chikuwa1/Mailbox のメールを受け取れない問題が発生した.

qmail と qpopper の同時運用例を検索してみたところ, 以下のページを見つけた.

* ((<Qpopper|URL:http://www.emaillab.org/djb/qmail-pop/qpopper.html>))

それによると, configure に

  --enable-home-dir-mail=Mailbox

が必要のようである.
configure の help によると, デフォルトのメールスプールファイルは .mail になる.

つまりこの問題の原因は,
qpopper が .mail を見に行くため
Mailbox にメールがあっても受け取れないことにあるのでは, と考えた.

Mailbox のメールを見に行くよう再設定し, 再インストールを試みる.

  # cd /usr/local/src/qpopper4.0.13
  # ./configure \
  --prefix=/usr/local/qpopper \    # インストール場所
  --enable-apop=/usr/local/qpopper/pop.auth \   # APOP の設定ファイルの場所
  --enable-popuid=pop \   # qpopper を動作させるユーザ
  --enable-shy \          # qpopper のバージョン番号を隠蔽
  --enable-nonauth-file=/usr/local/qpopper/popusers \  # 接続拒否ユーザを書いたリストの場所
  --without-pam \    # POP3 に PAM による認証を行わない
  --with-gdbm   \    # データベースの取り扱いに GDBM を使う
  --enable-home-dir-mail=Mailbox  # ホームにあるメールスプールファイルの名前

以前にやったように, popper/Makefile を 2 箇所書き換え,
ビルド, インストールを行う.

  # make
  # make install

APOP データベースの初期化を行う.

  # popauth -init

一般ユーザ (ここでは chikuwa1) になって, APOP でメールを受信するよう登録する.

  $ popauth
  Changing only APOP password for mondo1.
  New password: (パスワードを入力)
  Retype new password: (パスワードを入力)

改めてメーラーでメールの受信を試みると,
メールを受信することができた.

問題は解決した.

EPA サーバ構築ドキュメントにおける qpopper の configure のオプションに
--enable-home-dir-mail=Mailbox を追加しておいた.


= 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 zxfv ezmlm-0.53.tar.gz
  # cd ezmlm-0.53

2.3.1 以降の glibc 上で動くため, というのと log.h を使用するよう, パッチを当てる.

EPA サーバ構築ドキュメントによると
「パッチは
((<ezmlm パッチ|URL:https://epa.scitec.kobe-u.ac.jp/~itpass/hiki/files/ezmlm-glib-log.patch>))
から入手する. 」
とあるが, リンク切れであった.

自力で解決を行ってみる.

まず, glibc 2.3.1 以降への対応について,
((<MR-S Cinq [CounterStrike Linux] Linux qmail|URL:http://www.connan.jp/linux/qmail.html>))を参考に以下を行う.

  # cp -p error.h error.h.org

error.h の 4 行目を

   extern int errno;

から

   #include<errno.h>

に書き換える.

次に, log.h を使うために (使わない場合, コンパイルに失敗する),
以下を行う.

* 以下のファイルの include の最後に「#include "log.h"」を追加
  * ezmlm-manage.c
  * ezmlm-return.c

バイナリファイルのインストール先はこれまでのやり方に合わせ, /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 に記述されているディレクトリが
((<[EPA]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

エラーなく完了.

== パスの設定

=== 実行ファイル

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

((<[EPA]パスの設定>))
の <一般ユーザ用コマンドのパス> に /usr/local/ezmlm/bin を追加する.

=== マニュアル

/etc/manpath.config に以下の行を追加する. 詳しくは
((<[EPA]パスの設定#man 関連のパスの設定>))
を参照のこと.

  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



== 参考文献

* ((<MR-S Cinq [CounterStrike Linux] Linux qmail|URL:http://www.connan.jp/linux/qmail.html>))

((<[Memo2008][EPA]tako作業メモ(納多)(080731)>)) へ続く.