プロが教える店舗&オフィスのセキュリティ対策術

DB_Fileモジュールがインストールできません。

環境はturbolinux server10でrpm -qa | grep db したところ、
db4-4.2.52-6がインストールされているようです。

そこでDB_Fileのインストールを試みたところ、以下のような
エラーとなってしまいます。

Writing Makefile for DB_File
cp DB_File.pm blib/lib/DB_File.pm
AutoSplitting blib/lib/DB_File.pm (blib/lib/auto/DB_File)
cc -c -I/usr/local/BerkeleyDB/include -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE
_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_S
OURCE -D_FILE_OFFSET_BITS=64 -O2 -g -march=i586 -DVERSION=\"1.814\" -DXS_VERSI
ON=\"1.814\" -fPIC "-I/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE" -D_NOT
_CORE -DmDB_Prefix_t=size_t -DmDB_Hash_t=u_int32_t version.c
version.c:30:16: db.h: No such file or directory
make: *** [version.o] Error 1
/usr/bin/make -- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible


なにかversion.cが何なのかが分からなくて困っています。
そもそも、DB_Fileはperlに同梱されているものと思っていましたが、、、

何が足りないのでしょう?教えてください。よろしくお願いします。

A 回答 (2件)

英語だからということでしり込みしてしまうかもしれませんが、


READMEくらいは目を通しましょうよ。

If you get an error like this:

cc -c -I/usr/local/include -Dbool=char -DHAS_BOOL
-O2 -DVERSION=\"1.64\" -DXS_VERSION=\"1.64\" -fpic
-I/usr/local/lib/perl5/i586-linux/5.00404/CORE -DmDB_Prefix_t=size_t
-DmDB_Hash_t=u_int32_t DB_File.c
DB_File.xs:101: db.h: No such file or directory

This symptom can imply:

2. You do have Berkeley DB installed, but it isn't in a standard place.
Solution: Edit config.in and set the LIB and INCLUDE variables to point
to the directories where libdb.a and db.h are installed.

とありますよ。
DB_Fileモジュールのソースアーカイブを展開した
ディレクトリに config.inというファイルがありますので、

# 1. Where is the file db.h?
#
# Change the path below to point to the directory where db.h is
# installed on your system.

INCLUDE= /usr/local/BerkeleyDB/include
#INCLUDE= /usr/local/include
#INCLUDE= /usr/include

# 2. Where is libdb?
#
# Change the path below to point to the directory where libdb is
# installed on your system.

LIB= /usr/local/BerkeleyDB/lib
#LIB= /usr/local/lib
#LIB= /usr/lib

この辺を質問者さんのシステムにあわせて
書き換えればいいのではないでしょうか?

参考URL:http://search.cpan.org/src/PMQS/DB_File-1.814/RE …
    • good
    • 0
この回答へのお礼

うまくいきました!
たしかにREADMEにしっかり書いてありました、、、
以後気をつけます。
助かりました。ありがとうございました。

お礼日時:2007/01/23 13:58

> version.c:30:16: db.h: No such file or directory


> なにかversion.cが何なのかが分からなくて困っています。

問題は version.cじゃなくてそこでincludeしようとしている
db.hではないでしょうか?

インストールしようとしているモジュールで使用するライブラリは
ちゃんと存在していますか?
あったとして、標準でないディレクトリにあったりしませんか?
メッセージを見たところでは

/usr/local/BerkeleyDB/include

ここにあるものと推測している気配ですが、ここにありますか?

この回答への補足

なるほど。
ご指摘頂いた通り、/usr/local/BerkeleyDB/include は存在していません。
別の場所を指定するには、どうすれば良いでしょう?
どこに指定すればよいですか?
すみません、もう一度教授願います。

補足日時:2007/01/22 09:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!