编译环境

操作系统: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可以正常编译。

超实用干货(1)-Apache greenplum在aarch64架构体系的适配编译的更多相关文章

  1. Apache web服务器(LAMP架构)

    Apache web服务器(LAMP架构) apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 ...

  2. Httpd服务进阶知识-基于Apache Modele的LAMP架构之Discuz!案例

    Httpd服务进阶知识-基于Apache Modele的LAMP架构之Discuz!论坛案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装依赖包及数据库  博主推荐阅读: ...

  3. Httpd服务进阶知识-基于Apache Modele的LAMP架构之WordPress案例

    Httpd服务进阶知识-基于Apache Modele的LAMP架构之WordPress案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装依赖包及数据库授权 博主推荐阅读 ...

  4. Httpd服务进阶知识-基于Apache Modele的LAMP架构之PhpMyAdmin案例

    Httpd服务进阶知识-基于Apache Modele的LAMP架构之PhpMyAdmin案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常见LAMP应用 PhpMyAdm ...

  5. [转帖]X86_64平台上利用qemu安装aarch64架构的虚拟机

    X86_64平台上利用qemu安装aarch64架构的虚拟机 https://blog.csdn.net/chenxiangneu/article/details/78955462 遇到原作者一样的问 ...

  6. 手机CPU架构体系分类及各大厂商

    手机cpu相关知识,这对于开发Android应用程序适应各个机型有一定的辅助作用 . 手机cpu架构体系分类 指令集可分为复杂指令集(CISC)和精简指令集(RISC)两部分,代表架构分别是x86.A ...

  7. 阿里巴巴飞天大数据架构体系与Hadoop生态系统

    很多人问阿里的飞天大数据平台.云梯2.MaxCompute.实时计算到底是什么,和自建Hadoop平台有什么区别. 先说Hadoop 什么是Hadoop? Hadoop是一个开源.高可靠.可扩展的分布 ...

  8. 「译」JUnit 5 系列:架构体系

    原文地址:http://blog.codefx.org/design/architecture/junit-5-architecture/ 原文日期:29, Mar, 2016 译文首发:Linesh ...

  9. WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇]

    原文:WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇] 在[WS标准篇]中我花了很大的篇幅介绍了WS-MEX以及与它相关的WS规范:WS-Policy.WS-Tra ...

  10. 分布式系统的那些事儿(六) - SOA架构体系

    有十来天没发文了,实在抱歉!最近忙着录视频,同时也做了个开源的后台管理系统LeeCX,目前比较简单,但是后续会把各类技术完善.具体可以点击“原文链接”. 那么今天继续说分布式系统的那些事. 我们现在动 ...

随机推荐

  1. foobar2000 v2.1.4 汉化版(更新日期:2024.04.24)

    foobar2000 v2.1.4 汉化版 -----------------------[软件截图]---------------------- -----------------------[软件 ...

  2. vue前端开发仿钉图系列(7)底部数据列表的开发详解

    底部数据列表主要是记录图层下面对应的点线面数据,点击单元行或者查看或者编辑,弹出右侧编辑页面,点击单元行地图定位到相应的绘图位置.里面的难点1是动态绑定字段管理编辑的字段以及对应的value值,2是点 ...

  3. iOS关于搜索不规则瀑布流布局的实现小结

    最近在项目开发中遇到了不规则搜索布局的问题.之前常用的解决方案是用一个tableview用一个循环动态的加载,唯一的缺点是需要动态的移除,其实也已经足够.https://download.csdn.n ...

  4. Android复习(四)权限—>定义自定义应用权限

    定义自定义应用权限 本文档介绍了应用开发者如何使用 Android 提供的安全功能来定义自己的权限.通过定义自定义权限,应用可以与其他应用共享其资源和功能.如需详细了解权限,请参阅权限概览. 背景 A ...

  5. 云原生周刊:KubeSphere 宣布开源 Thanos 的企业级发行版 Whizard

    开源项目推荐 Admiralty Admiralty 是一个 Kubernetes 控制器系统,可以智能地在多个集群之间调度工作负载.它使用简单,并且易于与其他工具集成. Cozystack Cozy ...

  6. 我在大厂做 CR——如何体系化防控空指针异常

    大家好,我是木宛哥,今天和大家分享下--代码 CR 时针对恼人的空指针异常(NullPointerException)如何做到体系化去防控: 什么是空指针异常 从内存角度看,对象的实例化需要在堆内存中 ...

  7. 常见Linux查看文件、文本命令

    查看文件 find命令 按文件名 find 路径 -nmae "文件名" 按文件类型 find 路径 -type 类型 类型:普通文件 f 目录d 符号链接l 块设备文件b ​ 字 ...

  8. 用JavaScriptt从一个路径字符串中获取文件名

    思路 1.通过'\'关键字用split分割成数组 2.取分割后数组的最后一个就是文件名 3.另外,字符串中\是没意义的,需要2个\\ 相关代码 <script> var a='C:\\Pr ...

  9. C# 单例模式的多种实现

    单例模式介绍 单例模式是一种创建型设计模式,它主要确保在一个类只有一个实例,并提供一个全局访问点来获取该实例.在C#中,有多种方式实现单例模式,每种方式都有其特定的使用场景和注意事项. 设计模式的作用 ...

  10. pjsip编译、说明及vs2022使用示例

    环境: window10_x64 & vs2022 pjsip版本: 2.14.1   之前整理过pjsip 2.10的编译及python使用示例: https://www.cnblogs.c ...