• 欢迎访问金笔头博客,这是一个菜鸟(伪)程序员的自留地,欢迎访问我的github:点击进入

Ubuntu16.04安装Berkeley DB

Ubuntu eason 833次浏览 0个评论 扫描二维码

背景介绍

今天折腾scrapy的时候想着怎么实现增量爬取,Google一番发现有个插件scrapy-deltafetch可以实现,于是开始安装,装到一半报错:

Collecting scrapy-deltafetch
  Downloading scrapy_deltafetch-1.2.1-py2.py3-none-any.whl
Collecting bsddb3 (from scrapy-deltafetch)
  Downloading bsddb3-6.2.5.tar.gz (237kB)
    100% |████████████████████████████████| 245kB 10kB/s 
    Complete output from command python setup.py egg_info:
    Can't find a local Berkeley DB installation.
    (suggestion: try the --berkeley-db=/path/to/bsddb option)

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-plP1K7/bsddb3/

看提示说本地找不到Berkeley DB,于是就有了本文。

关于Berkeley DB

Berkeley DB是历史悠久的嵌入式数据库系统,主要应用在UNIX/LINUX操作系统上,其设计思想是简单、小巧、可靠、高性能。它和C语言,C++,Java,Perl,Python,PHP,Tcl以及其他很多语言都有绑定。Berkeley DB可以保存任意类型的键/值对,而且可以为一个键保存多个数据。Berkeley DB可以支持数千的并发线程同时操作数据库,支持最大256TB的数据,广泛用于各种操作系统包括大多数Unix类操作系统和Windows操作系统以及实时操作系统。2.0版本或以上Berkeley DB由Sleepycat Software公司开发,并使用基于自由软件许可协议/私有许可协议的双重授权方式提供,附有源代码。开发者如果想把Berkeley DB嵌入在私有软件内需要得到Sleepycat公司的许可,若将软件同样遵循GPL发布,则不需许可即可使用。而2.0版本以下的则使用BSD授权,可自由作商业用途。Berkeley DB最初开发的目的是以新的HASH访问算法来代替旧的hsearch函数和大量的dbm实现(如AT&T的dbm,Berkeley的 ndbm,GNU项目的gdbm),Berkeley DB的第一个发行版在1991年出现,当时还包含了B+树数据访问算法。在这以后,Berkeley DB得到了广泛的应用,成为一款独树一帜的嵌入式数据库系统。2006年Sleepycat公司被Oracle 公司收购,Berkeley DB成为Oracle数据库家族的一员,Sleepycat原有开发者继续在Oracle开发Berkeley DB,Oracle继续原来的授权方式并且加大了对Berkeley DB的开发力度,继续提升了Berkeley DB在软件行业的声誉。

安装

首先当然是下载安装包,下载地址:http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html,需要oracle的账户登录才能下载,由于从6.0.20版本开始, Berkeley DB开始使用 GNU AGPL v3.协议授权,为了避免不必要的麻烦,这里我下载的是db-5.3.28.tar.gz
解压/编译/安装

$ tar -zxvf db-5.3.28.tar.gz
$ cd db-5.3.28/
$ dist/configure
$ make
$ sudo make install
Installing DB include files: /usr/local/BerkeleyDB.5.3/include …
Installing DB library: /usr/local/BerkeleyDB.5.3/lib …
libtool: install: cp -p .libs/libdb-5.3.so /usr/local/BerkeleyDB.5.3/lib/libdb-5.3.so
libtool: install: cp -p .libs/libdb-5.3.lai /usr/local/BerkeleyDB.5.3/lib/libdb-5.3.la
libtool: install: cp -p .libs/libdb-5.3.a /usr/local/BerkeleyDB.5.3/lib/libdb-5.3.a
libtool: install: chmod 644 /usr/local/BerkeleyDB.5.3/lib/libdb-5.3.a
libtool: install: ranlib /usr/local/BerkeleyDB.5.3/lib/libdb-5.3.a
libtool: install: cp -p libdb.a /usr/local/BerkeleyDB.5.3/lib/libdb.a
libtool: install: chmod 644 /usr/local/BerkeleyDB.5.3/lib/libdb.a
libtool: install: ranlib /usr/local/BerkeleyDB.5.3/lib/libdb.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/sbin" ldconfig -n /usr/local/BerkeleyDB.5.3/lib
----------------------------------------------------------------------
Libraries have been installed in:
  /usr/local/BerkeleyDB.5.3/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
  - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
    during execution
  - add LIBDIR to the `LD_RUN_PATH' environment variable
    during linking
  - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
  - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Installing DB utilities: /usr/local/BerkeleyDB.5.3/bin …
libtool: install: cp -p .libs/db_archive /usr/local/BerkeleyDB.5.3/bin/db_archive
libtool: install: cp -p .libs/db_checkpoint /usr/local/BerkeleyDB.5.3/bin/db_checkpoint
libtool: install: cp -p .libs/db_deadlock /usr/local/BerkeleyDB.5.3/bin/db_deadlock
libtool: install: cp -p .libs/db_dump /usr/local/BerkeleyDB.5.3/bin/db_dump
libtool: install: cp -p .libs/db_hotbackup /usr/local/BerkeleyDB.5.3/bin/db_hotbackup
libtool: install: cp -p .libs/db_load /usr/local/BerkeleyDB.5.3/bin/db_load
libtool: install: cp -p .libs/db_log_verify /usr/local/BerkeleyDB.5.3/bin/db_log_verify
libtool: install: cp -p .libs/db_printlog /usr/local/BerkeleyDB.5.3/bin/db_printlog
libtool: install: cp -p .libs/db_recover /usr/local/BerkeleyDB.5.3/bin/db_recover
libtool: install: cp -p .libs/db_replicate /usr/local/BerkeleyDB.5.3/bin/db_replicate
libtool: install: cp -p .libs/db_stat /usr/local/BerkeleyDB.5.3/bin/db_stat
libtool: install: cp -p .libs/db_tuner /usr/local/BerkeleyDB.5.3/bin/db_tuner
libtool: install: cp -p .libs/db_upgrade /usr/local/BerkeleyDB.5.3/bin/db_upgrade
libtool: install: cp -p .libs/db_verify /usr/local/BerkeleyDB.5.3/bin/db_verify
Installing documentation: /usr/local/BerkeleyDB.5.3/docs …

补充

linux源码安装的三步曲:

  • ./configure
  • make
  • make install

他们的含义:
./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本
make是用来编译的,它从Makefile中读取指令,然后编译。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

关于卸载

进入源代码目录,执行make uninstall即可。


金笔头博客, 版权所有丨如未注明 , 均为原创, 转载请注明Ubuntu16.04安装Berkeley DB
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址