DRAC のコンパイル (Compiling DRAC)

今 DRAC は Debian Linux に採用されています。Debian Linux ではコンパイル作業は不要です。以下の URL から情報を取得してください。

 DRAC のコンパイルを行うために Makefile のみ編集が必要となります。必要に応じて変更した後、'make' を実行することで DRAC デーモンやクライアント・ライブラリ、そしてテスト用 DRACD クライアントが作成されます。

 インストールにあたって、まず sendmail がコンパイルされた時と同じ Barkeley db のバージョンで DRAC をコンパイルしなくてはいけません。場合によっては sendmail のコンパイル時と現在ではシステムにセットアップされているバージョンが違うかもしれないためです。 以下のようにして調査する方法もあります*1

	$ strings /usr/lib/sendmail | grep -i sleepy
 以下での説明にあたっては db パッケージのインストールは必要ないものとしてみなします。もしインストール時に db ファイルやライブラリが必要であれば、一般的な場所にインストールし、特定のパスを明示する必要がないように調整をお願いします。複数の db ライブラリのパッケージがインストールされている場合には、sendmail をコンパイルしたときと同じライブラリを DRAC も用いるようにパスの指定が必要です。コンパイルに 'cc' コンパイラを用いない場合は、Makefile を適時編集下さい。

 現在 rpcgen は '-C' オプションをサポートしています。オプションは rpcgen に ANSI C 宣言を含んでいるファイルを生成するようにします。もし使用するコンパイラがプロトタイプと一致しないという警告が出るときに、このオプションを使用してください。その場合 Makefile は2カ所の変更が必要です。

DEFS = ... -DDASH_C
RPCGENFLAGS = -C
  DRAC は標準で sendmail と互換性のあるファイル形式で DB ファイルを作成します。postfix をご利用される場合には、Makefile に以下の項目を追加してください。
DEFS = ... -DTERM_KD
exim を用いる場合は、Makefile に次のように追加します...
DEFS = ... -DTERM_KD -DREQ_HASH -DCIDR_KEY
 Solaris 2.x では以下の設定で動作します
INSTALL = /usr/ucb/install
EBIN = /usr/local/sbin
MAN = /usr/local/man/man
DEFS = -DTI_RPC -DFCNTL_LOCK -DSYSINFO
CC = {your compiler}
RANLIB = :
CFLAGS = $(DEFS) -g -I/path/to/db/include
LDLIBS = -L/path/to/db/library -lnsl -ldb
TSTLIBS = -L. -ldrac -lnsl
MANLIB = 3
MANADM = 1m
 SunOS 4.x の場合
INSTALL = install
EBIN = /usr/local/etc
MAN = /usr/local/man/man
DEFS = -DSOCK_RPC -DFLOCK_LOCK -DGETHOST
CC = {your compiler}
RANLIB = ranlib
CFLAGS = -Dstrtoul=strtol $(DEFS) -g -I/path/to/db/include
LDLIBS = -L/path/to/db/library -ldb
TSTLIBS = -L. -ldrac
RPCGENFLAGS = -I
MANLIB = 3
MANADM = 8
 BSDI の場合
INSTALL = install
EBIN = /usr/local/sbin
MAN = /usr/local/man/man
DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST
CC = {your compiler}
RANLIB = ranlib
CFLAGS = $(DEFS) -g -I/path/to/db/include
LDLIBS = -L/path/to/db/library -ldb
TSTLIBS = -L. -ldrac
MANLIB = 3
MANADM = 8
 IRIX-6.x の場合
INSTALL = /usr/bin/X11/bsdinst
EBIN = /usr/local/sbin
MAN = /usr/local/man/man
DEFS = -DTI_RPC -DFCNTL_LOCK -DSYSINFO -D_SVR4_TIRPC
CC = {your compiler}
RANLIB = :
CFLAGS = $(DEFS) -g -I/path/to/db/include
LDLIBS = -L/path/to/db/library -lnsl -ldb
TSTLIBS = -L. -ldrac -lnsl
RPCGENFLAGS = -I
MANLIB = 3
MANADM = 1m
 NetBSD の場合
INSTALL = install
EBIN = /usr/local/sbin
MAN = /usr/local/man/man
DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C
CC = {your compiler}
RANLIB = ranlib
CFLAGS = $(DEFS) -g -I/path/to/db/include
LDLIBS = 
TSTLIBS = -L. -ldrac
RPCGENFLAGS = -C
MANLIB = 3
MANADM = 8
 FreeBSD 2.2.x の場合
INSTALL = install
EBIN = /usr/local/sbin
MAN = /usr/local/man/man
DEFS = -DSOCK_RPC -DFLOCK_LOCK -DGETHOST -DDASH_C
CC = {your compiler}
RANLIB = ranlib
CFLAGS = $(DEFS) -g -I/path/to/db/include
LDLIBS = 
TSTLIBS = -L. -ldrac
RPCGENFLAGS = -I -C
MANLIB = 3
MANADM = 8
 FreeBSD-4.1 と gdbm-1.8 の場合
INSTALL = install
EBIN = /usr/local/sbin
MAN = /usr/local/man/man
DEFS = -DSOCK_RPC -DFLOCK_LOCK -DGETHOST -DDASH_C
CC = cc
RANLIB = :
CFLAGS = $(DEFS) -g -I/usr/local/include
LDLIBS = 
TSTLIBS = -L. -ldrac
RPCGENFLAGS = -C
MANLIB = 3
MANADM = 1m
 Linux の場合
INSTALL = install
EBIN = /usr/local/sbin
MAN = /usr/local/man/man
DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C
CC = {your compiler}
RANLIB = :
CFLAGS = $(DEFS) -g
LDLIBS = -ldb
TSTLIBS = -L. -ldrac -lnsl
RPCGENFLAGS = -C -I
MANLIB = 3
MANADM = 8
 AIX の場合
INSTALL = /usr/ucb/install
EBIN = /usr/local/sbin
MAN = /usr/local/man/man
DEFS = -DD_BSD -DBSD_INCLUDES -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDEBUG
CC = {your compiler}
RANLIB = :
CFLAGS = $(DEFS) -g -I/path/to/db/include
LDLIBS = -L/path/to/db/library -ldb
TSTLIBS = -L. -ldrac
RPCGENFLAGS =
MANLIB = 3
MANADM = 1m

*1 訳者の環境では、どのように調査に役立つか分かりませんでした……Sleep という文字列はありました