首页 > 其他分享 >WiredTiger引擎编译 及 LT_PREREQ(2.2.6)问题解决

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

时间:2022-11-04 11:33:07浏览次数:63  
标签:enable configure WiredTiger PREREQ wiredtiger 编译 LT 引擎


近期需要为异构引擎做准备, 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


标签:enable,configure,WiredTiger,PREREQ,wiredtiger,编译,LT,引擎
From: https://blog.51cto.com/u_13456560/5823175

相关文章

  • 松下HHLT0663致儒与松下HHLT0633致巡对比
    松下HHLT0663致儒140颗松下LED灯珠均匀分布,360°输出光源,202mm大发光面,扩大照明空间的同时让光线自然柔和。护眼灯Ra越接近100,越像太阳光,显色指数越高,灯光下的物品就越......
  • mac解决 gyp: No Xcode or CLT version detected!
    很多人第一想法就是重新安装Xcode,但是Xcode对内存要求很高,并不是每个人都想安装或者说都能安装的,其实,只需要安装个别配置就好了。删除已经安装的CommandLineToolssudor......
  • Scalable Evaluation of Multi-Agent Reinforcement Learning with Melting Pot
    提出的问题:现有的对多智能体强化学习的评估工具没有将多智能体强化学习泛化的新情况评估作为主要目标。传统的监督学习和受益于明确的实验环境和存在的评价基准,能够较为......
  • localtime_r学习
    转自:https://blog.csdn.net/u010087712/article/details/507312221.localtime_r  用来获取系统时间,运行于linux平台下。 函数原型:structtm*localtime_r(constti......
  • Emre Aksan-2021-AnSpatio-temporalTransformer for 3D Human Motion Prediction-IEEE
    ASpatio-temporalTransformerfor3DHumanMotionPrediction#paper1.paper-info1.1MetadataAuthor::[[EmreAksan]],[[ManuelKaufmann]],[[PengCao]],[[......
  • WallFilter_简介
    遇到的问题:Caused by: java.sql.SQLException: sql injection violation, dbType mysql, druid-version 1.2.8, part alway true condition not allow : ......
  • 如何在 BigQuery 中实现对 array<struct<a string, b string>> 的 group by 操作
    最近做的需求又开始贴近SQL了,感觉有点手生。毕竟最近半年切换上下文有点频繁,做的东西有点杂。之前比较少对复合字段进行操作,涉及到数组操作和结构体操作,SQL竟也提供了......
  • esp8266闪存文件系统<FS.h>
        1.存储的文件是编译后的;用闪存文件系统时要申请空间   2.SPIFFS.begin();启用闪存文件系统;3. SPIFFS.format();格式化SPIFFS.open(file_name......
  • spring-boot-2.0.3源码篇 - filter的注册,值得一看
    开心一刻过年女婿来岳父家走亲戚当时小舅子主就问:姐夫,你什么时候能给我姐幸福,让我姐好好享受生活的美好。你们这辈子不准备买一套大点的房子吗?姐夫说:现在没钱啊......
  • List<map> 用stream聚合后 排序变乱序解决办法
    Map<Object,List<Map<String,Object>>>name=list.stream().collect(Collectors.groupingBy(x->x.get("name"),LinkedHashMap::new,Collectors.toList()));  加......