"); //-->
编译环境
操作系统:EulerOS 2.0 sp8
● 内核:4.19.36
● CPU:aarch64
编译所需软件类别
cmake-3.23.0-rc1.tar.gz
下载地址:
https://cmake.org/files/v3.23/cmake-3.23.0-rc1.tar.gz
gp-xerces-3.1.2-p1.zip
下载地址:
https://github.com/greenplum-db/gp-xer ces/archive/refs/tags/v3.1.2-p1.zip
ninja-1.10.2.zip
下载地址:
https://github.com/ninja-build/ninja/archive /refs/tags/v1.10.2.zip
re2c-3.0.zip
下载地址:
https://github.com/skvadrik/re2c/archive/refs/ta gs/3.0.zip
zstd-1.5.2.tar.gz
下载地址:
https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz
配置yum源,并安装如下依赖包
autoconf
automake
libtool
gcc
curl-devel
bzip2-devel
python-devel
openssl-devel
readline-devel
perl-ExtUtils-Embed
libxml2-devel
openldap-devel
pam
pam-devel
apr-devel
libevent-devel
libyaml
libyaml-devel
libedit-devel
libffi-devel
bison
flex
flex-devel
安装python依赖包
# 使⽤pip 进⾏python包管理,命令如下:
pip install --upgrade pip
pip install --no-cache-dir lockfile paramiko setuptools psutil conan
逐个安装软件列表内容
可以根据每个软件的readme⽂件进⾏安装
编译
编译GreenPlum 需要cmake和gcc,在上⾯操作中已经配置完成,开始前可通过如下命令进⾏确认
检查gcc版本
[root@RI_BDTL ~]# gcc --version
gcc (GCC) 7.3.0
检查cmake版本
[root@RI_BDTL ~]# cmake --version
cmake version 3.23.0-rc1
准备源码包
6.19.1-src-full.tar.gz
下载地址:
https://github.com/greenplum-db/gpdb/releases/download/6.19.1/ 6.19.1-src-full.tar.gz
修改源码 (6.19.1源码中没有对平台判断,修改为aarch64⽀持的指令)
[root@RI_BDTL packages]# tar -zxvf 6.19.1-src-full.tar.gz
[root@RI_BDTL packages]# vi gpdb_src/src/backend/gporca/libgpos/includ e/gpos/utils.h
修改 gpdb_src/src/backend/gporca/libgpos/include/gpos/utils.h 中22⾏和23⾏为:
#define GPOS_ASMFP asm volatile("mov %0, fp" : "=g"(ulp));
#define GPOS_ASMSP asm volatile("mov %0, sp" : "=g"(ulp));
编译,编译命令使⽤的readme中的命令,默认是带orca编译的,这⾥通过 --enable-orca 显示指定了
[root@RI_BDTL packages]# cd gpdb_src
# Configure build environment to install at /usr/local/greenplum-6.19.1
[root@RI_BDTL gpdb_src]# export LD_LIBRARY_PATH=/usr/local/gp-xerces/l ib/ CFLAGS="-I/usr/local/gp-xerces/include" LDFLAGS="-L/usr/local/gp-x erces/lib/"
[root@RI_BDTL gpdb_src]# ./configure --enable-orca --with-perl --withpython --with-libxml --with-gssapi --prefix=/usr/local/greenplum-6.19.1
[root@RI_BDTL gpdb_src]# make -j8
[root@RI_BDTL gpdb_src]# make -j8 install
漫⻓的等待之后,出现如下提示,就说明编译成功了
Greenplum Database installation complete
查看编译结果
[root@RI_BDTL local]# ls -lrt greenplum-6.19.1/
总⽤量 32
drwx------ 3 gpadmin gpadmin 4096 2⽉ 11 15:47 docs
drwx------ 4 gpadmin gpadmin 4096 2⽉ 11 16:11 share
drwx------ 4 gpadmin gpadmin 4096 2⽉ 11 16:14 include
drwx------ 5 gpadmin gpadmin 4096 2⽉ 11 16:14 lib
-rw------- 1 gpadmin gpadmin 491 2⽉ 11 16:14 greenplum_path.sh
drwx------ 2 gpadmin gpadmin 4096 2⽉ 11 16:14 libexec
drwx------ 2 gpadmin gpadmin 4096 2⽉ 11 16:14 sbin
drwx------ 7 gpadmin gpadmin 4096 2⽉ 11 16:14 bin
总结
编译过程并不复杂,难点在于有⼀些依赖包安装的不全,导致编译不成功。
另外就是源码包6.19.1中对aarch64指令集的修改,使GreenPlum可以正常编译。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。