postfix on Solaris10
メールサーバをいつも通り Postfix で構築。こちらは Sunfreeware.com にもパッケージが無いのでソースからビルド。ひっかかったのは二点。
- ndbm.h
- PCRE のオプション
前者はPostfix Frequently Asked Questionsにあるように、ndbm.h が原因で、エラーもここにあるものそのもの。こちらは svn を入れる時にインストールした、gdbm パッケージを入れると入る /usr/local/include/ndbm.h が原因。こちらは
# mv /usr/local/include/ndbm.h /usr/local/include/ndbm.h.org
として対処します。おそらく、svn を入れる前であれば問題はなかったかと。(未確認)
後者は、Companion でインストールした SFWpcre に対応するために Makefile 作成時にオプション指定をする必要があります。詳細はソースを展開した後の README_FILES/PCRE_README を参照 (翻訳はこちら→ http://www.kobitosan.net/postfix/trans-2.2/jhtml/PCRE_README.html)していただくとして、
# make -f Makefile.init makefiles \ > "CCARGS=-DHAS_PCRE -I/opt/sfw/include" \ > "AUXLIBS=-L/opt/sfw/lib -R/opt/sfw/lib -lpcre" # make # make install
です。味噌はビルドオプションでランパスまで指定すること。ちなみに build 自体は 1.6GHz マシンで 1 分 46 秒ほど。速いものです。インストールディレクトリは、基本的に postfix 自体が sendmail や mailq、newaliases 等を置き換えてしまうので、設定ファイル以外は /usr/local 以下に変更してインストール。この辺りは好みの世界ですが、ディレクトリ関係は以下のようにしました。ユーザやグループの作成はお約束通りに。
config_directory: [/etc/postfix] daemon_directory: [/usr/local/libexec/postfix] command_directory: [/usr/local/sbin] queue_directory: [/var/spool/postfix] sendmail_path: [/usr/local/lib/sendmail] newaliases_path: [/usr/local/bin/newaliases] mailq_path: [/usr/local/bin/mailq]
後は、後述のサイトや /var/svc/manifest/network/smtp-sendmail.xml を参考にして、/var/svc/manifest/network/smtp-postfix.xml を作成し SMF に登録し、確認。
# svccfg -v import /var/svc/manifest/network/smtp-postfix.xml # svcadm enable postfix # svcs -l postfix
Linux でパッケージインストールで楽をしていると、たまにビルドするとはまりますね。。。