Solaris10(x86) に postfix + dovecot をインストールする

メモです。Postfixのパッケージ作成手順 for Solaris 10 とか http://www.db.is.kyushu-u.ac.jp/computer/solaris/solaris_optionsoft.html#section2 などを参考にしました。


はじめに postfix の構築に必要な以下のツールを sunfreeware (KDD Labs のミラー) からダウンロード・インストールします。

前準備として、各コマンドのパスを通しておきましょう*1

$ cat ~/.profile
#
# Copyright (c) 2001 by Sun Microsystems, Inc.
# All rights reserved.
#
# ident "@(#)local.profile      1.10    01/06/23 SMI"
stty istrip
PATH=/usr/bin:/usr/ucb:/etc:/usr/local/bin:/usr/ccs/bin:.
export PATH

postfix のソースを展開し、make します。今回は 2.5.1 を使いました。

$ gzcat postfix-2.5.1.tar.gz | tar xf -
$ cd postfix-2.5.1
$ make -f Makefile.init makefiles AUXLIBS='-L/usr/local/BerkeleyDB.4.4/lib/ -R/usr/local/BerkeleyDB.4.4/lib/ -ldb'
$ make

ここで postfix 専用アカウント・グループを作成しておきます。

# groupadd -g 60100 postfix
# groupadd -g 60110 postdrop
# useradd -c "Postfix" -d /var/empty -g postfix -u 60100 -s /bin/false postfix

いよいよパッケージ化の作業です。

$ mkdir ~/postfix-pkg
$ make non-interactive-package install_root=/home/xxx/postfix-pkg
# su -
# cd /home/xxx
# chown -R root:root postfix-pkg/
# cd postfix-pkg/
# cp -pR etc/postfix ../postfix-conf

コピーした main.cf(../postfix-conf/main.cf) を編集し、パラメータを以下のように変更します。

queue_directory = /home/xxx/postfix-pkg/var/spool/postfix
command_directory = /home/xxx/postfix-pkg/usr/sbin
daemon_directory = /home/xxx/postfix-pkg/usr/libexec/postfix
data_directory = /home/xxx/postfix-pkg/var/lib/postfix
sendmail_path = /home/xxx/postfix-pkg/usr/lib/sendmail
newaliases_path = /home/xxx/postfix-pkg/usr/bin/newaliases
mailq_path = /home/xxx/postfix-pkg/usr/bin/mailq
manpage_directory = /home/xxx/postfix-pkg/usr/local/man
sample_directory = /home/xxx/postfix-pkg/etc/postfix

その後、ファイルのパーミッション設定を実施します。

# usr/sbin/postfix -c /home/xxx/postfix-conf set-permissions

続いて aliases ファイルの作成・調整です。

# cd etc/
# mkdir mail
# cp postfix/aliases mail/
# ln -s ./mail/aliases aliases

それが終わったら SMF(Service Management Facility)用に以下の設定ファイルを作ります。sendmail 用の xml ファイルを流用するのが楽みたいですが、私は評価環境で動けばよいので Postfixのパッケージ作成手順 for Solaris 10 のものを頂戴しました。

var/svc/manifest/network/smtp-postfix.xml
lib/svc/method/smtp-postfix
etc/init.d/postfix

続いて prototype の作成に移ります。

# pkgproto . > prototype

で幾つか編集があるのですが、これまた Postfixのパッケージ作成手順 for Solaris 10 のものを頂戴しました。

次に以下のファイルを /home/xxx/postfix-pkg/ 下にコピーします。

pkginfo
depend
i.initd
i.manifest
i.preserve
i.renamenew
i.renameold
r.manifest

これらのファイルは /var/sadm/pkg/SUNWsndmr/ 以下にあるはずです。find などで探してください。

ちなみに pkginfo に関しても Postfixのパッケージ作成手順 for Solaris 10 のものを頂戴し、その後は

# pkgmk -r `pwd`
# cd /var/spool/pkg/
# pkgtrans -s . SYpostfix.pkg

実行し、めでたく完成しました :)。

*1:私の場合は太字の箇所の追記が必要でした。