6.13. Berkeley DB-4.4.20
最后更新于:2022-04-01 22:49:25
# 6.13\. Berkeley DB-4.4.20
Berkeley DB 包含一些程序和工具,供其他的一些程序来在做数据库相关函数时调用。
**预计编译时间:** 1.2 SBU**所需磁盘空间:** 77 MB
### Other Installation Possibilities
如果你需要建立一个 RPC 服务器或者是附加语言绑定编译,在BLFS手册中有一些编译这个软件包的说明。附加语言的绑定编译还需要一些额外的软件包。参见 [_http://www.linuxfromscratch.org/blfs/view/svn/server/databases.html#db_](http://www.linuxfromscratch.org/blfs/view/svn/server/databases.html#db)的安装说明
另外,GDBM _可以_ 被用来代替 Berkeley DB 来满足数据库需求。但是,因为在LFS构建过程中,Berkeley DB 被认为是一个核心部分,无法列出在BLFS手册中把它作为依赖的软件(太多了)。同样,很多时候我们测试的是安装了Berkeley DB的LFS系统,而不是 GDBM。如果你清楚的了解了使用 GDBM 的风险和好处,仍然想要采用它,可以参考BLFS手册中的说明 [_http://www.linuxfromscratch.org/blfs/view/svn/general/gdbm.html_](http://www.linuxfromscratch.org/blfs/view/svn/general/gdbm.html)
## 6.13.1\. 安装 Berkeley DB
修补软件包来防止一些潜在的陷井时间:
```
patch -Np1 -i ../db-4.4.20-fixes-1.patch
```
为编译 Berkeley DB 做准备:
```
cd build_unix &&
../dist/configure --prefix=/usr --enable-compat185 --enable-cxx
```
**配置选项的含义:**
_`--enable-compat185`_
这个选项指定编译 Berkeley DB 1.85 向上兼容性API。
_`--enable-cxx`_
这个选项指定编译 C++ API 库。
编译软件包:
```
make
```
现在测试软件包是没有意义的,因为这将会导致 TCL 捆绑编译。TCL不能被准确的编译,因为 TCL 还是链接到 `/tools` 下的 Glibc,而不是 `/usr` 目录下的Glibc。
安装软件包:
```
make docdir=/usr/share/doc/db-4.4.20 install
```
**make 参数的含义:**
_`docdir=...`_
这条安装命令将db的文档安装到正确的位置。/p>
修改安装文件的属主:
```
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\. Berkeley DB 的内容
**安装的程序:** db_archive, db_checkpoint, db_deadlock, db_dump, db_hotbackup, db_load, db_printlog, db_recover, db_stat, db_upgrade, db_verify**安装的库:** libdb.{so,ar}and libdb_cxx.r{o,ar}
### 简要描述
| | |
| --- | --- |
| `db_archive` | 打印出不再使用的日志文件路径名 |
| `db_checkpoint` | 监视和检查数据库日志的守护进程 |
| `db_deadlock` | 当死锁发生时,退出锁定要求 |
| `db_dump` | 把数据库文件转换成 `db_load` 能认出的文本文件 |
| `db_hotbackup` | 创建 "hot backup" 或者是 "hot failover" 的 Berkeley DB 数据库镜像。 |
| `db_load` | 从db_dump产生的文本文件中创建出数据库文件 |
| `db_printlog` | 把数据库日志文件转换成人能读懂的文本 |
| `db_recover` | 在发生错误后,把数据库恢复到一致的状态 |
| `db_stat` | 显示数据库环境统计 |
| `db_upgrade` | 把数据库文件转换成新版本的Berkley DB格式 |
| `db_verify` | 对数据库文件进行一致性检查 |
| `libdb.{so,a}` | 包含db处理相关函数的C库 |
| `libdb_cxx.{so,a}` | 包含db处理相关函数的C++库 |
';