monit5.1.1のインストール

 CentOS5.6 で、monit5.1.1 をインストールしようとしたら、make でエラーが出てしまった。

% ./configure --prefix=/usr/local
% make
** 中略 **
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.a when searching for -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libpam.so when searching for -lpam
/usr/bin/ld: skipping incompatible /usr/lib/libcrypt.so when searching for -lcrypt
/usr/bin/ld: skipping incompatible /usr/lib/libcrypt.a when searching for -lcrypt
/usr/bin/ld: skipping incompatible /usr/lib/libresolv.so when searching for -lresolv
/usr/bin/ld: skipping incompatible /usr/lib/libresolv.a when searching for -lresolv
/usr/bin/ld: skipping incompatible /usr/lib/libnsl.so when searching for -lnsl
/usr/bin/ld: skipping incompatible /usr/lib/libnsl.a when searching for -lnsl
/usr/bin/ld: skipping incompatible /usr/lib/libssl.so when searching for -lssl
/usr/bin/ld: skipping incompatible /usr/lib/libssl.a when searching for -lssl
/usr/bin/ld: skipping incompatible /usr/lib/libcrypto.so when searching for -lcrypto
/usr/bin/ld: skipping incompatible /usr/lib/libcrypto.a when searching for -lcrypto
/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc

どうも、32bit と 64bit がごっちゃになってることが原因らしい。32bitのライブラリで64bitのコンパイルをしようとしている?のかな…?

Makefile をいじることで回避しました。

% ./configure --prefix=/usr/local
% vi Makefile

LIB = -lfl -lpthread -lpam -lcrypt -lresolv -lnsl -L/usr/lib -lssl -lcrypto

LIB = -lfl -lpthread -lpam -lcrypt -lresolv -lnsl -L/usr/lib64 -lssl -lcrypto

として、/usr/lib ではなく /usr/lib64 を使うように変更しました。これで無事コンパイルが通りました。

monit5.1.1のインストール