こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Openldapインストールmakeでエラー

Solaris10にOpenldapのインストールがうまく行きません。
make時でエラーになります。
色々、Googleで調べてしているのですが結局うまくいきませんでした。
教えていた頂けたら幸いです。

事前にインストールしたソフト
BerkeleyDB4.7.25
openssl0.98l
cyrus-sasl-2.1.21

cd openldap-2.4.16
CPPFLAGS="-I/usr/local/BerkeleyDB.4.7/include"
LDFLAGS="-L/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.7/lib"
./configure
make depend
make
(cd .libs && rm -f libldap.la && ln -s ../libldap.la libldap.la)
gcc -g -O2 -I../../include -I../../include -I/usr/local/BerkeleyDB.4.7/include -c -o apitest.o apitest.c
/bin/sh ../../libtool --mode=link gcc -static -g -O2 -L/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.7/lib -o apitest apitest.o libldap.la ../../libraries/liblber/liblber.la ../../libraries/liblutil/liblutil.a -lsasl2 -lgss -lssl -lcrypto -lresolv -lgen -lnsl -lsocket
gcc -g -O2 -o apitest apitest.o -L/usr/local/BerkeleyDB.4.7/lib ./.libs/libldap.a /work/src/openldap-2.4.16/libraries/liblber/.libs/liblber.a -L/usr/local/lib:-L/usr/local/ssl/lib:-L/usr/sfw/lib:-L/usr/lib:-L/opt/sfw/lib:-L/usr/ccs/lib:-L/usr/local/BerkeleyDB4.7/lib ../../libraries/liblber/.libs/liblber.a ../../libraries/liblutil/liblutil.a /usr/local/lib/libsasl2.so -ldl -lgss -lssl -lcrypto -lresolv -lgen -lnsl -lsocket -R/usr/local/lib -R/usr/local/lib -R/usr/local/BerkeleyDB.4.7/lib
Undefined first referenced
symbol in file
BIO_set_flags ./.libs/libldap.a(tls_o.o)
BIO_clear_flags ./.libs/libldap.a(tls_o.o)
SSL_CTX_set_info_callback ./.libs/libldap.a(tls_o.o)
ld: fatal: Symbol referencing errors. No output written to apitest
collect2: ld returned 1 exit status
make[2]: *** [apitest] エラー 1
make[2]: ディレクトリ `/work/src/openldap-2.4.16/libraries/libldap' から出ます
make[1]: *** [all-common] エラー 1
make[1]: ディレクトリ `/work/src/openldap-2.4.16/libraries' から出ます
make: *** [all-common] エラー 1

勉強不足で申し訳ありませんが、よろしくお願いします。

投稿日時 - 2009-12-05 16:33:03

QNo.5500088

すぐに回答ほしいです

質問者が選んだベストアンサー

> その後、make testで、
>>>>> Starting test001-slapadd ...
> running defines.sh
> Running slapadd to build slapd database...
> ここから、先に進まない状態です。

事前に BerkeleyDB4.7.25 をインストールされたとのことですが、下記 URL にて公開されているパッチ 4 つ(patch.4.7.25.1~patch.4.7.25.4)をあてていますか?
もしあてていないなら、それが原因だと思います。

http://www.oracle.com/technology/products/berkeley-db/db/update/4.7.25/patch.4.7.25.html

なお、本家のメーリングリストにも同じような報告がありますね。

http://www.openldap.org/lists/openldap-bugs/200907/msg00143.html

> openldapの細かな設定とかして、起動していないので
> まだ、確認していませんが、make test がうまく行かなかったら、この先
> 何か問題とかありますか?

make test を実行するにあたって、OpenLDAP の設定をする必要はないはずです。
make test が通らないのは、コンパイルしたものが正常に動作していないということなので、問題大有りです。

投稿日時 - 2009-12-06 04:14:42

お礼

xinuさん

ご回答ありがとうございました。
URL にて公開されているパッチを当て、再度、コンパイルし
make testも通りました。
やぱり、make test が通らないのは、コンパイルしたものが正常に動作していないということなのですね。これから、気をつけます。

投稿日時 - 2009-12-07 22:57:12

このQ&Aは役に立ちましたか?

10人が「このQ&Aが役に立った」と投票しています

回答(2)

Solaris 10 には OpenSSL と SASL がバンドルされています。
そのため、ユーザが自前でインストールした OpenSSL と SASL がある場合、それらを明示的に指定しないと OS バンドルの方が使用されてしまいます。

つまり、CPPFLAGS と LDFLAGS に自前でインストールした OpenSSL と cyrus-sasl の設定を加える必要があります。
おそらくそれがぬけているため、make が通らないのではないかと思います。

例えば、OpenSSL と cyrus-sasl をデフォルトでコンパイル & インストールした場合、

CPPFLAGS="-I/usr/local/BerkeleyDB.4.7/include -I/usr/loca/ssl/include -I/usr/local/include"
LDFLAGS="-L/usr/local/BerkeleyDB.4.7/lib -R/usr/loca/BerkeleyDB.4.7/lib -L/usr/local/ssl/lib -R/usr/local/ssl/lib -L/usr/local/lib -R/usr/local/lib"

とする必要があります。

投稿日時 - 2009-12-05 21:02:53

補足

xinuさん、

ご回答ありがとうございます。
CPPFLAGS="-I/usr/local/BerkeleyDB.4.7/include -I/usr/loca/ssl/include -I/usr/local/include"
LDFLAGS="-L/usr/local/BerkeleyDB.4.7/lib -R/usr/loca/BerkeleyDB.4.7/lib -L/usr/local/ssl/lib -R/usr/local/ssl/lib -L/usr/local/lib -R/usr/local/lib"
を設定し、make した所、エラーがなく進みました。
ありがとうございました。
その後、make testで、
>>>> Starting test001-slapadd ...
running defines.sh
Running slapadd to build slapd database...
ここから、先に進まない状態です。
とりあえず、中断して先に、make installをしました。
openldapの細かな設定とかして、起動していないので
まだ、確認していませんが、make test がうまく行かなかったら、この先
何か問題とかありますか?
よろしくお願いします。

投稿日時 - 2009-12-06 01:46:04

あなたにオススメの質問