环境准备
openGauss
编译openGauss需要openGauss-server和binarylibs两个组件。
- openGauss-server:openGauss的主要代码。可以从开源社区获取。下载完重命名成openGauss-server。
- binarylibs:openGauss依赖的第三方开源软件,你可以直接编译openGauss-third_party代码获取,也可以从开源社区下载已经编译好的并上传的一个副本。我这里选用开源社区编译好的版本。下载完重命名成binarylibs。
** gcc和cmake都可以不安装*
gcc
gcc需要安装7.3.0以上的版本。
- 环境准备
yum -y install gmp-devel #编译依赖此库
yum -y install mpfr-devel #编译依赖此库
yum -y install libmpc-devel #编译依赖此库
yum -y install bzip2 #编译依赖此库
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.15.tar.bz2 #编译依赖此库
tar -jxvf isl-0.15.tar.bz2
cd isl-0.15
./configure
make
make install
-
gcc源码下载
gcc源码编译
tar xvf gcc-7.3.0.tar.gz
chmod -R 777 gcc-7.3.0
cd gcc-7.3.0
./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j4 #编译挺耗时的,请耐心等待
make install
- 报错及解决办法
gcc-7.3.0/host-x86_64-pc-linux-gnu/gcc/cc1: error while loading shared libraries: libisl.so.15: cannot open shared object file: No such file or directory
make[3]: *** [s-selftest] Error 1
make[3]: Leaving directory `/root/Downloads/gcc-7.3.0/host-x86_64-pc-linux-gnu/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/root/Downloads/gcc-7.3.0'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/root/Downloads/gcc-7.3.0'
找不到库libisl.so
解决方法是:加到"/etc/ld.so.conf"或用"LD_LIBRARY_PATH"。
vi /etc/ld.so.conf #添加库的路径/usr/local/lib/
然后终端命令行执行ldconfig,再重新编译。
cmake
cmake需要3.1.6以上的版本,这里直接下载最新版本。
解压出来的bin目录就有现成的二进制文件。同样软链接到/usr/bin目录。
ln -s /home/pjr/gcc/cmake-3.23.1-linux-x86_64/bin/cmake cmake
编译
在openGauss-server目录下执行
sh build.sh -m debug -3rd /sdc/binarylibs # 编译安装debug版本的openGauss
如下所示编译成功
[root@localhost openGauss-server]# sh build.sh -m debug -3rd /sda/binarylibs/
ROOT_DIR : /sda/openGauss-server
package_internal.sh -m debug -3rd /sda/binarylibs/ -pkg server -mc off -nopkg -pm opengauss
[makemppdb] 22-05-17 05:31:51: Make jobs number : 16
[makemppdb] 22-05-17 05:31:51: script dir : /sda/openGauss-server/build/script
[makemppdb] 22-05-17 05:31:51: Work root dir : /sda/openGauss-server
WARNING: do not separate symbol in debug mode!
[makemppdb] 22-05-17 05:35:13: Begin to make compile.
[makemppdb] 22-05-17 05:43:13: Make compile successfully.
编译后软件安装路径为:/sda/openGauss-server/mppdb_temp_install
编译后的二进制放置路径为:/sda/openGauss-server/mppdb_temp_install/bin
编译日志为:./build/script/makemppdb_pkg.log
启动数据库
导入环境变量,即可进行初始化和启动数据库。
export CODE_BASE=/sda/openGauss-server/
export GAUSSHOME=$CODE_BASE/mppdb_temp_install/
export LD_LIBRARY_PATH=$GAUSSHOME/lib::$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$PATH
source ~/.bashrc #使环境变量生效
建立数据目录和日志目录:
[user@linux sda]$ mkdir ~/data
[user@linux sda]$ mkdir ~/log
[user@linux sda]$ chown -R omm:dbgrp /sda/openGauss-server
数据库初始化:
gs_initdb -D /home/omm/data --nodename=db2
启动数据库:
gs_ctl start -D /home/omm/data -Z single_node -l /home/omm/log/opengauss.log