[PR]
by amanatu
-->
カレンダー
«  «  2006 4月  »  »
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6

メインメニュー

最新ブログエントリ

エンジニアアイテム


最近のコメント

最近のトラックバック

アーカイブ


メルマガ登録 ID: 0000209784
UNIXのおべんきょしませんか?
 
バックナンバー powered by まぐまぐトップページへ
ブログ - 最新エントリ
 最新エントリ配信

最新エントリ
2006/04/17
カテゴリ: Miscellaneous : 

執筆者: unix (5:08 pm)
OpenLDAPのconfigure時にBDBのバージョンミスマッチの後
さらにmakeでもエラーが出てしまうという
今までにない苦労を強いられる・・・

solaris10上でOpenLDAPをmakeしたときに

---->make時のエラー<-----------
Making all in /var/tmp/openldap/openldap-2.3.20
Entering subdirectory include

Entering subdirectory libraries
Making all in /var/tmp/openldap/openldap-2.3.20/libraries
Entering subdirectory liblutil

Entering subdirectory liblber

Entering subdirectory liblunicode
make: Fatal error: Don't know how to make target `*/ucgendat.c'
Current working directory /var/tmp/openldap/openldap-2.3.20/libraries/liblunicode
*** Error code 1
The following command caused the error:
for i in liblutil liblber liblunicode libldap libldap_r librewrite ; do
echo " Entering subdirectory $i";
( cd $i; make all );
if test $? != 0 ; then exit 1; fi ;
echo " ";
done
make: Fatal error: Command failed for target `all-common'
Current working directory /var/tmp/openldap/openldap-2.3.20/libraries
*** Error code 1
The following command caused the error:
for i in include libraries clients servers tests doc ; do
echo " Entering subdirectory $i";
( cd $i; make all );
if test $? != 0 ; then exit 1; fi ;
echo " ";
done
make: Fatal error: Command failed for target `all-common'
-----------------------------------

と出てしまう。他のシステムでは出ないらしい。

そこで

まずはmakeは/usr/ccs/bin/makeを使っていたので
GNUmakeをインストール。
さらに
$SRCDIR/libraries/liblunicode/Makefile.in
を書き換える。

18行目
<変更前>
#XXDIR = $(srcdir)/*/
<変更後>
XXDIR = $(srcdir)/ucdata/

44行目
<変更前>
  $(LN_S) $(XXDIR)$$i . ;
<変更後>
ii=`find . -name $$i` ;
$(LN_S) $$ii . ;

としてしまう。

そしてもう一度最初から
configure
make depend
make
make install
を行うことでコンパイルが無事にいける。

どうもワイルドカードの指定の部分が悪かったらしい。
なんとも苦労したOpenLDAPのコンパイルであった。
2006/04/17
カテゴリ: Miscellaneous : 

執筆者: unix (4:09 pm)
いまどきSolaris使うのかって話はおいといて
久しぶりにsolaris10上でコンパイルしてみました。
OpenLDAPの最新安定版です。

Solaris10はOSインストールしてRecommended当てた
生まれたままの状態。

そこに
PATH=$PATH:/usr/sfw/bin
LD_LIBRARY_PATH=/usr/sfw/lib
をしている状態。
つまりgccなんかもOSに付属のものを使ったわけ。

なので

export CPPFLAGS=-I/usr/local/BerkeleyDB.4.4/include
export LDFLAGS=-L/usr/local/BerkeleyDB.4.4/lib
export PATH=/usr/local/BerkleyDB.4.4/bin

を実行してからconfigureする。


が、しかし、いくらconfigureしても通らない。

BDBのバージョンがミスマッチだとでる。

---->Berkeley DB version mismatchのエラー<-----
checking for ctime_r... yes
checking for gethostbyname_r... yes
checking for gethostbyaddr_r... yes
checking number of arguments of ctime_r... 3
checking number of arguments of gethostbyname_r... 5
checking number of arguments of gethostbyaddr_r... 7
checking db.h usability... yes
checking db.h presence... yes
checking for db.h... yes
checking for Berkeley DB major version... 4
checking for Berkeley DB minor version... 4
checking for Berkeley DB link (-ldb44)... no
checking for Berkeley DB link (-ldb-44)... no
checking for Berkeley DB link (-ldb-4.4)... yes
checking for Berkeley DB version match... no
configure: error: Berkeley DB version mismatch

config.logをみるとなんだかldがどうも悪そうに見える。

なので

coreutilsをインストールしてからconfigureするとうまくいった。

ググっても

export CPPFLAGS=-I/usr/local/BerkeleyDB.4.4/include
export LDFLAGS=-L/usr/local/BerkeleyDB.4.4/lib

をするのを忘れてるだけ。
なので今回はcoreutilsを入れてGNUldを入れることで
解決したような感じ。

うーん、あってんのかなあ。
| #if DB_VERSION_MAJOR > 1
| {
| char *version;
| int major, minor, patch;
|
| version = db_version( &major, &minor, &patch );
|
| if( major != DB_VERSION_MAJOR ||
| minor < DB_VERSION_MINOR )
| {
| printf("Berkeley DB version mismatchn"
| "theader: %sntlibrary: %sn",
| DB_VERSION_STRING, version);
| return 1;
| }
| }

この辺見てもよくわかんないなあ・・・


とりあえずcoreutils入れて/usr/local/binをPATHに通した後にconfigureすると

---------------------
checking for Berkeley DB major version... 4
checking for Berkeley DB minor version... 4
checking for Berkeley DB link (-ldb44)... no
checking for Berkeley DB link (-ldb-44)... no
checking for Berkeley DB link (-ldb-4.4)... yes
checking for Berkeley DB version match... yes
checking for Berkeley DB thread support... yes
checking Berkeley DB version for BDB/HDB backends... yes
  ・
  ・
  ・
------------------
とうまくいったようです。

技術コンテンツ全文検索

表示形式: ソート:

pitattomatch ADs
最新ニュースブロック
ヘッドラインブロック
新着リンク
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
Powered by Xoops2.05  Theme Design by OCEAN-NET
copyright (c) 2003 All rights reserved.