当前位置: 首页 > news >正文

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

【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.servicesystemctl stop firewalld.servicesystemctl 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的全部工作。如本文对您有所帮助,麻烦动动您发财的手指点个赞或者转发,感谢支持~~~~~

相关文章:

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

【openEuler 20.03 TLS编译openGauss2.1.0源码】 一、安装环境二、安装步骤 一、安装环境 项目Value虚拟机virtualbox操作系统openEuler 20.03 TLSopenGauss2.1.0openGauss-third_party2.1.0 二、安装步骤 以下操作需要在root用户下执行 编辑/etc/selinux/config vim /etc/s…...

hibernate 使用注解+拦截器实现自动开启、关闭session,提交、回滚事务

hibernate 使用注解+注解拦截器实现自动开启、关闭session,开启、提交、回滚事务 项目为springboot项目 ,springboot版本为:2.5.11, hiernate-core5.4.3 版本。spring-xxx 等为5.3.17版本 注意:在spring-xxx4.x版本+ hiernate-core5.x.x版本中,hibernate的配置 true是有效的…...

Solidworks学习笔记

本内容为solidworks的学习笔记&#xff0c;根据自己的理解进行记录&#xff0c;部分可能不正确&#xff0c;请自行判断。 学习视频参考&#xff1a;【SolidWorks2018视频教程 SW2018中文版软件基础教学知识 SolidWorks自学教程软件操作教程 sw视频教程 零基础教程 视频教程】 h…...

Redis经典五大类型源码及底层实现(一)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理、数据库技术&#x1f525;如果感觉博主的文章还不错的…...

数据库闭包求法 附相关习题及解析

闭包就是由一个属性直接或间接推导出的所有属性的集合 以下是写的比较科学规范的闭包求解方法&#xff0c;设X和Y均为关系R的属性集的子集&#xff0c;F是R上的函数依赖集&#xff0c;若对R的任一属性集B&#xff0c;一旦X→B&#xff0c;必有B⊆Y&#xff0c;且对R的任一满足…...

idea利用JRebel插件,无需重启,实现Spring Boot项目热重载,节省开发时间和精力!

插件介绍 官方介绍 翻译过来的意思是&#xff1a; JRebel 是一款提高开发效率的工具&#xff0c;允许开发者立即重新加载代码更改。它跳过了在Java开发中常见的重新构建、重启和重新部署循环。JRebel 能够让开发者在相同的时间内完成更多工作&#xff0c;并且在编码时能够保持…...

学习体系结构 - AArch64内存管理

学习体系结构 - AArch64内存管理 Learn the architecture - AArch64 memory management Version 1.2 个人的英语很一般&#xff0c;对拿不准的翻译校准在后面添加了英文原文。 1、 概述 本指南介绍了AArch64中的内存转换&#xff0c;这是内存管理的关键。它解释了如何将虚拟地…...

Vue3 精通指南:如何在 setup 函数中巧妙利用 Vuex

在 Vue 3 中&#xff0c;如果你使用了组合式 API&#xff08;Composition API&#xff09;&#xff0c;你可以通过 setup 函数来设置组件的响应式状态和逻辑。要在 setup 函数中访问 Vuex 的 $store&#xff0c;你可以使用 useStore 钩子&#xff0c;它是 Vuex 4 为 Vue 3 提供…...

Linux 服务器安全策略技巧:启用账户锁定策略

Linux 服务器安全策略技巧:启用账户锁定策略 在Linux服务器上,启用账户锁定策略是一种重要的安全措施。通过锁定账户,可以防止未经授权的访问和恶意活动。本文将介绍如何在Linux服务器上启用账户锁定策略。 什么是账户锁定策略? 账户锁定策略是一种安全措施,用于限制对…...

野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植

摘要 基于野火霸道-V23.2寸屏的开发板&#xff0c;下载器为STLINK分为两个版本&#xff0c;FreeRTOS和裸机版本 裸机 裸机准备 lvgl v8.2版本的源码野火的《触摸画板-3.2寸》与《基本定时器》的代码例程 移植 将基本定时器代码移植到触摸画板-3.2寸的例程中&#xff0c;…...

操作教程|MeterSphere UI测试+VNC:简单、快捷地查看UI测试实时执行详情

编者注&#xff1a;本文为CSDN博主hxe116的原创文章。 原文链接为&#xff1a;https://blog.csdn.net/hxe116/article/details/134714960?spm1001.2014.3001.5502 作为一款一站式的开源持续测试平台&#xff0c;MeterSphere涵盖了测试跟踪、接口测试、UI测试和性能测试等功能…...

工具--Git详解

在当今的数字时代&#xff0c;版本控制系统已成为开发人员和团队之间协作的重要工具。其中&#xff0c;Git是最受欢迎的版本控制系统之一。它不仅在软件开发中广泛使用&#xff0c;还被应用于许多其他领域。在这篇博客中&#xff0c;我们将深入了解Git的工作原理、基本命令以及…...

windows server 2022 启用SYN攻击保护

2023.12.28 SYN攻击是什么&#xff1a; SYN攻击是黑客攻击的常用手段&#xff0c;也是最容易被利用的一种攻击手法&#xff0c;属于DDoS攻击的一种。它利用TCP协议缺陷&#xff0c;通过发送大量的半连接请求&#xff0c;耗费CPU和内存资源。 SYN攻击包括大量TCP连接的第一个包&…...

汽车保养软件app开发步骤

“增强您的动力&#xff0c;为您的旅程加油——每一刻都讲述着关爱的故事。构建汽车维护软件app&#xff0c;为您的车辆提供数字化的维修站&#xff0c;从而开启长寿之路。智能驾驶、互联驾驶、自信驾驶。” 疯狂地搜索旧收据并猜测上次换油时间的日子已经一去不复返了。如果您…...

【HarmonyOS】ArkTS语言介绍与组件方式运用

从今天开始&#xff0c;博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”&#xff0c;对于刚接触这项技术的小伙伴在学习鸿蒙开发之前&#xff0c;有必要先了解一下鸿蒙&#xff0c;从你的角度来讲&#xff0c;你认为什么是鸿蒙呢&#xff1f;它出现的意义又是…...

音频播放软件Foobar2000 mac特点介绍

Foobar2000 mac是一款高度可定制的音频播放器&#xff0c;适用于Windows平台。它支持各种音频格式&#xff0c;包括MP3、FLAC、AAC、WMA等&#xff0c;同时也支持各种音频插件和效果器&#xff0c;可以提供更好的音质和用户体验。 Foobar2000 mac软件特点 1. 高度可定制&#…...

Oracle动态性能视图 v$parameter 和 v$parameter2 的区别

v$parameter 的说明见这里&#xff1a; V$PARAMETER displays information about the initialization parameters that are currently in effect for the session. v$parameter2 的说明见这里&#xff1a; V$PARAMETER2 displays information about the initialization paramet…...

ssrf之dict协议和file协议

1.dict协议 dict是什么协议呢&#xff1f; 定义&#xff1a;词典网络协议&#xff0c;在RFC 2009中进行描述。它的目标是超越Webster protocol&#xff0c;并允许客户端在使 用过程中访问更多字典。Dict服务器和客户机使用TCP端口2628。 官方介绍&#xff1a;http://dict.o…...

OpenAI GPT 模型 API 接口新增参数 top_logprobs 和 logprobs

文章目录 一、前言二、主要内容三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 在最新的 OpenAI 官方 APIs 文档中&#xff0c;Create chat completion 中新增了 top_logprobs 和 logprobs 这两个关键参数。 官方文档地址&#xff…...

React项目打包流程

一、React项目打包流程 一、React项目打包流程1. 项目打包打包命令&#xff1a;npm run build2. 预览接着命令行会提示执行&#xff1a; 先&#xff1a;npm install -g serve 然后执行此命令&#xff1a;serve -s build二、打包优化 - 配置路由懒加载 二、打包优化 - 配置路…...

App UI自动化项目模板

完整的App UI自动化项目模板 以下是一套工程化、可复用、易维护的App UI自动化项目模板&#xff0c;基于PythonAppium2pytest实现&#xff0c;包含BasePage封装、PO页面类、数据驱动、日志/报告/配置分离等核心工程化配置&#xff0c;你只需替换业务相关的元素定位、操作逻辑、…...

华为交换机MAC地址漂移检测与风暴抑制联动配置指南

1. 华为交换机MAC地址漂移检测原理与实战 刚接触网络运维时&#xff0c;第一次遇到MAC地址漂移报警简直一头雾水。后来才发现&#xff0c;这其实是交换机在提醒我们&#xff1a;"兄弟&#xff0c;你的网络里可能有环路&#xff01;" MAC地址漂移的本质是同一个MAC地址…...

从“Hello World”到区域赛银牌:我的ACM算法打怪升级全记录(附各阶段工具包)

从“Hello World”到区域赛银牌&#xff1a;我的ACM算法打怪升级全记录 记得大一刚接触编程时&#xff0c;连最简单的冒泡排序都要调试半天。三年后站在领奖台上&#xff0c;回想这段旅程&#xff0c;最珍贵的不是奖牌&#xff0c;而是那些深夜debug的坚持和突破自我的瞬间。这…...

SpringBoot3.3.1+Elasticsearch8.13.4日期转换踩坑实录:LocalDateTime保存为时间戳的完整方案

SpringBoot3.3.1与Elasticsearch8.13.4时间类型转换实战&#xff1a;从踩坑到优雅解决 最近在升级技术栈到SpringBoot3.3.1时&#xff0c;发现与Elasticsearch8.13.4的集成出现了一个棘手的问题&#xff1a;LocalDateTime类型在保存和查询时表现异常。这让我花了整整两天时间排…...

从游戏机到影音中心:用wiliwili解锁Switch的隐藏娱乐潜能

从游戏机到影音中心&#xff1a;用wiliwili解锁Switch的隐藏娱乐潜能 【免费下载链接】wiliwili 专为手柄控制设计的第三方跨平台B站客户端&#xff0c;目前可以运行在PC全平台、PSVita、PS4 和 Nintendo Switch上 项目地址: https://gitcode.com/GitHub_Trending/wi/wiliwil…...

别再只会看原理图了!用Multisim仿真带你深入理解运放的“虚短虚断”与反馈

用Multisim仿真破解运放"虚短虚断"的底层逻辑 在电子电路设计中&#xff0c;运算放大器就像一位沉默的魔术师&#xff0c;用"虚短"和"虚断"两个基本概念演绎着各种精妙的信号处理戏法。但很多工程师在学习阶段只是机械记忆这两个术语&#xff0c…...

Qwerty Learner字体优化:提升阅读体验的细节处理

Qwerty Learner字体优化&#xff1a;提升阅读体验的细节处理 【免费下载链接】qwerty-learner 为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers 项目地址: https://gitcode.…...

告别msi2lmp参数缺失!手把手教你用Perl脚本insight2lammps搞定MS到LAMMPS的data文件转换

告别msi2lmp参数缺失&#xff01;手把手教你用Perl脚本insight2lammps搞定MS到LAMMPS的data文件转换 分子动力学模拟研究者们常常遇到这样的困境&#xff1a;在Materials Studio&#xff08;MS&#xff09;中精心构建的模型&#xff0c;导出后却因LAMMPS自带的msi2lmp工具参数缺…...

Graphormer企业级应用:制药公司分子筛选流水线中的轻量部署实践

Graphormer企业级应用&#xff1a;制药公司分子筛选流水线中的轻量部署实践 1. 项目背景与价值 在药物研发领域&#xff0c;分子筛选是耗时耗力的关键环节。传统实验方法需要数月时间才能完成数千种化合物的性质测试&#xff0c;而基于AI的分子属性预测技术可以将这一过程缩短…...

Kazumi:跨平台动漫资源整合解决方案,打造个性化追番体验

Kazumi&#xff1a;跨平台动漫资源整合解决方案&#xff0c;打造个性化追番体验 【免费下载链接】Kazumi 基于自定义规则的番剧采集APP&#xff0c;支持流媒体在线观看&#xff0c;支持弹幕。 项目地址: https://gitcode.com/gh_mirrors/ka/Kazumi 动漫爱好者常面临三大…...