centos7安装部署gStore以及排坑的心酸过程

您所在的位置:网站首页 g·store下载地址 centos7安装部署gStore以及排坑的心酸过程

centos7安装部署gStore以及排坑的心酸过程

2024-07-12 07:30| 来源: 网络整理| 查看: 265

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/

打开链接手动下载。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3