2008年4月6日日曜日

OpenLDAPのconfigure時にBerkeley DB version mismatch.

 と言う事で見事につまずきました orz
 make uninstallがあるのにStow使ってインストールしようとしたのが悪かったかなぁ?
 と言うか、それ以前にOpenLDAPにBerkeleyDBが必要な事自体、まったく知りませんでしたから orz

[??@debian]# tar xvzf db-4.6.21.tar.gz
[??@debian]# cd db-4.6.21/build_unix
[??@debian]# ../dist/configure --prefix=/usr/local/stow/BerkeleyDB
[??@debian]# make
[??@debian]# su root -c 'make install'
 ※例にStowで管理してみようと思ったが為にPrefixでStow用のディレクトリ配下を指定

[??@debian]# cd /usr/local/stow
[??@debian]# su root -c 'stow BerkeleyDB'


 ここまでは全然OKです.
 Stowでインストール管理も出来ます(しつこい様ですが、BerkeleyDBにはmake uninstallがありますw).

 そして本題のOpenLDAPです.
 これもStow配下へのインストールを試みます.

[??@debian]# tar xvzf openldap-2.4.8.tgz
[??@debian]# openldap-2.4.8/configure --prefix=/usr/local/stow/openldap
Configuring OpenLDAP 2.4.8-Release ...
[中略]
checking for db.h... yes
checking for Berkeley DB major version... 4
checking for Berkeley DB minor version... 6
checking for Berkeley DB link (-ldb-4.6)... yes
checking for Berkeley DB version match... no
configure: error: Berkeley DB version mismatch
 ※Prefixを付けて標準以外のディレクトリにインストールすると、db.hのチェックで見付けられない可能性があります.今回はStowでインストールかましているのでパスが通っています.

 おうぷし orz
 思い切りエラーが出やがります.
 バージョンが合わないって…おかしい.
 ここ↓を見てバージョンに間違いない事を確認したはずなんだけどなぁ…
 D. Recommended OpenLDAP Software Dependency Versions

 と言う事でいつもの如く他力本願で検索ごー!

 LDAP Programming(のフォーラムらしい)
 ※検索すると日本語ページの結果が出てきましたが、多分そこの情報を鵜呑みにすると面倒な事になります.

 ここの下の方を見ると

export CPPFLAGS="-I/usr/local/BerkeleyDB.4.2/include"
export LDFLAGS="-L/usr/local/BerkeleyDB.4.2/lib"
export LD_LIBRARY_PATH="/usr/local/BerkeleyDB.4.2/lib/"

 と書いてあるので、どうやらパスが通ってないらしい.
 だったらエラーメッセージに「パスが通ってねーんだよコンチクショー!」と出力してくれればいいものを orz
 何故メッセージが「version mismatch」?

 と言う事で、いつまた再インストールやら設定変更するか分かりませんので、何度もexportする必要が無い様にldを使います.

[??@debian]# su
[debian]# echo /usr/local/stow/BerkeleyDB/include >> /etc/ld.so.conf.d/BerkeleyDB.conf
[debian]# echo /usr/local/stow/BerkeleyDB/lib >> /etc/ld.so.conf.d/BerkeleyDB.conf
[debian]# ldconfig
[debian]# exit

 これでパスが通ってる「はず」なので、もう一度configureを実行してみます.

[??@debian]# openldap-2.4.8/configure --prefix=/usr/local/stow/openldap
Configuring OpenLDAP 2.4.8-Release ...
[中略]
checking for db.h... yes
checking for Berkeley DB major version... 4
checking for Berkeley DB minor version... 6
checking for Berkeley DB link (-ldb-4.6)... yes
checking for Berkeley DB version match... yes
checking for Berkeley DB thread support... yes
checking Berkeley DB version for BDB/HDB backends... yes
[中略]
Making servers/slapd/backends.c
Add config ...
Add ldif ...
Add monitor ...
Add bdb ...
Add hdb ...
Add relay ...
Making servers/slapd/overlays/statover.c
Add seqmod ...
Add syncprov ...
Please run "make depend" to build dependencies
[??@debian]# make depend
[??@debian]# make
[??@debian]# su root -c 'make install'
[??@debian]# cd /usr/local/stow
[??@debian]# su root -c 'stow openldap'


 はい、OKそうです…実際に動くかは試してませんがw
 まぁ、ここまでくればなんとかなりそうです.

 それにしても、OpenLDAPを動かすのって結構面倒です.
 今回は素で入れてますが、実際にはオプションなんか指定する必要があるはずですので、その辺の調査も必要ですし.

※本文修正3回以上 orz

0 件のコメント: