Berkeley DB 4.1.25/4.2.52/4.4.20/4.5.20


OSのライブラリを使用する場合

Solaris 10以降にはBerkeley DBのライブラリが付属していますが、 ヘッダーファイルがないため、他のプログラムからリンクすることができません。
ヘッダーファイルを用意してリンクできるようにします。

Berkeley DB 4.2.25 for Solaris 10

まずソースコードを展開し、必要なヘッダーファイルを生成します。

# gzip -dc db-4.2.25.tar.gz | tar xf -
# cd db-4.2.25
# patch -p0 < patch-4.2.25.1
# patch -p0 < patch-4.2.25.2
# patch -p0 < patch-4.2.25.3
# patch -p0 < patch-4.2.25.4
# patch -p0 < patch-4.2.25.5
# cd build_unix
# ../dist/configure

システムにコピーします。

# cp db.h /usr/include
# cp db_cxx.h /usr/include

-ldbでリンクできるようにシンボリックリンクを張ります。

# cd /usr/lib
# ln -s libdb.so.1 libdb.so
# cd /usr/lib/64
# ln -s libdb.so.1 libdb.so

コンパイルしてインストールする場合

シェアードライブラリにします。SPARCでは32bit版と64bit版を両方コンパ イルしておきます。パッチが出ているので、それらも適用しておきます。

build_unixディレクトリで以下のようなスクリプトを実行します。

setup.sh(4.4.20の例)

#!/bin/sh

if [ $# -eq 1 ]; then
        . ../../../setup-pre.sh $1
else
        . ../../../setup-pre.sh
fi

BDBVER=4.4

LDFLAGS="$CFLAGS -L/usr/local/lib/db${BDBVER}${LIBISA} -R/usr/local/lib/db${BDBVER}${LIBISA} $LDFLAGS"
export LDFLAGS

../dist/configure --prefix=/usr/local \
        --bindir=/usr/local/bin/db${BDBVER}/${ISA} \
        --libdir=/usr/local/lib/db${BDBVER}${LIBISA} \
        --includedir=/usr/local/include/db${BDBVER} \
        --mandir=/usr/local/share/man

setup.shを実行してmakeします。

% ./setup.sh && gmake
   or
% ./setup.sh sparcv9 && gmake
# gmake install

ISA自動起動リンクを作るために、以下のスクリプトを実行します。

4.2.52と4.4.20の例

#!/bin/sh
#
BINPROG42="db_archive db_checkpoint db_deadlock db_dump db_load db_printlog db_recover db_stat db_upgrade db_verify"
BINPROG44="db_archive db_checkpoint db_deadlock db_dump db_hotbackup db_load db_printlog db_recover db_stat db_upgrade db_verify"

BINPROG=$BINPROG42
BINDIR=/usr/local/bin/db4.2

if [ "${BINPROG}" != "" ]; then
  cd ${BINDIR}
  for prog in ${BINPROG}
  do
    rm -f $prog
    ln /usr/lib/isaexec $prog
    echo $prog
  done
fi

cd /usr/local/tecgw/isaexec

BINPROG=$BINPROG44
BINDIR=/usr/local/bin/db4.4

if [ "${BINPROG}" != "" ]; then
  cd ${BINDIR}
  for prog in ${BINPROG}
  do
    rm -f $prog
    ln /usr/lib/isaexec $prog
    echo $prog
  done
fi

for i in $BINPROG42
do
   cd /usr/local/bin
   rm -f $i
   echo "ln -s db4.2/${i} ${i}"
   ln -s db4.2/${i} ${i}
done

hiraga@next-hop.net
Last modified: $Date: 2009/03/18 06:25:57 $
Apache