1.环境准备
在编译前需要做好的工作:
Cmake版本: 3.10.0
gcc版本: 10.2.0
Python版本: 3.6.10
ArangoDB版本: 3.9.1
一般不可低于以上版本,但建议尽量保证一致,如果使用非以上版本编译出现错误时,请更正为以上版本,移除 build 目录后再进行编译(如果不移除,配置可能会使用旧版本),因为build目录生成的文件大小较大,将近几个G,所以建议将版本安装以上版本后再进行编译
官网未提供 linux 编译,但写者尝试使用该编译文档在 centos 7 下进行编译,通过社区咨询,可以并编译成功
编译参考:https://www.arangodb.com/docs/stable/installation-compiling-debian.html
源码下载:https://github.com/arangodb/arangodb/archive/refs/tags/v3.9.1.tar.gz
安装好后配置环境变量:
vim /etc/profile
# arangodb3.9.1 env
export OPENSSL_ROOT_DIR=/usr/local/openssl
export PYTHON_INCLUDE_DIRS=/usr/local/Python-3.6.10/lib/python3.6/site-packages/
使用 make (更快编译可使用 make -j4 ,数字尽量为cpu核数多一个)
内存需剩余 8 G以上,否则编译很大可能会失败
2.编译
进行 arangodb 源码编译,写者使用的版本为 3.9.1 (3.9.0 同样适用)
cd ${ARANGODB_HOME}
mkdir build
cd build
对于发布版本,使用以下选项配置 CMake:
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DUSE_MAINTAINER_MODE=off -DUSE_OPTIMIZE_FOR_ARCHITECTURE=On -DUSE_GOOGLE_TESTS=off
2.1编译
使用命令:make -j2 (该数字可根据 cpu 核数进行调节)
最后编译完成 截图
2.2 编译后启动
源码启动,在源码目录下
build/bin/arangod -c etc/relative/arangod.conf --server.endpoint tcp://127.0.0.1:8529 /tmp/database-dir
1.如果提示 Illegal instruction
,查看 cpu 指令集(是否存在 avx)
grep flags /proc/cpuinfo (| grep avx)
如果没有avx, 则不支持该系统指令集,可进行 make install 后,迁移二进制文件进行启动
2.如果提示下边这个问题,使用ldd查看确实缺少类库libatomic.so.1 ,请使用 yum 安装一下:
yum -y install libatomic
安装完成之后再查看,类库获取成功:
2.3 编译安装到指定目录
make install (DESTDIR=绝对路径)
使用模式安装,文件将出现在一下目录,可用一下命令进行检查:
ll /etc/logrotate.d/arangodb3
ll /usr/sbin/arango*
ll /usr/var/
ll /usr/bin/arango*
ll /usr/usr/lib/systemd/system/arangodb3.service
ll /usr/etc/arangodb3/
ll /usr/share/arangodb3/
ll /usr/share/man/man1/arango*
ll /usr/share/man/man8/*arango*
ll /usr/share/doc/arangodb3
ll /usr/share/man/man8/foxx-manager.8
3.启动后页面截图
登录页
输入账号root,密码为空,登录进入系统
4.FAQ
1.问题一
解决:解决方案
具体为将gcc的 libstdc类库替换到 /lib64 目录下,进行升级
build/bin/arangod: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by build/bin/arangod)
linux-vdso.so.1 => (0x00007ffcc8ef3000)
libatomic.so.1 => not found
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f6d98cb7000)
librt.so.1 => /lib64/librt.so.1 (0x00007f6d98aaf000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f6d988ab000)
libssl.so.1.1 => not found
libcrypto.so.1.1 => not found
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6d9868f000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f6d98387000)
libm.so.6 => /lib64/libm.so.6 (0x00007f6d98085000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6d97e6f000)
libc.so.6 => /lib64/libc.so.6 (0x00007f6d97aa1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6d98ed1000)
5.参考
官网:ArangoDB官网
本文链接:https://blog.csdn.net/weixin_40375601/article/details/124474749