---
title: 飞腾平台编译安装openGauss数据库-官方技术文章-鲲鹏社区
description: 本文主要向大家介绍从环境检查、下载软件包、脚本编译安装到编译后验证，是如何完成的，以及解决在编译安装过程中遇到的问题。
keywords: Gauss,飞腾平台编译,安装,数据库,官方技术文章,鲲鹏社区,环境检查,OS
url: https://www.hikunpeng.com/developer/techArticles/20240228-8?envFlag=1
section: (其他)
---

# 飞腾平台编译安装openGauss数据库-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20240228-8?envFlag=1
描述: 本文主要向大家介绍从环境检查、下载软件包、脚本编译安装到编译后验证，是如何完成的，以及解决在编译安装过程中遇到的问题。
关键词: Gauss,飞腾平台编译,安装,数据库,官方技术文章,鲲鹏社区,环境检查,OS

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

飞腾平台编译安装openGauss数据库

飞腾平台编译安装openGauss数据库

行业应用案例

发表于 2024/02/28

0

## 环境检查

### 1. 检查OS版本

openGauss支持的操作系统：

CentOS 7.6（x86_64 架构）

openEuler-20.03-LTS（aarch64 架构）

openEuler-20.03-LTS（x86_64架构）

Kylin-V10（aarch64 架构）

Kylin-V10（x86_64 架构）

Asianux 7.6（x86_64架构）

FusionOS 22 (aarch64 架构)

FusionOS 22 (x86 架构)

```
cat /etc/os-release
```

操作系统为openEuler-20.03-LTS（aarch64 架构）

### 2. 检查cpu型号

```
lscpu | grep "Vendor ID"
```

安装平台Vendor ID:0x70为飞腾CPU

### 3. 禁用防火墙和selinux

禁用防火墙

```
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl is-enabled firewalld
```

禁用SELINUX

```
/usr/sbin/sestatus -v
```

如果selinux为enable状态，则修改/etc/selinux/config文件：

SELINUX=disabled

或使用下面命令：

```
sed -i '/^SELINUX=.*/ s//SELINUX=disabled/' /etc/selinux/config
```

并重启服务器

### 4. 配置yum源并安装依赖包

上传操作系统iso到/tmp目录

配置本地yum源

```
mkdir /mnt/iso
mount -o loop /tmp/openeuler20.03LTS.iso /mnt/iso
cd /etc/yum.repos.d
vi media.repo
[InstallMedia]
name=openeuler20.03LTS
gpgcheck=0
enabled=1
baseurl=file:///mnt/iso
yum clean all
yum makecache
yum list
yum -y install libaio-devel flex bison ncurses-devel glibc-devel patch openeuler-lsb readline-devel unzip dos2unix vim git wget lrzsz net-tools bzip2 gcc tree zlib*
```

### 5. 安装Python3

建议安装Python3.6+

yum install python3 python3-pip

软链接python命令为python3.7

ln -s /usr/bin/python3.7 /usr/bin/python

python -V

### 6. 设置字符集参数

```
vi /etc/profile
```

### 7. 设置时区和时间

```
[root@localhost ~] timedatectl set-timezone Asia/Shanghai
[root@localhost ~] timedatectl status
```

## 下载软件包

```
cd /soft2/
git clone https://gitcode.com/opengauss/openGauss-server.git openGauss-server -b 5.0.0
wget -c https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_openEuler_arm.tar.gz
```

## 脚本编译安装

### 1. openGauss-server编译

```
tar -xvf openGauss-third_party_binarylibs_openEuler_arm.tar.gz
mv openGauss-third_party_binarylibs_openEuler_arm binarylibs
cd openGauss-server/
sh build.sh -m debug -3rd /soft/binarylibs -pkg
```

-m [debug | release | memcheck]表示可选择三种目标版本：release：代表生成release版本的二进制程序，该版本编译时，配置GCC高级别优化选项，去除内核调试代码，通常用于生产环境或性能测试环境。debug：代表生成debug版本的二进制程序，该版本编译时，增加内核代码调试功能，通常用于开发自测环境。memcheck：代表生成memcheck版本的二进制程序，该版本编译时，在debug版本基础上新增ASAN功能，通常用于定位内存问题。

显示如下内容，表示编译成功。

生成的安装包会存放在./output目录下。

编译和打包日志为：./build/script/makemppdb_pkg.log。

## 编译后验证

编译结束后，可按以下方式对编译后的openGauss进行验证:

### 1. 创建用户

```
groupadd dbgrp
useradd omm -g dbgrp
passwd omm
```

### 2. 使用omm用户，在~/.bashrc中增加以下环境变量

```
su - omm
vi ~/.bashrc
```

使环境变量生效

```
source .bashrc
```

### 3. 建立数据目录和日志目录

```
su - root
chown -R omm:dbgrp /soft2/openGauss-server
su - omm
mkdir ~/data
mkdir ~/log
```

### 4. 数据库初始化

```
su - omm
gs_initdb -D /home/omm/data --nodename=db1
```

初始化日志如下：

```
The files belonging to this database system will be owned by user “omm”.
This user must also own the server process.
The database cluster will be initialized with locale “en_US.UTF-8”.
The default database encoding has accordingly been set to “UTF8”.
The default text search configuration will be set to “english”.
fixing permissions on existing directory /home/omm/data … ok
creating subdirectories … in ordinary occasionok
creating configuration files … ok
selecting default max_connections … 100
selecting default shared_buffers … 1024MB
Begin init undo subsystem meta.
[INIT UNDO] Init undo subsystem meta successfully.
creating template1 database in /home/omm/data/base/1 … The core dump path is an invalid directory
2023-07-20 16:10:19.012 [unknown] [unknown] localhost 281468516106256 0[0:0#0] [BACKEND] WARNING: macAddr is 64174/3171074048, sysidentifier
is 4205755650/3221270315, randomNum is 96513835ok
initializing pg_authid … ok
setting password … ok
initializing dependencies … ok
loading PL/pgSQL server-side language … ok
creating system views … ok
creating performance views … ok
loading system objects’ descriptions … ok
creating collations … ok
creating conversions … ok
creating dictionaries … ok
setting privileges on built-in objects … ok
initialize global configure for bucketmap length … ok
creating information schema … ok
loading foreign-data wrapper for distfs access … ok
loading foreign-data wrapper for log access … ok
loading hstore extension … ok
loading foreign-data wrapper for MOT access … ok
loading security plugin … ok
update system tables … ok
creating snapshots catalog … ok
vacuuming database template1 … ok
copying template1 to template0 … ok
copying template1 to postgres … ok
freezing database template0 … ok
freezing database template1 … ok
freezing database postgres … ok
WARNING: enabling “trust” authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
–auth-local and --auth-host, the next time you run gs_initdb.
Success. You can now start the database server of single node using:
gaussdb -D /home/omm/data --single_node
or
gs_ctl start -D /home/omm/data -Z single_node -l logfile
```

### 5. 启动数据库

```
su - omm
gs_ctl start -D /home/omm/data -Z single_node -l /home/omm/log/opengauss.log
```

启动完毕后可通过 ps -ef | grep gaussdb检查数据库进程情况，或通过 gs_ctl query -D /home/omm/data检查数据库状态，或使用 gsql -d postgres 进入gsql命令行查看数据库的相关信息。

## FAQ

编译安装过程中遇到的问题

FAQ 1：python版本需要3.6+以上版本，操作系统自带的python2.7不符合要求，需要安装python3.7，不然编译脚本错误。

解决方案：

yum安装Python3.7

```
yum install python3 python3-pip
```

软链接python命令为python3.7

```
ln -s /usr/bin/python3.7 /usr/bin/python
```

FAQ 2：一键式脚本编译build.sh使用 -m release编译release版本的二进制程序，初始化数据库报错。

解决方案：

目前还未解决，绕过方案使用-m debug编译debug版本的二进制程序.可以初始化数据库成功。

```
sh build.sh -m debug -3rd /soft/binarylibs -pkg
```

-m [debug | release | memcheck]表示可选择三种目标版本：release：代表生成release版本的二进制程序，该版本编译时，配置GCC高级别优化选项，去除内核调试代码，通常用于生产环境或性能测试环境。

debug：代表生成debug版本的二进制程序，该版本编译时，增加内核代码调试功能，通常用于开发自测环境。

memcheck：代表生成memcheck版本的二进制程序，该版本编译时，在debug版本基础上新增ASAN功能，通常用于定位内存问题。

本页内容
