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        #进度到100% 顺利完成
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 downloadshttps://curl.se/download/

打开链接手动下载。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

古·狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值