6.13. Berkeley DB-4.4.20

The Berkeley DB package contains programs and utilities used by many other applications for database related functions.

Approximate build time: 1.2 SBU
Required disk space: 77 MB
[Tip]

Other Installation Possibilities

There are instructions to build this package in the BLFS book if you need to build the RPC server or additional language bindings. The additional language bindings will require additional packages to be installed. See http://www.linuxfromscratch.org/blfs/view/svn/server/databases.html#db for suggested installation instructions.

Also, GDBM could be used in place of Berkeley DB to satisfy Man-DB. However, since Berkeley DB is considered a core part of the LFS build, it will not be listed as a dependency for any package in the BLFS book. Likewise, many hours go into testing LFS with Berkeley DB installed, not with GDBM. If you fully understand the risks versus benefits of using GDBM and wish to use it anyway, see the BLFS instructions located at http://www.linuxfromscratch.org/blfs/view/svn/general/gdbm.html

6.13.1. Installation of Berkeley DB

Patch the package to eliminate potential trap events:

patch -Np1 -i ../db-4.4.20-fixes-1.patch

Prepare Berkeley DB for compilation:

cd build_unix &&
../dist/configure --prefix=/usr --enable-compat185 --enable-cxx

The meaning of the configure options:

--enable-compat185

This option enables building Berkeley DB 1.85 compatibility API.

--enable-cxx

This option enables building C++ API libraries.

Compile the package:

make

It is not possible to test the package meaningfully, because that would involve building TCL bindings. TCL bindings cannot be built properly now because TCL is linked against Glibc in /tools, not against Glibc in /usr.

Install the package:

make docdir=/usr/share/doc/db-4.4.20 install

The meaning of the make parameter:

docdir=...

This variable specifies the correct place for the documentation.

Fix the ownerships of the installed files:

chown -v root:root /usr/bin/db_* \
    /usr/lib/libdb* /usr/include/db* &&
chown -Rv root:root /usr/share/doc/db-4.4.20

6.13.2. Contents of Berkeley DB

Installed programs: db_archive, db_checkpoint, db_deadlock, db_dump, db_hotbackup, db_load, db_printlog, db_recover, db_stat, db_upgrade, and db_verify
Installed libraries: libdb.{so,ar}and libdb_cxx.r{o,ar}

Short Descriptions

db_archive

Prints the pathnames of log files that are no longer in use

db_checkpoint

A daemon used to monitor and checkpoint database logs

db_deadlock

A daemon used to abort lock requests when deadlocks are detected

db_dump

Converts database files to a plain-text file format readable by db_load

db_hotbackup

Creates “hot backup” or “hot failover” snapshots of Berkeley DB databases

db_load

Is used to create database files from plain-text files

db_printlog

Converts database log files to human readable text

db_recover

Is used to restore a database to a consistent state after a failure

db_stat

Displays statistics for Berkeley databases

db_upgrade

Is used to upgrade database files to a newer version of Berkeley DB

db_verify

Is used to run consistency checks on database files

libdb.{so,a}

Contains functions to manipulate database files from C programs

libdb_cxx.{so,a}

Contains functions to manipulate database files from C++ programs