开源软件编译构建

开源软件编译构建

openGauss的编译,需要提前把所依赖的开源第三方软件进行编译和构建。这些开源第三方软件存放在代码openGauss-third_party代码仓中,用户下载完毕之后应用git lfs pull获取代码仓中的大文件,并且用户通常只需要构建一次。若存在开源软件版本更新,则需要重新构建。

由于此步骤耗时较长,我们使用openGauss-third_party编译构建出了一份binarylibs,用户可以参考3.1.1代码下载 直接下载获取。

表 1 openGauss开源三方件编译前置软件要求

所需软件

建议版本

python3

建议版本:3.6

python3-dev

建议版本:-3

pam-devl

建议版本:1.1.8-1.3.1

ncurses-devel

建议版本:5.9-13.20130511

libffi-dev

建议版本:3.1

patch

建议版本:2.7.1-10

libtool

建议版本:2.4.2及以上

同时需要下载gcc8.2.0的源码包gcc-8.2.0.zip或者gcc-8.2.0.tar.gz,并将其拷贝至对应位置。例如,开源三方件下载目录为/sda/openGauss-third_party,则需要将gcc的源码包拷贝至/sda/openGauss-third_party/buildtools/gcc/路径下。在安装完表1中的软件、gcc8.2.0的源码包下载并拷贝至对应的路径后,请将python默认版本指向python3.x并执行如下操作:

  1. 执行如下命令进入内核依赖的开源第三方软件目录,进行开源第三方软件的编译和构建,产生相应的二进制程序或库文件。/sda/openGauss-third_party为开源第三方软件下载目录。

    1. [user@linux sda]$ cd /sda/openGauss-third_party/build
    2. [user@linux build]$ sh build_all.sh
  2. 用户执行以上命令之后,可以自动生成数据库编译所需的开源第三方软件,如果想单独的生成某个开源三方软件,可以进入对应的目录,执行build.sh脚本,如:

    1. [user@linux sda]$ cd /sda/openGauss-third_party/dependency/openssl
    2. [user@linux openssl]$ sh build.sh

    即可编译生成openssl

    开源软件编译构建 - 图1 说明:
    相关的报错日志可以查看对应的build目录下对应名字的log以及对应模块下的log,如dependency模块下的openssl的相关编译安装日志可以查看:
    - /sda/openGauss-third_party/build/dependency_build.log
    - /sda/openGauss-third_party/dependency/build/openssl_build.log
    - /sda/openGauss-third_party/dependency/openssl/build_openssl.log

编译构建结果

执行上述脚本,最终编译构建出的结果会存放在openGauss-third_party同级的binarylibs目录。这些文件会在后面编译openGauss-server时使用到。