sendmailは、ソースパッケージからデフォルトでインストールすると、
に置かれるようになっています。
ところが、場合によってはインストール先をこれらのデフォルト値から変更してインストールしたい 場合があります。例えば、既存の運用環境を壊さずに、新しいバージョンのsendmailをテストしたい、 などの理由からです。
このページでは、sendmailの環境を/usr/local/sendmail以下にインストールするケースを例にとり、 sendmailを特定のディレクトリ以下に配置する方法を説明します。
なお、このページの記述内容は、Plamo Linux 2.0 , sendmail-8.12.4 で確認を行いました。
このページで解説する内容は、川俣吉広が独自に調査した結果を公開したものです。
ページの記述内容は正確を期すように努めておりますが、 記述内容を実行したことにより損害が発生しても当方では責任を負いかねますので、 実際の作業については各自の責任で行って下さい。
また、以下の説明はsendmailのインストールと設定についてソースパッケージからデフォルトでの インストールが行える程度の技術スキルを前提としています。
現在動作しているsendmailを停止します。
killall -TERM sendmail
現在の設定のバックアップを取ります。
mkdir /etc/mail.bak cd /etc/mail.bak (cd /etc/mail && tar cf - .) | tar xpvf -
mail.bakディレクトリ以下は、 新しいsendmail環境が/etc/mail以下の設定ファイルを上書きしてしまった 時の保険です。
sendmailのソースパッケージを展開します。
cd (作業用ディレクトリ) tar xvzf sendmail.8.12.4.tar.gz
sendmail-8.12.4/devtools/Site/site.config.m4を作成します。
site.config.m4の内容;
define(`confEBINDIR', `/usr/local/sendmail/libexec')dnl define(`confENVDEF', `-D_DIR_SENDMAILCF=\"/usr/local/sendmail/etc/\" -D_PATH_SENDMAILCF=\"/usr/local/sendmail/etc/sendmail.cf\"')dnl define(`confMSP_QUEUE_DIR', `/usr/local/sendmail/spool/clientmqueue')dnl define(`confHFDIR', `/usr/local/sendmail/etc')dnl define(`confINCLUDEDIR', `/usr/local/sendmail/include')dnl define(`confLIBDIR', `/usr/local/sendmail/lib')dnl define(`confMANROOT', `/usr/local/sendmail/man/cat')dnl define(`confMANROOTMAN', `/usr/local/sendmail/man/man')dnl define(`confMBINDIR', `/usr/local/sendmail/sbin')dnl define(`confSBINDIR', `/usr/local/sendmail/sbin')dnl define(`confSHAREDLIBDIR', `/usr/local/sendmail/lib')dnl define(`confSTDIR', `/usr/local/sendmail/etc')dnl define(`confUBINDIR', `/usr/local/sendmail/bin')dnl
コンパイルします。
cd (作業用ディレクトリ)/sendmail-8.12.4 sh Build
ディレクトリを作成し、パーミッション等を設定します。
mkdir -p /usr/local/sendmail/bin mkdir /usr/local/sendmail/sbin mkdir /usr/local/sendmail/etc mkdir /usr/local/sendmail/include mkdir /usr/local/sendmail/lib mkdir /usr/local/sendmail/libexec mkdir -p /usr/local/sendmail/man/cat1 mkdir /usr/local/sendmail/man/cat5 mkdir /usr/local/sendmail/man/cat8 mkdir -p /usr/local/sendmail/spool/clientmqueue mkdir /usr/local/sendmail/spool/mqueue chmod 0770 /usr/local/sendmail/spool/clientmqueue chown smmsp:smmsp /usr/local/sendmail/spool/clientmqueue chmod 0700 /usr/local/sendmail/spool/mqueue
sendmail-8.12.4/cf/cf/Makefile を編集します。
: : # name of source for sendmail.cf (without extension) CF= sendmail # name of source for submit.cf (without extension) SUBMIT= submit # directory for .cf files MAILDIR=/usr/local/sendmail/etc ←この部分を修正 M4= m4 CFDIR= .. CHMOD= chmod : :
cf/cf/sendmail.mc, cf/cf/submit.mcを編集します。
これらの設定ファイルの作成方法は通常の場合と同じですが、 sendmail.mcの各種定義に先立ち、
define(`MAIL_SETTINGS_DIR', `/usr/local/sendmail/etc/')dnl define(`QUEUE_DIR', `/usr/local/sendmail/spool/mqueue')dnl
を書いておきます。
divert(0)dnl
と
VERSIONID(`$Id$')dnl
の間くらいが適当と思われます。また、sendmail.cf中で、ファイルの位置を指定している部分があれば、それも併せて書き換えておきます。
submit.mcも同様に、
define(`MAIL_SETTINGS_DIR', `/usr/local/sendmail/etc/')dnl define(`QUEUE_DIR', `/usr/local/sendmail/spool/mqueue')dnl define(`MSP_QUEUE_DIR', `/usr/local/sendmail/spool/clientmqueue')dnl
を書いておき、これで sendmail.cf と submit.cf を作成します。
make sendmail.cf make submit.cf
sh Build installを実行します。
cd (作業用ディレクトリ)/sendmail-8.12.4 sh Build install
通常の手順と変わりありませんので、項目のみ列挙します。
FrontPageに戻る。