- ベストアンサー
OpenLDAPのインストールに関するエラーと解決方法
- Solaris10でOpenLDAPのインストールを行っていますが、MySQL Clusterのバックエンド設定でエラーが発生しています。
- 具体的には、configureコマンドでndbclient libraryが見つからずエラーが発生しています。
- 検索しても解決策が見つからず困っています。Solarisにはまだ慣れていないため、より詳しい方のアドバイスをお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ここだけだと C++用のライブラリがリンクできていないように見えます. 「省略」されたところに「どのようなコマンドでリンクしようとしたのか」は書いてありませんか? C++ コンパイラを使ってリンクまですれば C++用のライブラリもリンクしますが, ld でリンクする場合には明示しない限り C++用のライブラリはリンクしません.
その他の回答 (1)
- okiraku_1ban
- ベストアンサー率0% (0/1)
1.Google先生に確認 「Solaris10にOpenLDAPを導入」で検索すると、たくさん表示されます。 (1) http://sy2920.s151.xrea.com/solaris/opnldap-install.html (2) http://mcaf.ee/ogl1c ⇒URL長過ぎるので短縮 (3) http://trialpc.net/blog/2007/04/solarisopenldap-1.php (4) http://mcaf.ee/ks7gb ⇒URL長過ぎるので短縮 など。 2.上記資料を参考に、チャレンジして下さい。 前項1-(1),(2)など、参考になりませんか? ご自分でも、検索される事をお薦めします。 LINUX、例えばCentOS等であれば、OpenLDAPインストール後の 設定と運用など、参考記事がたくさん見つかると思います。 ⇒MySQL Cluster、の記述についても気になります。 当該サーバから、通常のDBアクセス可否を確認済みですか? ⇒切り分けのために、一旦BDBで構築可能か、試すのも有効です。 OpenSource系の自力インストールが難しいようであれば、Oracle社の 有償サポートや、SIer有償サポートなどを利用する事をご検討下さい。 以上、ご参考まで
お礼
ご回答ありがとうございます。 URLまでのせて頂きありがとうございます。 「Solaris10 OpenLDAP」での検索はもちろん行いました。 上記のサイトもいくつか拝見したことがあるのですが バックエンドにNDBを利用した際の設定などが細かく書いてある サイトがほとんどなく、あっても./configureの部分でのエラーが 起きていない場合がほとんどでした。 エラーの内容について調べた結果、C++のコンパイル時にリンクが上手く通っていないため コンパイルができていないようです。 >通常のDBアクセスを確認済みですか? まだ確認は行っていません。 BDBでの構築も考えはしましたが、まだ実行してはいませんでした。 もう少し調べてみてそれでも解決しないようならば 通常DBアクセスもBDBでの構築もやってみようと思います。 つたない文章で申し訳ありません。 また何かありましたらよろしくお願いします。
補足
すいません。自己解決しました。 SolarisもC言語も初めてだったので苦労しましたがそれぞれに絞ってGoogle検索して解決にいたりました。 アドバイスありがとうございました。
お礼
ご回答ありがとうございます。 *Mysql Clusterを別のディレクトリにインストールし直したので以下、質問時と違う記述があります。 /mysql/mysqlc/⇒⇒/opt/mysql/mysql/ 「省略」部分のエラーの上の数行にそれらしき記述がありました。 checking for NdbApi.hpp configure:21877: /usr/sfw/bin/gcc -m64 -E -I/opt/mysql/mysql/include -I/opt/mysql/mysql/include/storage/ndb -I/opt/mysql/mysql/include/storage/ndb/ndbapi conftest.c configure:21877: $? = 0 configure:21878: result: yes configure:21893: checking for ndb_init in -lndbclient configure:21918: /usr/sfw/bin/gcc -m64 -o conftest -g -O2 -I/opt/mysql/mysql/include -I/usr/local/ssl/include -I/usr/local/include -I/usr/include -L/opt/mysql/mysql/lib -lmysqlclient_r -lthread -lsocket -lnsl -lm -lrt conftest.c -lndbclient -lstdc++ -lresolv -lgen -lnsl -lsocket >&5 configureをいじって-staticをつけたらエラーメッセージが以下のように変わりました。 configure:21918: /usr/sfw/bin/gcc -m64 -o conftest -g -O2 -I/opt/mysql/mysql/include -I/usr/local/ssl/include -I/usr/local/include -I/usr/include -L/opt/mysql/mysql/lib -lmysqlclient_r -lthread -lsocket -lnsl -lm -lrt conftest.c -static -lndbclient -lstdc++ -lresolv -lgen -lnsl -lsocket >&5 ld: fatal: library -lthread: not found ld: fatal: library -lsocket: not found ld: fatal: library -lnsl: not found ld: fatal: library -lm: not found ld: fatal: library -lrt: not found ld: fatal: library -lndbclient: not found ld: fatal: library -lresolv: not found ld: fatal: library -lgen: not found ld: fatal: library -lnsl: not found ld: fatal: library -lsocket: not found ld: fatal: library -lc: not found ld: fatal: library -lc: not found 色々と調べて試した結果、libthread.a libsocket.a libnsl.a libm.a librt.a libndbclient.a libresolv.a libc.a が見つからないという解釈なのですが合っていますでしょうか? ちなみに解釈があっているとすると上記のスタティックライブラリ(?)はSolaris内になかったので筋が通るのですが・・・。 もしそうだった場合、上記のライブラリをどこかからインストール、または作成する必要があると思うのですが何か良い方法はないでしょうか? お手数ですがご教授願います。
補足
すいません。自己解決しました。 -staticだとスタティックライブラリを参照するだけなので意味がなかったのですね。 元のエラー時に参照されていない関数を持ったライブラリをリンクしたら./configureが通りました。 C言語も初めてだったので苦労しました。 アドバイスありがとうございました。