- 締切済み
configure: error: Berkeley DB version mismatch
たいへん困ってます。 超初心者でずっと調べているのですが、openLDAPがインストール出来ません。 利用しているOS:CentOS4.6 openLDAP 2.4.111 Berkeley DB 4.7.25 openssl opensslをインストールし、Berkeley DB 4.7.255をインストールしました。 openldapのコンパイル環境を設定しようと ./configure --enable-wrappers --enable-tls --enable-crypt をすると、 checking for Berkeley DB major version... 4 checking for Berkeley DB minor version... 7 checking for Berkeley DB link (-ldb-4)... yes checking for Berkeley DB version match... Berkeley DB version mismatch header: Berkeley DB 4.7.25: (May 15, 2008) library: Sleepycat Software: Berkeley DB 4.2.52: (July 14, 2007) no configure: error: Berkeley DB version mismatch ↑となり、インストール出来ません。 色々調べて、PATHの設定がよくないのかな?とおもったのですが、PATHの設定方法が解らず困っています。 export LD_LIBRARY_PATH=/usr/local/BerkeleyDB.4.7/lib:/usr/local/lib しても何も変りません。 そもそも/usr/local/のなかにBerkeleyDB.4.7なんてディリレクトリが在りません。 BerkeleyDB.4.7のインストールがうまくいってないのでしょうか? BerkeleyDB.4.7のインストールの手順は下記でおこないました。 tar xzf db-4.7.25.tar.gz cd db-4.7.25 cd build_unix ../dist/configure --prefix=/usr/local make su(rootに変更) #make install 超初心者です。 どうか、CentOSの実行コマンドを含めて教えていただけると助かります。 他に情報が足りなければ、お応えしますので、どうかよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- sakusaker7
- ベストアンサー率62% (800/1280)
すみません。ちょっと開きました。 > yumを使ってアップデート出来きませんでした。 > 迷った挙句、もともと入っていたBerkley DBを削除して、 > 新しいバージョンをインストールしたところ、別の場所で > (メールサーバが機能しない・OSを立ち上げるとランレベル5が立ち上がらないなど) > で不具合が出てきてしまいました・・・ OSを入れなおすということですし、今回のことは勉強になったと考えてください。 システムに元々入っているライブラリを直接書き換えたり削除したりすることは とても危険です。 というのはどこで何が遣っているか分からないからです。 パッケージマネージャを使えばそのような心配はしないでも大丈夫なんですけど。 それと、たとえばシステムにあらかじめ入っているライブラリ(今回の場合ならBerkleyDBですね)の 別のバージョンを入れたい場合は、インストール時(./configure 実行時)に オプション指定して別のディレクトリに入れることが多いです。 それを使うプログラムやツールをインストールするときもオプションを指定してそこを使うようにします。 で、本題。 > 今はBerkeley DB 4.2.52をアンインストールしたので アンインストールしたのは 4.7.* ですよね? > Berkeley DB 4.5しかインストールされてないという認識で大丈夫でしょうか? たぶん /usr/local/lib/libdb-4.so /usr/local/lib/libdb.so /usr/local/lib/libdb.a こいつらを詳しく調べると、中身が 4.2.52なような気がします。 一つ確認なんですが header: Berkeley DB 4.5.20: (September 20, 2006) library: Sleepycat Software: Berkeley DB 4.2.52: (July 14, 2007) 補足にあった↑この状態は自分で 4.5.20をインストールした状態ですか? であれば、OSを再インストールした後で試すときはBerkley DBをインストールしないで OpenLDAPをインストールしてみてください。 ざっと見たところ、4.x であれば(4.2ももちろん含みます)問題なく使えるようです。
- sakusaker7
- ベストアンサー率62% (800/1280)
> ココのバージョンが違うのは気にしなくてよいのでしょうか? > そもそもココの意味がよくわかりません。 たぶんここの食い違いがエラーの原因です。 Berkley DBはバージョンによってデータベースの構造が変わっている場合が あるので、バージョンの違いが問題になることがあります。 で、質問の例にしても補足の例にしても library: Sleepycat Software: Berkeley DB 4.2.52: (July 14, 2007) library: Sleepycat Software: Berkeley DB 4.2.52 が先に見つかっていて、それがヘッダファイルで見つけたのとバージョンが違うので エラーになっていると思われます。 まず、先にお願いしたように、 >4.7.25 がインストールされている場所と、4.2.52 がある場所を確認してください。 これをお願いします。 libdb-4.a とか libdb-4.la みたいな名前のライブラリです。 ってひょっとして find の使い方も知らなかったりしますか? わからなかったらとりあえず find /usr -name 'libdb*' -print を実行して、その結果を教えてください。
- sakusaker7
- ベストアンサー率62% (800/1280)
>色々調べて、PATHの設定がよくないのかな?とおもったのですが なぜそう考えたのでしょうか? エラーメッセージに(そして質問のタイトルに使っているように) configure: error: Berkeley DB version mismatch バージョンが違うってあるじゃないですか。 header: Berkeley DB 4.7.25: (May 15, 2008) library: Sleepycat Software: Berkeley DB 4.2.52: (July 14, 2007) もし、そんなことはわかっていて 4.7.25 が必要だったので入れたけど うまくいかないという話であれば 4.7.25 がインストールされている場所と、4.2.52 がある場所を確認してください。 というか、パッケージマネージャ(yumとか)で入れられないのですか? http://www.thinkit.co.jp/free/article/0706/15/2/ http://d.hatena.ne.jp/dayflower/20070709/1183952467 http://blog.livedoor.jp/super_he2000live/archives/51270004.html
補足
ご回答ありがとうございます。 はじめ、参考書通りに openLDAP 2.3.32 Berkeley DB 4.5.20 と書いてあったので、その通りにインストールしたのでが、 下記のように同じようなエラーが出てしまいます。 checking for Berkeley DB major version... 4 checking for Berkeley DB minor version... 5 checking for Berkeley DB link (-ldb-4)... yes checking for Berkeley DB version match... Berkeley DB version mismatch header: Berkeley DB 4.5.20: (September 20, 2006) library: Sleepycat Software: Berkeley DB 4.2.52: (July 14, 2007) no configure: error: Berkeley DB version mismatch 最初バージョンが正しくないと思ったので、 色々なバージョンを組み合わせてインストールしても 同じようなエラーばかりでした。 何がなんだかわからなくなってしまったので、 自分なりに調べた際に同じようなエラーで 『環境変数の設定が必要』というものを見つけたので、 勝手にPATHの設定がよくないのかな?と思ってしまいました。 header: Berkeley DB 4.5.20 library: Sleepycat Software: Berkeley DB 4.2.52 ココのバージョンが違うのは気にしなくてよいのでしょうか? そもそもココの意味がよくわかりません。 教えていただたサイトも実は確認済みで、同じようにしても、 このエラーから逃れられません。 大変恐縮ですが、何が原因か、また解決方法がわかれば 教えていただけると大変ありがたいです。 もともと、手動でコンパイルする前にyumで インストールして設定したのですが、ユーザ登録をしようとすると、 Can't contact LDAP server (-1) と埒が明かなくなってしまい、何を調べても原因がわからず、 参考書を購入し、1からやり直そうと思った次第です。 よろしくお願いいたします。
補足
会社でしか作業ができないため、返事が遅れてすみません。 >たぶんここの食い違いがエラーの原因です。 >Berkley DBはバージョンによってデータベースの構造が変わっている場合が >あるので、バージョンの違いが問題になることがあります。 そういう意味だったんですね。 ありがとうございますます。 先週追記いただく前に、今回BerkeleyDBをインストールする前にすでにOSに入っていたようで、 それが原因かもしれないというところまで推測しました。 もともと入っていたBerkeleyDBをアップデートしようとしたのですが、 yumを使ってアップデート出来きませんでした。 迷った挙句、もともと入っていたBerkley DBを削除して、 新しいバージョンをインストールしたところ、別の場所で (メールサーバが機能しない・OSを立ち上げるとランレベル5が立ち上がらないなど) で不具合が出てきてしまいました・・・ ただし、openLDAPはインストールできました。 もともとopenLDAPとメールサーバを連携させたかったので、 本日はじめから再度OSを再インストールします。 その前にCUIでは操作できるので、 find /usr -name 'libdb*' -print 今を実行したところ、 /usr/local/lib/libdb-4.5.la /usr/local/lib/libdb-4.5.so /usr/local/lib/libdb-4.so /usr/local/lib/libdb.so /usr/local/lib/libdb-4.5.a /usr/local/lib/libdb.a /usr/X11R6/lib/modules/extensions/libdbe.a と出ました。 今はBerkeley DB 4.2.52をアンインストールしたので Berkeley DB 4.5しかインストールされてないという認識で大丈夫でしょうか? 色々と丁寧に教えていただいて、だんだんわかってきました。 ありがとうございます。 再インストール後、参考書どおり、openLDAP2.3.32で まずは試したいので、Berkeley DB 4.5.20を利用したいのですが、 yumでアップデートできないので、もし他に方法をご存知であれば、 教えていただけるとありがたいです。