Install ssdb-rocks on CentOS 6

  • Post author:
  • Post category:IT
  • Post comments:0评论

为了优化节操精选的弹幕系统,打算更换到Facebook的RocksDB测试,为了支持多台Web Server的场景,打算直接上ssdb-rocks来完成目的,如果有这个需求的朋友还遇到过坑,可以参考一下步骤:

RocksDB需要的依赖

yum install zlib zlib-devel bzip2 bzip2-devel gflags gflags-devel snappy snappy-devel

RocksDB需要的gcc47-c++

  1. cd /etc/yum.repos.d/
  2. wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo
  3. yum –enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++
  4. 导入环境变量
export CC=/opt/centos/devtoolset-1.1/root/usr/bin/gcc  
export CPP=/opt/centos/devtoolset-1.1/root/usr/bin/cpp  
export CXX=/opt/centos/devtoolset-1.1/root/usr/bin/c++  

安装ssdb-rocks

  1. git clone https://github.com/fanweixiao/ssdb-rocks.git
  2. make && make install

注意:上面是我fork的原作者的库做了修改,如果使用作者的git repo安装可能会遇到下面的错误:

/home/docker-cc/Downloads/ssdb-rocks/deps/rocksdb-master/librocksdb.a(env_posix.o): In function `rocksdb::(anonymous namespace)::PosixEnv::NowNanos()':
/home/docker-cc/Downloads/ssdb-rocks/deps/rocksdb-master/util/env_posix.cc:1342: undefined reference to `clock_gettime'
collect2: error: ld returned 1 exit status  
make[1]: *** [all] Error 1  
make[1]: Leaving directory `/home/docker-cc/Downloads/ssdb-rocks/src'  
make: *** [all] Error 2  

修改build.sh文件,把:

case "$TARGET_OS" in  
    Darwin)
        #PLATFORM_CLIBS="-pthread"
        #PLATFORM_CFLAGS=""
    ;;
    Linux)
        PLATFORM_CLIBS="-pthread"
    ;

中的Linux)部分修改成“-pthread -lrt"就好了

发表回复