RocksDB 官方安装指南:https://github.com/facebook/rocksdb/blob/master/INSTALL.md。
我只是简单做了一个翻译哈,换句话说,我不生产文档,我只是官方文档的翻译工。英语水平有限,有些句子意思大概明白,但是翻译过来就不一定准确,如果发现不太准确的地方,请及时指明。
编译方式
注意:如果你打算在生产环境中使用 RocksDB,请不要使用 make
或者是 make all
的方式进行编译。因为这两种方式会编译出 debug 模式的 RocksDB,性能要差很多。
RocksDB 正常是可以在不安装任何依赖的情况下编译的,但是我们推荐安装一些压缩库(见下文)。当然,新版本的 gcc/clang 还是需要的,因为使用到了 C++11 的特性。
以下是一些编译 RocksDB 的选择:
-
【推荐】
make static_lib
将会编译出一个 RocksDB 的静态库 librocksdb.a。这个静态库是 release 模式的。 -
make shared_lib
将会编译出一个 RocksDB 的动态库 librocksdb.so。这个动态库是 release 模式的。 -
make check
将会编译并运行所有的单元测试,得到的 RocksDB 是 debug 模式的。 -
make all
将会编译出一个静态库、所有的工具和单元测试。我们的工具依赖 gflags,所以在运行make all
之前必须先安装 gflags。这种方式得到的 RocksDB 是 debug 模式的,不要在生产环境中使用make all
编译出来的二进制包。 -
默认情况下,我们编译的二进制包会针对你编译所在的平台进行优化(
-march=native
或相同的东西),如果你的 CPU 支持 SSE4.2 指令集的话也会自动开启。当使用USE_SSE=1 make static_lib
或者cmake -DFORCE_SSE42=ON
去编译,且 CPU 还不支持 SSE4.2 指令集的话,就会显示一条警告信息。如果你想要一个便捷式的二进制包,就在 make 命令前添加PORTABLE=1
,比如说PORTABLE=1 make static_lib
。
需要的依赖
-
你可以让 RocksDB 去链接以下的压缩库:
-
所有我们的工具都依赖于:
- gflags - 一个命令行标志解析库。你可以在不安装这个库的情况下正常编译 RocksDB。
-
如果你希望构建 RocksJava 静态包,那么用于编译 Snappy 的 cmake 是必须的。
支持的平台
-
Linux - Ubuntu
- 更新 gcc 的版本到 4.8 或更高以获得 C++11 的特性。
- 安装 gflags。首先尝试:
sudo apt-get install libgflags-dev
,如果不管用,而且你用的是 Ubuntu,这里有一份非常赞的指南:(htt