rocksDB 安裝問題簡單介紹


前一段時間准備測試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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM