前一段时间准备测试rocksdb,按照帖子和官网的例子,在安装过程中遇到一些问题。这里给出的是在Ubuntu下安装python使用的版本。

首先,要感谢这些帖子对我的帮助:

1:http://tech.uc.cn/?p=2592

2:http://bigkun.me/2014/01/22/rocksdb%E7%AC%AC%E4%B8%80%E7%AF%87%EF%BC%9A%E5%AE%89%E8%A3%85/

3:http://askubuntu.com/questions/312173/installing-gflags-12-04

4:http://blog.itpub.net/16582684/viewspace-1253841/

5:http://pyrocksdb.readthedocs.org/en/latest/installation.html

这里大部分代码来自链接5和链接4

第一步:必须更新Ubuntu的G++和GCC至4.7 以上( 有C++11支持 )

给出一个例子(http://lonelyprogram.blog.51cto.com/6246243/1355259)

a.更新gcc,不必卸掉原先的gcc

sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get updatesudo apt-get install gcc-4.8sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50

b.升级g++

apt-get install g++-4.8

c.查看版本

gcc --version
g++ --version

第二步:安装必要的一些库如(build-essential libsnappy-dev zlib1g-dev libbz2-dev libgflags-dev)

apt-get install build-essential
apt-get install libsnappy-dev zlib1g-dev libbz2-dev libgflags-dev

这里需要特别说明一下如何安装gflags

http://askubuntu.com/questions/312173/installing-gflags-12-04  这个帖子里已有详细介绍,可以操作,这里不做重复。

第三步:下载安装rocksDB  这里是从github上复制安装

git clone https://github.com/facebook/rocksdb.git
cd rocksdb

之后,需要对rocksdb中的一些文件进行修改

vi Makefile
将这一行 OPT += -O2 -fno-omit-frame-pointer -momit-leaf-frame-pointer
修改为 OPT += -O2 -lrt -fno-omit-frame-pointer -momit-leaf-frame-pointer 在~/.bashrc中增加 export LD_PRELOAD=/lib/x86_64-linux-gnu/librt.so.1,并使变量生效source ~/.bashrc
(这两步用于解决这个问题 " undefined symbol: clock_gettime")
sudo git checkout 2.8.fb

sudo make shared_lib
修改环境变量,头文件库和链接库以及路径(直接在终端输入即可)
$ export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}:`pwd`/include
$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:`pwd`
$ export LIBRARY_PATH=${LIBRARY_PATH}:`pwd`

指定用户权限,创建数据库(shuren是用户名)

cd ..
sudo chown shuren:shuren rocksdb -Rf
cd rocksdb

进行接下来三步操作,解决这个问题 “ Fatal error: rocksdb/slice.h: No such file or directory "

sudo cp librocksdb.so /usr/local/lib
sudo mkdir -p /usr/local/include/rocksdb/
sudo cp -r ./include/* /usr/local/include/

上面,数据库安装就成功了

第四步:安装pyrocksdb()

$ apt-get install python-virtualenv python-dev
$ virtualenv pyrocks_test
$ cd pyrocks_test
$ . bin/active(这句我好像没有执行,但官网给出,就贴上吧)
$ pip install "Cython>=0.20"
$ pip install git+git://github.com/stephan-hof/pyrocksdb.git

这样pyrocksdb安装成功,对数据库进行一下测试

shuren@hq:/u01/rocksdb$ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import rocksdb
>>> db = rocksdb.DB("test.db", rocksdb.Options(create_if_missing=True))
>>> db.put(b"key1", b"v1")
>>> db.put(b"key2", b"v2")
>>> db.get(b"key1")
'v1'
>>>del db

最后一句是关闭连接。

如此,你就可以基本使用数据库,具体的详细操作参见http://pyrocksdb.readthedocs.org/en/latest/tutorial/index.html

rocksDB 安装问题简单介绍的更多相关文章

  1. Kali安装zmap简单介绍

    zmap是一个非常方便的扫描器,跟nmap和masscan一样,不过区别在于zmap他快,号称是一小时扫遍整个互联网.主要使用方式是TCP SYN scan.TCP connectscan.UDP s ...

  2. java web(一):tomcat服务器的安装和简单介绍,与eclipse关联

    一:下载tomcat安装包和安装 这个百度一下就可以了. 安装完以后进入tomcat的安装路径查看 如图所示:有几个目录简单介绍下 bin目录:   存放运行tomcat服务器的相关命令. conf目 ...

  3. Postman安装与简单介绍

    Postman简介 Postman是一个 Chrome 扩展,能提供强大的 Web API HTTP 请求调试功能.Postman能够发送任何类型的http请求,支持GET/PUT/POST/DELE ...

  4. postman插件的安装以及简单介绍

    1:postman是干什么的? Postman官网上这么介绍的:“Modern software is built on APIs,Postman helps you develop APIs fas ...

  5. supervisor的安装与简单介绍

    1,介绍 Supervisor是一个进程管理工具,官方的说法 用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要 ...

  6. percona-toolkit的安装及简单介绍

    MySQL数据库是轻量级.开源数据库的佼佼者.其功能和管理,健壮性与Oracle相比还是有相当的差距.因此有非常多功能强大第三方的衍生产品,如percona-toolkit,XtraBackup等等. ...

  7. moogodb 安装及简单介绍

    1,安装Moogodb 因为是windows 64位操作系统,直接到官网上下载.msi文件,下载完成后点击安装,点击同意协议之后,出现下面的对话框, Choose Setup Type, 就是选择安装 ...

  8. 性能测试三十八:Java性能分析神器-JProfiler安装和简单介绍

    Jprofiler是一个重量级的工具,需要分别在服务器和windows都装客户端,会损耗性能,用于发现问题后排查问题,而不是常规的监控 JPROFILER工具下载地址:http://www.ej-te ...

  9. MongoDB安装和简单介绍

    前面我们把nodejs的web开发入门说了,如今来说说数据库,一般搭配的数据库是mysql和mongodb,今天我们来说mongodb MongoDB是一个基于分布式文件存储的数据库,由C++语言编写 ...

随机推荐

  1. hrbust1841再就业(状态压缩dp)

    本人刚学压缩dp,只能对这些水题写题解 一方面对自己的理解有加深作用 另一方面希望和各位大牛交流交流..... 如果有对状态dp不太了解的童鞋可以参考入门知识:http://wenku.baidu.c ...

  2. 在windows上搭建react-native的android环境

    参考文档: http://facebook.github.io/react-native/docs/getting-started.html http://reactnative.cn/docs/0. ...

  3. 如何离线创建Ionic/cordova项目

    在创建ionic项目的时候,需要联网下载许多东西,由于墙的缘故,我们在创建.添加android平台.编译过程中,失败的可能性非常高,为解决这个问题,我创建了一个空的Ionic1 tab项目,并完成了上 ...

  4. java的4种代码块

    一.普通代码块 直接在一个方法中出现的{}就称为普通代码块,例子程序如下: public class CodeDemo01{ public static void main(String[] args ...

  5. 转:java怎么用一行代码初始化ArrayList

    java怎么用一行代码初始化ArrayList 您可以创建一个工厂方法: public static ArrayList<String> createArrayList(String .. ...

  6. Lander-Waterman model

    参考: Lander-Waterman Model 这个模型是鸟枪法测序和基因组装的最基本的理论模型,它揭示了测序深度与覆盖度之间的关系. 该模型回答了一个最基本的问题:How many reads ...

  7. 关于malloc的一些想法

    之前一段时间翻阅过一些内存分配的资料,这次终于能将其整理记录下来了. c标准库里有两个耳熟能详的函数,用于对堆空间的内存进行分配和释放,它们分别是: malloc.负责分配一个指定大小的一块内存给调用 ...

  8. null

    期末考备考最后三天. 加油,把这学期学的知识给它搞透了.

  9. ES6(一)ECMAscript6介绍

    nvm-windows Node.js是JavaScript语言的服务器运行环境,对ES6的支持度比浏览器更高.通过Node,可以体验更多ES6的特性.建议使用版本管理工具nvm,来安装Node,因为 ...

  10. python+selenium安装步骤

    1.先安装python 2.下载setuptools 使用方法是在 命令提示符(cmd)下 输入 "easy_install包名称" 3.安装pip 4.安装selenium如果是 ...