【基于VirtualBox及openEuler20.03 TLS SP1编译openGauss2.1.0源码】

news2025/1/19 17:21:59

【openEuler 20.03 TLS编译openGauss2.1.0源码】

    • 一、安装环境
    • 二、安装步骤

一、安装环境

项目Value
虚拟机virtualbox
操作系统openEuler 20.03 TLS
openGauss2.1.0
openGauss-third_party2.1.0

二、安装步骤

以下操作需要在root用户下执行

  1. 编辑/etc/selinux/config

    vim /etc/selinux/config
    

    设置:SELINUX=disabled
    该步骤需要重启:reboot

  2. 关闭防火墙

     systemctl disable firewalld.service
     systemctl stop firewalld.service
     systemctl status firewalld
    
  3. 设置字符集参数

    cat >>/etc/profile<<EOF
    export LANG=en_US.UTF-8
    EOF
    

    输入如下命令,使修改生效。

    source /etc/profile
    
  4. 修改python版本并安装libaio包
    之前安装过程中openGauss用户互信,openEuler服务器需要用到Python-3.7.x命令,但是默认Python版本为Python-2.7.x,所以需要切换Python版本。

    cd /usr/bin
    mv /usr/bin/python /usr/bin/python.bak
    ln -s python3 /usr/bin/python
    python -V
    yum install libaio* -y
    
  5. 创建openGauss数据库的安装用户opengauss及其属组dbgrp

    groupadd dbgrp
    useradd -g dbgrp -u 1000 -d /home/opengauss opengauss
    

    修改opengauss用户密码:

    passwd opengauss
    #回车,输入用户密码
    
  6. 创建openGauss源码存放及openGauss安装路径

    mkdir -p /opt/software/openGauss/data
    chown opengauss:dbgrp -R /opt/software
    chmod 755 -R /opt/software
    
  7. 安装git

    sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/openEuler.repo
    yum clean all
    yum makecache
    yum update --allowerasing --skip-broken --nobest -y
    

    最后执行安装git的命令,如下:

    yum install git -y
    

    安装git-lfs,下载git-lfs-3.4.0-1.el7.x86_64.rpm

    rpm -ivh git-lfs-3.4.0-1.el7.x86_64.rpm
    
  8. 下载openGauss源码和openGauss-third_party_binarylibs第三方库,进入到/opt/software目录下 ,下载openGauss2.1.0 源码和下载openGauss-third_party_binarylibs-2.1.0,由于开源软件编译构建耗时长,我们特地使用openGauss-third_party编译构建出了一份binarylibs并压缩上传到了网上,用户可以直接下载获取。下载比较慢,请稍等几分钟:
    下载源码:

    cd /opt/software
    git clone https://gitee.com/opengauss/openGauss-server.git openGauss-server -b 2.1.0
    

    下载第三方依赖:

    wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.1.0/openGauss-third_party_binarylibs.tar.gz
    

    下载完毕后请解压,重命名文件夹为 binarylibs

    tar -zvxf openGauss-third_party_binarylibs.tar.gz
    mv openGauss-third_party_binarylibs binarylibs
    

    至此,/opt/software 目录下已经有了openGauss和第三方库,如下所示:

    ls -l
    # 结果如下
    drwxr-xr-x  7 root root 4.0K Mar 20  2022 binarylibs
    drwxr-xr-x 10 root root 4.0K Jun  5 19:52 openGauss
    drwxr-xr-x 12 root root 4.0K Jun  5 19:52 openGauss-server
    -rwxr-xr-x  1 root root 2.6G Mar 20  2022 openGauss-third_party_binarylibs.tar.gz
    
  9. 安装编译openGauss-server所需要的第三方依赖库,具体如下所示:

    yum install -y libaio-devel ncurses-devel pam-devel libffi-devel libtool libtool-devel libtool-ltdl openssl-devel bison golang dkms python3-devel patch autoconf readline-devel gcc-c++ libstdc++-devel automake texinfo indent byacc cmake diffutils help2man gettext-devel readline-devel m4
    

    具体可以参考:版本编译

  10. 手动安装lsb_release
    下载openeuler-lsb-5.0-1.oe2203.src.rpm包并上传到/root目录下
    执行:rpm -ihv openeuler-lsb-5.0-1.oe2203.src.rpm,该命令执行完成后,会在当前目录下生成rpmbuild目录,执行:/root/rpmbuild/SOURCES,进入rpmbuild目录会看到openeuler-lsb-5.0.tar.bz2,将其解压缩,执行:tar -xvf openeuler-lsb-5.0.tar.bz2,进入解压后的目录openeuler-lsb-5.0,将其中的lsb_release复制到/usr/bin目录下,具体命令如下:

    rpm -ihv openeuler-lsb-5.0-1.oe2203.src.rpm
    cd /root/rpmbuild/SOURCES
    tar -xvf openeuler-lsb-5.0.tar.bz2
    cd openeuler-lsb-5.0
    cp lsb_release /usr/bin/lsb_release
    

    验证lsb_release是否已经安装成功,执行:

    [root@sjmopengauss02 ~]# lsb_release -a
    LSB Version:    n/a
    Distributor ID: openEuler
    Description:    openEuler release 20.03 (LTS)
    Release:        20.03
    Codename:       LTS
    [root@sjmopengauss02 ~]#
    
  11. 手动安装flex-2.5.39,将flex-2.5.39.tar.bz2上传到虚拟机,解压编译安装即可

    cd /root
    tar -xvf flex-2.5.39.tar.bz2
    cd flex-2.5.39/
    ./configure
    make -j4
    make install -j4
    ln -s /usr/local/bin/flex /usr/bin/flex
    flex --version
    
  12. 修改openGauss源代码所在目录及其子目录的用户及其用户组以及权限,执行:

    chown opengauss:dbgrp -R /opt
    chmod 755 -R /opt
    

以下是在opengauss用户下操作

  1. 以opengauss用户登录ECS】配置环境变量,编辑~/.bashrc文件,在该文件末尾添加如下所示内容:

    export CODE_BASE=/opt/software/openGauss-server     # openGauss-server源码的路径
    export BINARYLIBS=/opt/software/binarylibs    # binarylibs的路径
    export GAUSSHOME=/opt/software/openGauss/     # openGauss安装路径,可修改成你自己的
    export GCC_PATH=$BINARYLIBS/buildtools/openeuler_x86_64/gcc7.3/
    export CC=$GCC_PATH/gcc/bin/gcc
    export CXX=$GCC_PATH/gcc/bin/g++
    export LD_LIBRARY_PATH=$GAUSSHOME/lib:$GCC_PATH/gcc/lib64:$GCC_PATH/isl/lib:$GCC_PATH/mpc/lib/:$GCC_PATH/mpfr/lib/:$GCC_PATH/gmp/lib/:$LD_LIBRARY_PATH
    export PATH=$GAUSSHOME/bin:$GCC_PATH/gcc/bin:$PATH
    

    环境变量生效,执行:source ~/.bashrc

  2. 配置openGauss源码】进入/opt/software/openGauss-server目录下,选择版本进行configure。我们这里选择debuge版本,执行如下代码:

    ./configure --gcc-version=7.3.0 --enable-mot CC=g++ CFLAGS='-O0' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib
    
  3. 编译并安装openGauss】当前一步骤执行成功后,在/opt/software/openGauss-server目录下执行:

    make -j4
    

    编译成功的结果如下图所示:
    在这里插入图片描述
    安装openGauss

    make install -j4
    

    安装成功结果如下信息提示:

    make[1]: Leaving directory '/opt/software/openGauss-server/contrib/hstore'
    openGauss installation complete.
    
    1. 初始化openGauss数据库】当安装openGauss成功后,需对其进行数据初始化, 在初始化数据库时,需要设置数据库密码,并且要使用复杂密码,如下命令。gs_initdb -D $PGDATA --nodename=hostname --locale="en_US.UTF-8" -Atrust -w {password},具体可参考如下命令:其中–nodename后面的hostname需要修改成你自己ecs的主机名称
    gs_initdb -D /opt/software/openGauss/data --nodename=openeuler01 --locale="en_US.UTF-8" -Atrust -w 'openGauss@1234'
    

    初始化成功截图如下所示:
    在这里插入图片描述

  4. 启动数据库

    gs_ctl start -D /opt/software/openGauss/data -Z single_node -l logfile 
    

    成功启动结果如下图所示:
    在这里插入图片描述

  5. 登录数据库

    gsql -d postgres -p 5432 -r
    

    成功登录截图:
    在这里插入图片描述

  6. 创建数据库db01,执行:create database db01;
    在这里插入图片描述

  7. 退出数据库,执行:\q

至此已经完成了基于openEuler20.03TLS编译openGauss-2.1.0的全部工作。如本文对您有所帮助,麻烦动动您发财的手指点个赞或者转发,感谢支持~~~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1340010.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《深入理解C++11:C++11新特性解析与应用》笔记四

第四章 新手易学&#xff0c;老兵易用 4.1 右尖括号>的改进 在 C98 中&#xff0c;有一条需要程序员规避的规则:如果在实例化模板的时候出现了连续的两个右尖括号 >&#xff0c;那么它们之间需要一个空格来进行分隔&#xff0c;以避免发生编译时的错误。C98 会将>&g…

uni-app condition启动模式配置

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

【Python】python 截取特定字符串前面的内容

Python截取特定字符串前面的内容 简介 本文将教会初学者如何使用Python来截取特定字符串前面的内容。Python提供了强大的字符串处理功能,可以轻松地实现这个需求。下面是整个流程的步骤: 在截取特定字符串前面的内容之前,我们首先需要找到要截取的特定内容的位置。我们可以使…

PHP的Laravel的数据库迁移

1.默认迁移文件 2.数据库迁移 在终端输入以下代码 php artisan migrate 我的报错啦&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 数据库里面只有两张表&#xff0c;实际上应该有四张的&#xff01;&#xff01;&#xff01; 解决方法&#xff1a; 反正表已…

ASUS华硕ROG幻16 2023款GU603VU VV VI笔记本电脑原厂Win11.22H2系统

链接&#xff1a;https://pan.baidu.com/s/1AgevUZleCHBJgCBcIp5CFQ?pwdhjxy 提取码&#xff1a;hjxy 华硕笔记本2023款幻16原厂Windows11系统自带所有驱动、出厂主题壁纸、Office办公软件、MyASUS华硕电脑管家、Armoury Crate奥创控制中心等预装程序 文件格式&#xff1…

【日志系列】什么是分布式日志系统?

✔️什么是分布式日志系统&#xff1f; 现在&#xff0c;很多应用都是集群部署的&#xff0c;一次请求会因为负载均衡而被路由到不同的服务器上面&#xff0c;这就导致一个应用的日志会分散在不同的服务器上面。 当我们要向通过日志做数据分析&#xff0c;问题排查的时候&#…

室内设计师效果图云渲染好?还是本地渲染好?

室内设计师在设计项目中经常面临一个关键的技术选择&#xff1a;使用云渲染服务或本地渲染完成效果图渲染呢&#xff1f;每种方式都有其独的优势与不足&#xff0c;且影响整个设计的完成速度、质量和成本。当然还有部分人群不知道云渲染是什么&#xff1f;本文整理关于云渲染的…

MySQL GTID 主从错误

错误 搭建主从出现以下错误 Last_IO_Error: The replication receiver thread cannot start because the master has GTID_MODE OFF and this server has GTID_MODE ON. 原因 MySQL主从的 Master 和 Slave 必须 同时开启或者关闭 enforce-gtid-consistency和 gtid-mode 功能…

k8s的二进制部署和网络类型

k8s的二进制部署 master01&#xff1a;192.168.233.10 kube-apiserver kube-controller-manager kube-scheduler etcd master02&#xff1a;192.168.233.20 kube-apiserver kube-controller-manager kube-scheduler node01&#xff1a;192.168.233.30 kubelet kube-proxy etc…

java并发编程六 ReentrantLock,锁的活跃性

多把锁 一间大屋子有两个功能&#xff1a;睡觉、学习&#xff0c;互不相干。 现在小南要学习&#xff0c;小女要睡觉&#xff0c;但如果只用一间屋子&#xff08;一个对象锁&#xff09;的话&#xff0c;那么并发度很低 解决方法是准备多个房间&#xff08;多个对象锁&#xf…

echart地图的小demo12.27

图形&#xff1a; DataV.GeoAtlas地理小工具系列 点击以上链接进入--》 再点击箭头---》复制坐标到文件&#xff1a; 取名为 china.json中 &#xff08;文件名自定义&#xff09; <template><div class"map" ref"chartMap">地图</div>…

【Pytorch】学习记录分享9——PyTorch新闻数据集文本分类任务实战

【Pytorch】学习记录分享9——PyTorch新闻数据集文本分类任务 1. 认为主流程code2. NLP 对话和预测基本均属于分类任务详细见3. Tensorborad 1. 认为主流程code import time import torch import numpy as np from train_eval import train, init_network from importlib impo…

Neural Networks 期刊投稿指南

一 简介 这是国际神经网络学会、欧洲神经网络学会和日本神经网络学会的官方期刊。 论文类型 文章&#xff1a; 原创的、全文长度的文章将被考虑&#xff0c;前提是它们除了摘要形式外尚未发表&#xff0c;并且没有同时在其他地方进行审查。作者可以自愿但不是必须建议一位编辑…

<JavaEE> TCP 的通信机制(二) -- 连接管理(三次握手和四次挥手)

目录 TCP的通信机制的核心特性 三、连接管理 1&#xff09;什么是连接管理&#xff1f; 2&#xff09;“三次握手”建立连接 1> 什么是“三次握手”&#xff1f; 2> “三次握手”的核心作用是什么&#xff1f; 3&#xff09;“四次挥手”断开连接 1> 什么是“…

NineData产品功能重点发布(11月下+12月上)

12 月上半月 1.1 SQL 任务支持 MongoDB 介绍&#xff1a;SQL 任务功能已支持 MongoDB 数据源&#xff0c;可以通过 SQL 任务发起对 MongoDB 的变更申请&#xff0c;支持立即执行或定时执行。 场景&#xff1a; 安全变更&#xff1a;需要对企业成员提交的数据变更进行预审的场…

「Kafka」入门篇

「Kafka」入门篇 基础架构 Kafka 快速入门 集群规划 集群部署 官方下载地址&#xff1a;http://kafka.apache.org/downloads.html 解压安装包&#xff1a; [atguiguhadoop102 software]$ tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/修改解压后的文件名称&#xff1a; [a…

哪个品牌的运动耳机比较好?蓝牙无线运动耳机推荐

​在运动时&#xff0c;一副合适的耳机能够让你的运动体验提升到一个新的层次。运动耳机需要具备耐用性、稳定性和优秀的音质&#xff0c;以适应各种运动场景。考虑到这些要求&#xff0c;我将为大家推荐几款在运动场景中表现优异的耳机&#xff0c;它们将是你运动时的理想伴侣…

PowerShell对象——数据的另一个名称

PowerShell对象—数据的另一个名称 实验 要求&#xff1a;需要运行PowerShell v3 或更新版本PowerShell的计算机 任务&#xff1a; 找出生成随机数字的Cmdlet 找出显示当前时间和日期的Cmdlet 任务#2的Cmdlet产生的对象类型是什么&#xff1f;&#xff08;由Cmdlet产生的对…

【Linux基础开发工具】Linux调试器-gdb

目录 前言 1. 背景 2. 基本使用 总结 前言 GDB&#xff08;GNU Debugger&#xff09;是一个功能强大的开源调试器&#xff0c;它用于调试C、C等程序&#xff0c;在Linux环境下软件开发的过程中&#xff0c;调试是一个至关重要的环节。无论是在开发新的软件还是维护现有的代…

linux cuda环境搭建

1&#xff0c;检查驱动是否安装 运行nvidia-smi&#xff0c;如果出现如下界面&#xff0c;说明驱动已经安装 记住cuda版本号 2&#xff0c;安装cudatoolkit 上官网CUDA Toolkit Archive | NVIDIA Developer 根据操作系统选择对应的toolkit 如果已经安装了驱动&#xff0c;选…