centos7安装部署gStore以及排坑的心酸过程
Gstore 系统(也称作 gStore )是一个用于管理大型图结构数据的图数据库引擎,是一个针对 Linux 操作系统的开源软件
下述步骤为完整且成功安装 gstore的过程。 (更新一下,简化安装步骤)
1 安装git
sudo yum install git 中间过程全选 “y”
2 获取gstore源码
git clone https://gitee.com/PKUMOD/gStore.git #gitee(码云) 国内下载速度更快
注意 !坑来了(按照官方文档,在gStore/script/setup/setup_centos.sh自动安装相关依赖,亲身实践后有问题)
3 安装高版本gcc
关于gcc版本问题
官方推荐使用5.0以上 ,但是自动安装步骤完成后的版本同样低于5.0,所以在执行完自动安装脚本后,应该手动升级,否则编译gstore会报错。
官方文档
1).下载gcc 5.0以上版本 (这里使用5.4.0)
先查看gcc版本如果是5.0以上则不用更新
gcc --version
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.4.0/gcc-5.4.0.tar.gz
tar xvf gcc-5.4.0.tar.gz
cd gcc-5.4.0
./contrib/download_prerequisites
cd ..
mkdir gcc-build-5.4.0
cd gcc-build-5.4.0
../gcc-5.4.0/configure --prefix=/opt/gcc-5.4.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib
sudo make -j4 #允许4个编译命令同时执行,加速编译过程
sudo make install
make -j4编译时间比较长,4G内存,4核处理器40分钟编译完。
3).修改gcc默认版本
#prefix 假设gcc 和 g++ 安装在了/prefix/bin 路径下,执行以下命令:
export PATH=/prefix:$PATH
# 假设 5.0 以上版本的 gcc 和 g++ 动态链接库在/prefix/lib路径下,则需要执行以下命令:
export LD_LIBRARY_PATH=/prefix/lib:$LD_LIBRARY_PATH
上述步骤执行完后 进入/usr/bin下
使用 find ./ -name "*gcc*", find ./ -name "*g++*", find ./ -name "*cpp*" ,find ./ -name "*c++*",命令查询出该路径下所有的link。mv重命名所有link。
使用 update-alternatives命令重新生成新的link ,"--install" 参数,“ /usr/bin/c++ ” link所在地址,“c++” link名称,“/opt/gcc-5.4.0/bin/x86_64-unknown-linux-gnu-c++”gcc编译过的路径。"40" 优先使用高版本。
update-alternatives --install /usr/bin/c++ c++ /opt/gcc-5.4.0/bin/x86_64-unknown-linux-gnu-c++ 40
(也可以直接复制 “ /opt/gcc-5.4.0/bin/* 到 /usr/bin/ 下。”)
后使用 g++ --version, gcc --version 查看版本
(手动编译费时费力 )
***简单更新gcc版本的办法 推荐安装7 ,7安装gstore没问题
步:安装centos-release-scl
sudo yum install centos-release-scl
第二步:安装devtoolset,注意,如果想安装7.版本的,就改成devtoolset-7-gcc,以此类推,默认安装的devtoolset是在 /opt/rh 目录下的
sudo yum install devtoolset-7-gcc*
第三步:激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本。
scl enable devtoolset-7 bash
这条激活命令只对本次会话有效,重启会话后还是会变回原来的4.8.5版本
第四步:启动
每个版本的目录下面都有个 enable 文件,如果需要启用某个版本,只需要执行
source ./enable
所以要想切换到某个版本,只需要执行
source /opt/rh/devtoolset-7/enable
可以将对应版本的切换命令写个shell文件放在配了环境变量的目录下,需要时随时切换,或者开机自启
第五步:直接替换旧的gcc
旧的gcc是运行的 /usr/bin/gcc,所以将该目录下的gcc/g++替换为刚安装的新版本gcc软连接,免得每次enable
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-7/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-7/root/bin/g++ /usr/bin/g++
gcc --version
g++ --version
yum install -y make ---如果是纯净系统 需要先安装make 如果不是 ,一般都会自带。
4. 安装boost 1.57.0
(亲身操作使用官方自动安装脚本未能安装成功,显示地址连接失败。)
可以参考我的另一篇文章去官方下载https://blog.csdn.net/m0_37101308/article/details/121952309?spm=1001.2014.3001.5501
也可以直接去https://download.csdn.net/download/m0_37101308/63922261 下载tar包。
安装过程如下
tar -xzvf boost_1_57_0.tar.gz
cd boost_1_57_0
./bootstrap.sh
sudo ./b2
sudo ./b2 install
默认安装头文件/usr/local/include/boost目录下,库文件在/usr/local/lib目录下。
在 /etc/ld.so.conf 中加入 /usr/local/lib 这一行,保存之后,再运行:/sbin/ldconfig -v 更新一下配置即可。
5. cmake 安装
wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz
tar -xvf cmake-3.6.2.tar.gz && cd cmake-3.6.2/
./bootstrap
make
make install
6 . 安装gstore需要的以来环境
yum install -y java-1.8.0-openjdk-devel
yum install -y readline readline-devel
yum install -y libcurl-devel
yum install pkgconfig.x86_64
yum install libuuid-devel
7. 安装gStore
cd gStore
make pre #进度到 顺利完成
make #若编译顺利完成,后会出现 Compilation ends successfully! 结果
bin/ginit #初始化,如果顺利完成,后会出现 system.db is built successfully! 结果
遇到的问题*****
(1) in/ginit: error while loading shared libraries: libboost_thread.so.1.57.0: cannot open shared object file: No such file or directory
找不到boost编译后包,是因为没有在/etc/ld.so.conf 中添加 boost的编译lib地址 “ /usr/local/lib ”
(2) 执行到 bin/ginit 会报错显示 /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
出现这种问题是因为安装了 gcc5.4.0,但未建立软连接
cd /usr/lib64
ll stdlibc++*
以看到当前libstdc++so.6指向19的版本,接下来把刚刚的高版本的复制到这里并重建软链即可
删除旧的软链接
rm libstdc++.so.6
重新建立软链接 (opt是我编译 gcc的路径)
ln -s /opt/gcc-5.4.0/lib64/libstdc++.so.6.0.21 libstdc++.so.6
再执行bin/ginit 成功安装显示如下。
QueryCache cleared
Query time used (minus parsing): 0ms.
Total time used: 1ms.
Insert data result:update num : 1
system.db init successfully! Used 1052 ms
call the delete function for ResultSet
(3) /opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/ld: cannot find -lcurl
collect2: error: ld returned 1 exit status
make: *** [bin/gexport] Error 1
找不到curl的 软链接,查看curl是否已安装,如果没有,则手动安装
wget https://curl.haxx.se/download/curl-7.55.1.tar.gz
tar -xzvf curl-7.55.1.tar.gz
cd curl-7.55.1
./configure
make
make install
手动安装wget 连接超时
curl downloads
https://curl.se/download/
打开链接手动下载。
————————————————
版权声明:本文为CSDN博主「古·狼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_37101308/article/details/121953311
相关文章