日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

WiredTiger引擎编译 及 LT_PREREQ(2.2.6)问题解决

發布時間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)问题解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。