图数据库系统gStore v0.9适配鲲鹏920服务器教程
作者:梁剑明
后修改时间:2021年05月03日
文档描述:帮助您在ARM架构的操作系统上安装gStore v0.9
注意:离线环境下,需要全部下好安装包,后上传到服务器进行安装
1.环境需求
项目 | 需求 |
---|---|
操作系统 | Linux, 例如CentOS, Ubuntu等 |
架构 | 鲲鹏920 ARM架构 |
磁盘容量 | 根据数据集的大小 |
内存大小 | 根据数据集的大小 |
glibc | 必须安装 version >= 2.14 |
gcc | 必须安装 version >= 5.0 |
g++ | 必须安装 version >= 5.0 |
make | 必须安装 |
cmake | 必须安装 |
pkg-config | 必须安装 |
uuid | 必须安装 |
boost | 必须安装 version >= 1.56 |
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 gcc和g++ 安装
判断是否安装:
$ gcc -v # gcc版本
$ g++ -v # g++版本
如果没安装,以gcc 5.4.0为例,请按照以下步骤安装:
下载地址:
gcc5.4.0:http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.4.0/gcc-5.4.0.tar.gz
gmp:ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2
mpfr:http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2
mpc:http://www.multiprecision.org/downloads/mpc-0.8.1.tar.gz
$ tar xjf gmp-4.3.2.tar.bz2
$ ln -sf gmp-4.3.2 gmp
[2] 解压并链接mpfr(在gcc5.4.0解压目录下执行以下命令)
$ tar xjf mpfr-2.4.2.tar.bz2
$ ls -sf mpfr-2.4.2 mpfr
[3] 解压并链接mpc(在gcc5.4.0解压目录下执行以下命令)
$ tar xzf mpc-0.8.1.tar.gz
$ ln -sf mpc-0.8.1 mpc
在gcc解压目录下,执行以下命令:
$ 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
[5] 安装完成以后,加入环境变量 vim /etc/profile
,在文件末尾加入:
export PATH=/opt/gcc-5.4.0/bin:$PATH
[6] 使之立即生效
source /etc/profile
2.2 cmake安装
检查是否安装,该系统已安装v3.12.1:
$ cmake --version
如果没有,请按照以下步骤安装:
版本:3.6.2
地址: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
2.3 jdk 安装
检查是否安装:
$ java --version
该系统默认安装了jdk1.8,但是没有javac命令,需重新配置,移步官网下载https://www.oracle.com/java/technologies/javase-jdk16-downloads.html
接下来配置jdk
[1] 解压jdk到相应目录:
$ tar -zvxf jdk-16.0.1_linux-aarch64_bin.tar.gz
$ mv jdk-16.0.1_linux-aarch64_bin jdk
$ mv jdk /usr/local/
$ cd /usr/local/
[2] 编辑profile文件vim /etc/profile
,在文件末尾添加环境变量:
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile
使之立即生效2.4 readline安装
检查readline是否安装:
$ readline
$ rpm -ivh readline-***.aarch64.rpm --nodeps --force
2.5 boost安装
如果没有安装,则安装:(以版本 1.56.0 为例)
http://jaist.dl.sourceforge.net/project/boost/boost/1.56.0/boost_1_56_0.tar.gz
$ gcc -v # 必须检查gcc为5.0以上再执行后续操作
$ tar -xzvf boost_1_56_0.tar.gz
$ cd boost_1_56_0
$ sudo ./bootstrap.sh --prefix=/opt/boost-1.56.0 --with-toolset=gcc
$ sudo ./b2
$ sudo ./b2 install --prefix=/opt/boost-1.56.0
[3] 安装成功后,vim /etc/profile
,在文件末尾添加:
export LD_LIBRARY_PATH=/opt/boost-1.56.0/lib:$LD_LIBRARY_PATH
export CPATH=/opt/boost-1.56.0/include:$CPATH
[4] 使之立即生效
$ source /etc/profile
2.6 curl安装
判断curl是否安装:
$ curl --version
如果没有安装,则按照以下步骤安装:
[1] 下载地址:https://curl.haxx.se/download/curl-7.55.1.tar.gz
[2] 安装命令:
$ tar -xzvf curl-7.55.1.tar.gz
$ cd curl-7.55.1
$ ./configure --prefix=/opt/curl-7.55.1
$ make
$ make install
[3] 配置环境变量vim /etc/profile
$ export LD_LIBRARY_PATH=/opt/curl-7.55.1/lib:$LD_LIBRARY_PATH
$ export PATH=/opt/curl-7.55.1/bin:$PATH
[4] 使之立即生效
$ source /etc/profile
2.7 pkg-config安装
2.8 uuid 安装
直接使用x86系统版本的rpm进行安装,进入uuid文件夹:
rpm -ivh *.rpm --nodeps --force
3.安装gStore
切换到gStore目录 cd gStore
执行命令:
$ make pre
$ make #若编译顺利完成,后会出现 Compilation ends successfully! 结果
$ bin/ginit #初始化,如果顺利完成,后会出现 system.db is built successfully!
4.问题及解决方案
4.1找不到readline 头文件,如下图
因为x86的rpm包无法在该ARM架构使用,请按照教程下载aarch 版本的rpm包进行安装即可解决
4.2 找不到boost的相关头文件,如下图:
解决办法,在gStore根目录vim makefile
找到变量:CFLAGS = -c -Wall -O2 -pthread -std=c++11
,改为:CFLAGS = -c -Wall -O2 -pthread -std=c++11 -I/opt/boost-1.56.0/include
,然后继续make
。
4.3 找不到软件链接库,如下图
-L./lib -L/opt/boost-1.56.0/lib
,修改后为:library = -lreadline -L./lib -L/opt/boost-1.56.0/lib -L/usr/local/lib -L/usr/lib/ -lantlr4-runtime -lgcov -lboost_thread -lboost_filesystem -lboost_system -lboost_regex -lpthread -I/usr/local/include/boost -lcurl
,注意添加的路径为安装boost的相关路径。4.4 cannot find -lclient
进入cd api/http/cpp
,执行make
,然后又发生一下问题:
vim Makefile
,把变量CC修改为:CC= g++ -std=c++11 -I/opt/curl-7.55.1/include
,注意查找自己安装curl的路径。然后继续make
,就有client.o文件了!然后,在gStore 根目录继续
make
相关文章