$Id: sendmail.html,v 1.6 2000/04/26 02:22:13 naito Exp $ここに述べていることは, すべて私が実行した方法であり, これによる損害等については, 一切私は責任を持ちません. 各自の責任で行なって下さい.
sh Build各種のライブラリ(データベースライブラリ, BIND のライブラリなど)が標準的な場所にインストールされている場合には, このコマンド一発でコンパイルができます.
各種のライブラリが(例えば /usr/local などに)インストールされていると, うまく実行できません. この場合には,
sh Build nocompileを実行します. すると,
make: Fatail error: Dont' know how to make target `nocompile'というエラーが出ますが, 気にしません. 実際には, $OBJ/sendmail に Makefile が作成されます.
Makefile 中でデフォールトから変更する可能性のある部分は以下の通りです.
ENVDEF= -DNDBM -DNIS -DNISPLUS -DMAP_REGEX -DSOLARIS=20600 INCDIRS= LIBDIRS= LIBADD=を
ENVDEF= -DNEWDB -DNDBM -DNIS -DNISPLUS -DMAP_REGEX -DSOLARIS=20600
INCDIRS= -I/usr/local/include
LIBDIRS=-L/usr/local/lib
LIBADD= -ldb
LIBS= ${LIBADD} ../libsmutil/libsmutil.a -lresolv -lsocket -lnsl -lkstat
とします.
また, bind のライブラリ libbind.a が /usr/local/etc/bind/lib にあり,
そのヘッダファイルが /usr/local/etc/bind/include にある場合には,
INCDIRS= -I/usr/local/etc/bind/include
LIBDIRS=-L/usr/local/etc/bind/lib
LIBADD= -lbind
LIBS= ${LIBADD} ../libsmutil/libsmutil.a -lsocket -lnsl -lkstat
とします.
(注意: LIBS から -lresolv を削っています.
ENVDEF= -DNDBM -DNIS -DNISPLUS -DMAP_REGEX -DSOLARIS=20600 -DTCPWRAPPERS LIBDIRS=-L/usr/local/lib LIBADD= -lwrapとします.
まず, sendmail の install directory, mode, owner, group を確認します. 私の手元にある OS では以下のようになっています.
cd $SENDMAILSRCDIR/$OBJ/sendmail cp sendmail $DEST_DIR/sendmail.8.10.1 chmod 4711 $DEST_DIR/sendmail.8.10.1 chown root $DEST_DIR/sendmail.8.10.1 mv $DEST_DIR/sendmail $DEST_DIR/sendmail.dist chmod 000 $DEST_DIR/sendmail.dist ln -s $DEST_DIR/sendmail.8.10.1 $DEST_DIR/sendmailこれによって, $DEST_DIR/sendmail が新しい sendmail (version 8.10.1) への symbolic link となりました.
もし, sendmail を daemon mode でたちあげているのなら,
それを restart して, sendmail の version up は完了です.
daemon mode でたちあげていないのなら,
これ以上は何もしなくてOKです.
基本的なコンパイルの方法は sendmail と同じで, ソース・ディレクトリにある Build を利用して,
sh Buildとすると, $SENDMAILSRCDIR/$OBJ/makemap に makemap が生成されます.
この場合も, NEWDB などのデフォールトではない(少なくとも Solaris 2.6 ではデフォールトではない)ものを利用したいとき( hash データベースは NEWDB オプションがないと生成できません)は $SENDMAILSRCDIR/$OBJ/makemap/Makefile を sendmail の時と同様に変更して, 新たに make を行います.