为了优化节操精选的弹幕系统,打算更换到Facebook的RocksDB测试,为了支持多台Web Server的场景,打算直接上ssdb-rocks来完成目的,如果有这个需求的朋友还遇到过坑,可以参考一下步骤:
RocksDB需要的依赖
yum install zlib zlib-devel bzip2 bzip2-devel gflags gflags-devel snappy snappy-devel
RocksDB需要的gcc47-c++
- cd /etc/yum.repos.d/
- wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo
- yum --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++
- 导入环境变量
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
- git clone https://github.com/ideawu/ssdb-rocks.git
- make && make install
注意:上面是我fork的原作者的库做了修改,如果使用作者的git repo安装可能会遇到下面的错误:2014-08-11现在的版本已经Fix了
/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"就好了