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

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:


This option enables building Berkeley DB 1.85 compatibility API.


This option enables building C++ API libraries.

Compile the package:


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:


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


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


A daemon used to monitor and checkpoint database logs


A daemon used to abort lock requests when deadlocks are detected


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


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


Is used to create database files from plain-text files


Converts database log files to human readable text


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


Displays statistics for Berkeley databases


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


Is used to run consistency checks on database files


Contains functions to manipulate database files from C programs


Contains functions to manipulate database files from C++ programs