WiredTiger引擎编译 及 LT_PREREQ(2.2.6)问题解决
近期需要為異構引擎做準備, wiredtiger 以其優異的性能(B-tree和LSM-tree都支持)和穩定性(Mongodb的默認存儲引擎) 被我們備選為異構引擎里的一個子引擎,后續將深入wiredtiger 引擎原理。這里簡單記錄一下Wiredtiger 存儲引擎的編譯記錄。
Environment
CPU:Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz 56core
內存: 256G
操作系統:CentOS Linux release 7.4.1708 (Core)
文件系統:XFS
CC: gcc-5.3/bin/gcc
CXX: gcc-5.3/bin/g++
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/gcc-5.3/lib64
編譯
-
獲取源碼
git clone https://github.com/wiredtiger/wiredtiger.git我使用的是mongodb-4.4版本的引擎:
git checkout mongodb-4.4 -
生成編譯配置
mkdir build./configure --prefix=/home/zhg/wiredtiger/build這里可以通過prefix指定編譯后的成果物路徑,需要指定絕對路徑;如果這里不指定的話就會默認放在/usr/local里面。當然wiredtiger的configure還有更多的配置,如下,一般不需要指定:
–enable-attach Configure WiredTiger to sleep and wait for a debugger to attach on failure. DO NOT configure this option in production environments. –enable-diagnostic Configure WiredTiger to perform various run-time diagnostic tests. DO NOT configure this option in production environments. –enable-java Build the WiredTiger Java API; requires SWIG and Java JDK. –enable-lz4 Configure WiredTiger for LZ4 compression; see Compressors for more information. –enable-python Build the WiredTiger Python API; requires SWIG. –enable-snappy Configure WiredTiger for snappy compression; see Compressors for more information. –enable-zlib Configure WiredTiger for zlib compression; see Compressors for more information. –enable-zstd Configure WiredTiger for Zstd compression; see Compressors for more information.這一步如果執行失敗,并且報出如下錯誤:
./configure: line 4619: syntax error near unexpected token `2.2.6' ./configure: line 4619: `LT_PREREQ(2.2.6)'說明當前系統
libtool工具版本比較低,wiredtiger通過configure安裝過程中需要借用libtool生成一些后續make 需要的makefile配置文件(gcc/g++/lib64 等相關的binary和庫的信息更新)。通過安裝更高版本的libtool即可解決:
sudo yum install libtool -y # centos7.4 默認會安裝2.4.2版本 autoreconf -i # 更新新版本libtool 生成的對應版本的conf -
編譯和安裝
make -j && make install最后編譯成功可以在build目錄下看到如下內容:
$ tree . ├── bin │ └── wt # wiredtiger的binary文件,類似于rocksdb的ldb命令,可以單獨創建wiredtiger的db目錄 ├── include │ ├── wiredtiger_ext.h │ └── wiredtiger.h └── lib # wiredtiger的靜態庫和動態庫├── libwiredtiger-10.0.0.so├── libwiredtiger.a├── libwiredtiger.la├── libwiredtiger.so -> libwiredtiger-10.0.0.so└── pkgconfig└── wiredtiger.pc
總結
以上是生活随笔為你收集整理的WiredTiger引擎编译 及 LT_PREREQ(2.2.6)问题解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纹眉一般多少钱啊?
- 下一篇: 永劫无间角色技能怎么解锁?