麒麟Kylin系统适配gStore图数据库系统

大憨熊 提交于 2020-07-28 08:26:11

麒麟Kylin系统适配gStore图数据库系统

作者: 梁剑明
日期: 2020年07月17日
适配系统版本 :Kylin 4.0
内核版本 :aarch64
gStore版本 :V0.8




1.环境要求

适配gStore图数据库系统V0.8版本,环境需求如下:

项目 需求
操作系统 Linux, 例如CentOS, Ubuntu、Kylin等
架构 x86_64
磁盘容量 根据数据集的大小
内存大小 根据数据集的大小
glibc 必须安装 version >= 2.14
gcc 必须安装 version >= 4.8
g++ 必须安装 version >= 4.8
make 必须安装
boost 必须安装 version >= 1.54
readline 必须安装
readline-devel 必须安装
libcurl-devel 必须安装
openjdk 如果使用Java api,则需要
openjdk-devel 如果使用Java api,则需要
requests 如果使用Python http api,则需要
node 如果使用Nodejs http api则需要 version >=10.9.0
curl-devel 如果使用php http api,则需要
pthreads 如果使用php http api,则需要
realpath 如果使用gconsole,则需要
ccache 可选,用于加速编译

2.安装环境准备

2.1 zip/unzip 安装

判断zip/unzip 是否安装

dpkg -s unzip或者unzip -v 

如果没有安装,则安装

sudo apt-get install unzip zip

2.2 jdk安装

判断jdk是否安装

java -version

如果没有安装,则安装

sudo apt-get install openjdk-8-jdk

2.3 gc++安装

判断gc++是否安装

g++ --version
gcc --version

如果没有安装,则安装

sudo apt-get install gcc
sudo apt-get install g++	

2.4 readline安装

判断readline是否安装

dpkg -s readline

如果没有安装,则安装

sudo apt-get install libreadline-dev

2.5 boost库安装

判断boost是否安装:

dpkg -s boost	

如果没有安装,则安装:
1. 版本:1.54.0
2. 地址:https://nchc.dl.sourceforge.net/project/boost/boost/1.54.0/boost_1_54_0.tar.gz
3. centos boost库默认版本为1.53.0,需要按照下面安装脚本安装boost_1_54_0或以上版本。


安装脚本如下:

wget https://nchc.dl.sourceforge.net/project/boost/boost/1.54.0/boost_1_54_0.tar.gz
tar -xzvf boost_1_54_0.tar.gz
cd boost_1_54_0
./bootstrap.sh   
sudo ./b2        
sudo ./b2 install  

最后:需要在 /etc/profile 文件最后加上 export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH,之后执行 source /etc/profile 更新环境。

Kylin系统可以直接执行以下命令安装:

sudo apt install -y libboost-all-dev

2.6 curl库安装

判断curl是否安装

curl --version

如果没有安装,则安装:
1.版本:7.55.1
2.地址:https://curl.haxx.se/download/curl-7.55.1.tar.gz

安装脚本 (centos系统和ubuntu系统一样)

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  

或者直接用下面命令安装

sudo apt install -y curl libcurl4 libcurl4-openssl-dev

3.gStore获取

  • github上获取
git clone https://github.com/pkumod/gStore
  • gitee上获取
git clone https://gitee.com/PKUMOD/gStore.git

注意:如果你的系统没有安装git,请执行安装:

sudo apt install git

4.gStore编译安装

下载好gStore之后,就可以进行编译了!

4.1 进入gStore 目录

cd gStore

4.2 预编译

make pre

注意:如果有多版本gcc,需要在gStore目录下执行cmake -D CMAKE_CXX_COMPILER="/usr/local/bin/gcc" tools/antlr4-cpp-runtime-4/,然后再make pre

4.3 编译

make

如果编译正确最后会出现Compilation ends successfully!结果,可能会发生以下问题:

在这里插入图片描述

此时,我们需要对gStore目录下的makefile进行相应的修改,添加--bulid=arm-linux --host=arm--linux ,如下图所示,添加完以后再继续make!

在这里插入图片描述

继续编译,可能还会发生以下问题,我们需修改gStore目录下的tools/libantlr3c-3.4下的configure文件:

在这里插入图片描述

解决方法:删除原来的tools/libantlr3c-3.4.tar.gz压缩包,找到configure文件的10169行,把if-fi模块注释掉,wq!保存该文件,重新打包libantlr3c-3.4到libantlr3c-3.4.tar.gz,修改的结果如下:

在这里插入图片描述

命令汇总如下:

cd tools/libantlr3c-3.4/
vim configure
cd ..
rm -rf libantlr3c-3.4.tar.gz
tar -zcvf libantlr3c-3.4.tar.gz  libantlr3c-3.4
cd ..

改完configure文件以后,继续编译,出现了compilation ends successfully!,编译成功的结果如下:

在这里插入图片描述

4.4 初始化system.db

bin/ginit

到此,我们的gStore就安装完毕了!感谢大家的支持,另外大家还可以到gStore官网获取更多关于gStore的信息。


5. 天津超算适配gStore

天津超算的天河三原型机比较特殊,所以另外写了一个标题来介绍,特殊的地方如下:

  • 机器具有多版本编译器
  • 机器具有不同版本编译器编译出来的boost、readline。

下面我们就愉快地安装开始安装吧!

5.1 下载gStore

git clone https://gitee.com/PKUMOD/gStore.git

gitee的速度会比github快很多哦!

5.2 引入boost、readline等module

module purge
module add GCC/8.3.0
module add readline/8.0-gcc4.9.3
module add boost/1.67.0-gcc8.2.0

命令具体解释请查看郑刚老师博客

5.3 预编译

cd gStore
make pre

可能会出现以下问题
在这里插入图片描述

请修改 gStore的makefile文件,添加--bulid=arm-linux --host=arm-linux CC=/usr/bin/gcc,修改部分如下:
在这里插入图片描述
上边指定了编译器,改完以后,继续make pre就可以完成预编译了!

5.4 编译

make

可能会遇到以下问题:
在这里插入图片描述
解决方法:修改变量library,添加-L/vol7/software/curl/7.59.0-gcc4.9.3/lib - lcurl -L/vol7/software/readline/8.0-gcc4.9.3/lib -lreadline -lncurses,修改gStore下的makefile文件如下:
在这里插入图片描述
保存之后,然后又继续make了!



可能还会遇到以下问题:
在这里插入图片描述解决方法:进入 cd api/http/cpp,编辑Makefile文件 vim Makefile,添加-I/vol7/software/curl/7.59.0-gcc4.9.3/include到如下图位置,在该目录下进行make!
在这里插入图片描述
接着,退出到gStore根目录,继续make!


编译成功的结果如下:
在这里插入图片描述
恭喜您!完成了gStore的安装!!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!