文章目录

今天想测试一下py-leveldb,试试将小文件存储在这个数据库上的性能如何。但安装这个数据库的时候花了好长时间,svn里面的那个snappy一直无法编译。

下载py-leveldb:

svn checkout http://py-leveldb.googlecode.com/svn/trunk/ py-leveldb-read-only

下载过来的源代码里面会有一个snappy-read-only的目录,在ubuntu上编译的时候需要安装automake,libtool,autoconf这几个包:

sudo apt-get install autoconf libtool automake

执行snappy-read-only目录中的autogen.sh,但是一直提示我:

configure.ac:41: error: possibly undefined macro: AC_DEFINE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.

查了半天也没找到个解决方法,后来直接去单独下了个snappy,删掉snappy-read-only,并解压下载过来的snappy,并将目录名改为snappy-read-only:

rm snappy-read-only -R -f
tar xvzf snappy-1.0.5.tar.gz
mv snappy-1.0.5 snappy-read-only

编辑compile_leveldb.sh文件,改成如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh

(
cd snappy-read-only;
./configure --enable-shared=no --enable-static=yes;
make clean;
make CXXFLAGS='-g -O2 -fPIC';
)

(
cd leveldb-read-only;
make clean;
make OPT='-fPIC -O2 -DNDEBUG -DSNAPPY -I../snappy-read-only' SNAPPY_CFLAGS=''
)

然后运行一下./compile_leveldb.sh,会自动编译好leveldb和snappy。再执行下面命令安装好py-leveldb:

python setup.py build
sudo python setup.py install
文章目录