前一段时间准备测试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. rabbitmq 3.6 延时消息

    rabbitmq-plugins enable rabbitmq_delayed_message_exchange #安装插件 https://github.com/rabbitmq/rabbitmq ...

  2. 使用 CSS3 绘制 Hello Kitty

    偶然间看到了 SegmentFault 上的一篇文章,感觉这个 Hello Kitty 画的还不错,心血来潮也用 CSS3 画了个 Hello Kitty,现在在这里记录一下详细的绘制过程.想要源码. ...

  3. Qt5 installation and path configuration

    Replace Default Qt version paths in: /usr/lib/x86_64-linux-gnu/qtchooser/default.confor in newer rel ...

  4. mysql表创建好后添加外键

     命令:alter table 需加外键的表 add constraint 外键名 foreign key(需加外键表的字段名) referencnes 关联表名(关联字段名); 注意:外键名不能重复

  5. ssh启动报错:org.dom4j.DocumentException: Connection timed out: connect Nested exception: Connection timed out: connect

    ssh项目启动报错: org.dom4j.DocumentException: Connection timed out: connect Nested exception: Connection t ...

  6. contiki-事件调度

    事件驱动机制广泛应用于嵌入式系统,类似于中断机制,当有事件到来时(比如按键.数据到达),系统响应并处理该事件.相对于轮询机制,事件机制优势很明星,低功耗(系统处于休眠状态,当有事件到达时才被唤醒)和M ...

  7. 通过页面调用APP【H5与APP互通】

    现在H5和App原生的内容原来越互通,所涉及的业务也越来越复杂和融合,所以如何互相之间方便的调用才是王道. 场景1 比如用hybrid获取地理位置和短信信息,这当然需要框架封装好,比如利用框架的bri ...

  8. Mvc 提交表单的4种方法全程详解

    一,MVC  HtmlHelper方法 Html.BeginForm(actionName,controllerName,method,htmlAttributes){} BeginRouteForm ...

  9. iPhone 6 Screen Size and Web Design Tips

    Apple updated its iPhone a bit ago making the form factor much bigger. The iPhone 6 screen size is b ...

  10. Thinkphp 3.2中字符串截取

    将此方法放到Thinkphp/Common/function.php里/* * 字符串截取函数 * 大白驴 * 2016-11-29 qq 675835721 * */function msubstr ...