【经验分享】如何构建openGauss开发编译提交一体化环境

前文

本文适合对openGauss源代码有好奇心的爱好者,那么一个友好的openGauss源代码环境应该是怎么样的。openGauss的开发环境是如何设置的?openGauss的编译环境是如何构建的?如何向openGauss提交代码,笔者集合官方和几位博主实践提供友好的openGauss源代码阅读环境。在这个环境,你可以阅读、可以开发、可以调试、可以运行。你可以马上把它提交gitee,也可以选择向openGauss合并。

需要windows主机,linux服务器,gitee帐号各一个,你需要准备以下:

  • centos7.6作为linux服务器,即调试编译环境,

  • Visual Studio code 1.80安装在windows主机上,即开发阅读环境

  • 确认已注册gitee帐号,已经拥有gitee用户名和gitee密码

openGauss源代码阅读环境的思路如下,分为4步走。
  1. 用自己帐号gitee把源码openGauss相关的都fork到自己的仓库下面

  2. centos7.6服务器上运行clone,把自己的远端代码全部弄下来。centos7.6服务器安装调试工具,验证调试代码可编译可运行【此刻已经有openGauss安装包生成】

  3. windows主机安装vscode,安装 Remote -SSH 和Remote - Development插件。安装后可以友好阅读并修改远端centos7.6的gauss内核代码,修改后保持同步。

  4. centos7.6服务器设置git环境,保持与自己的gitee仓库同步,等待自己的gitee仓库与opengauss审核 并合入。

第一步,克隆官方openGauss环境

登陆gitee,把官方openGauss的代码fork过来, https://gitee.com/opengauss/openGauss-server

点击fork

6a3b29d4333b7a522ba0228d610c8155.jpeg

弹出窗口

e7e767f79012806cb81da8f8753cb5d4.jpeg

这时可以看到自己的仓库,https://gitee.com/xxxxx/openGauss-server

b08ca41026e2b476cfc1d5d100cf6006.jpeg

第二步,centos7.6打造编译开发环境

此处需要openGauss-server、openGauss-OM和openGauss-5.0.0-CentOS-64bit-all.tar.gz

mkdir /tmp/omm500
cd /tmp/omm500git clone https://gitee.com/opengauss/openGauss-OM.git
git clone https://gitee.com/angryart/openGauss-server
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_Centos7.6_x86_64.tar.gz


tar -xvf openGauss-third_party_binarylibs_Centos7.6_x86_64.tar.gz


注入环境变量
yum remove libaio-devel libaio -y
yum install -y git gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel libaio libaio-devel flex bison ncurese-devel glibc-devel patch rehat-lsb-core readline-devel perl gcc gcc-c++

# 配置环境变量
echo "export CODE_BASE=/tmp/omm500/openGauss-server # Path of the openGauss-server file " >> ~/.bashrc
echo "export BINARYLIBS=/tmp/omm500/openGauss-third_party_binarylibs_Centos7.6_x86_64 # Path of the binarylibs file " >> ~/.bashrc
echo "export GAUSSHOME=\$CODE_BASE/dest/ " >> ~/.bashrc
echo "export GCC_PATH=\$BINARYLIBS/buildtools/gcc7.3/ " >> ~/.bashrc
echo "export CC=\$GCC_PATH/gcc/bin/gcc " >> ~/.bashrc
echo "export CXX=\$GCC_PATH/gcc/bin/g++ " >> ~/.bashrc
echo "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 " >> ~/.bashrc
echo "export PATH=\$GAUSSHOME/bin:\$GCC_PATH/gcc/bin:\$PATH " >> ~/.bashrc
echo "export PGDATA=/opt/omm500/data" >> ~/.bashrc
echo "export PGPORT=5432" >> ~/.bashrc
echo "export PGDATABASE=postgres" >> ~/.bashrc


# 加载环境变量
source ~/.bashrc

# 进入源码目录
cd $CODE_BASE

# 编译server (这里就是openGauss提供的一键式编译脚本)
sh build.sh -m release -3rd $BINARYLIBS -pkg

如果成功编译好,如下界面

3677b2a6962dc17d466eda959486deb8.jpeg

chmod +x build.sh
这个是opengauss安装的工具
./build.sh -3rd $BINARYLIBS_PATH

成功后,会有两个文件输出

05c80c166cde653eb9981671e6218823.jpeg

第三步,windows  vs code安装扩展插件连上仓库

windows下面已经安装好vs code,网上找,直接下一步下一步进行安装,准备安装

852ac9a820f50f092a113fc92349f5dc.jpeg

选择Remote-SSH 和 Remote Development

4fdef38f363cfd559527fa67c06de038.jpeg

依下图123,对目标服务器进行连接

358c9ec9893d9e49cc573c2127c3c8ed.jpeg

点击框中搜索相关openGauss的目录

a581970e2207480550bfd538203135c5.jpeg

修改源码,openGauss的内核代码是gausskernel下面, src\gausskernel\storage\access\archive\archive_am.cpp,增多一段 “Just for a test”

5295e2d755fc39e00c788d47ad132d37.jpeg

centos7.6下面查看 src\gausskernel\storage\access\archive\archive_am.cpp ,发现文件的确已经发生变化

7338edb84ae13d0cb437b425cf7d8a14.jpeg

第四步,centos7.6服务器设置git环境

[ root@server131 omm500] # git config --global user.name "xxxx" gitee帐号名称
[ root@server131 omm500] # git config --global user.email "xxx@139.com" gitee邮箱
[ root@server131 omm500] # ssh-keygen -t rsa -C "xxx@139.com" gitee帐号密码
Generating public/ private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:RDYDta9IiPzK5eZCXu8bU0kOgQuhim9SwvSuZJmsCEI 15920142730@139.com
The key's randomart image is:
+---[RSA 2048]----+
| .. .oo* |
| .. . + + |
|.. . .. + |
|=..... = o |
|+E+.. . S . |
|o+=... o . |
|+Oooo.+ . |
|B+++. .o |
|o.o+o.o. |
+----[SHA256]-----+
[root@server131 openGauss-server]# git clone https://gitee.com/angryart/openGauss-server
[ root@server131 openGauss-server] #
git remote add upstream https: //gitee.com/opengauss/openGauss-server
[ root@server131 openGauss-server] # git remote set-url --push upstream no_push

提交代码
[ root@server131 openGauss-server] # git add .
[ root@server131 openGauss-server] # git commit -m "message"
[ root@server131 openGauss-server] # git push origin master

最后检验自己的仓库,已经提交成功

8dfb20f4102b136c439bf40045edd238.jpeg


下面是自己的远端仓库与openGauss同步,需要提交pull request

b63ec10d19a06de18468abdef6da228d.jpeg


这里要写清楚改了什么,源分支是你修改的源代码,  目标分支是  openGauss侧的的,如果官方同意,就会把你的代码合并到里面去。b38d60dfbcf0347ae5dfe217cad70651.jpeg


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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

经典卷积神经网络 - VGG

使用块的网络 - VGG。 使用多个 3 3 3\times 3 33的要比使用少个 5 5 5\times 5 55的效果要好。 VGG全称是Visual Geometry Group,因为是由Oxford的Visual Geometry Group提出的。AlexNet问世之后,很多学者通过改进AlexNet的网络结构来提高自己的准确…

R语言生物群落(生态)数据统计分析与绘图

R 语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂,涉及众多统计分析方法。以生物群落数据分析中的最常用的统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法为主线,通过多个来自经典…

React 框架

1、React 框架简介 1.1、介绍 CS 与 BS结合:像 React,Vue 此类框架,转移了部分服务器的功能到客户端。将CS 和 BS 加以结合。客户端只用请求一次服务器,服务器就将所有js代码返回给客户端,所有交互类操作都不再依赖服…

muduo源码学习base——TimeStamp(UTC时间戳)

TimeStamp(UTC时间戳) 前置copyable和noncopyableTimeStampnow() 此博客跟着b站上的:大并发服务器开发(实战)学习做的笔记 前置 值语义、对象语义: 值语义:所谓值语义是一个对象被系统标准的复制方式复制后…

Spring Cloud之服务注册与发现(Eureka)

目录 Eureka 介绍 角色 实现流程 单机构建 注册中心 服务提供者 服务消费者 集群搭建 注册中心 服务提供者 自我保护机制 原理分析 Eureka 介绍 Eureka是spring cloud中的一个负责服务注册与发现的组件,本身是基于REST的服务,同时还提供了…

(完全解决)如何输入一个图的邻接矩阵(每两个点的亲密度矩阵affinity),然后使用sklearn进行谱聚类

文章目录 背景输入点直接输入邻接矩阵 背景 网上倒是有一些关于使用sklearn进行谱聚类的教程,但是这些教程的输入都是一些点的集合,然后根据谱聚类的原理,其会每两个点计算一次亲密度(可以认为两个点距离越大,亲密度越…

【学习草稿】bert文本分类

https://github.com/google-research/bert https://github.com/CyberZHG/keras-bert 在 BERT 中,每个单词的嵌入向量由三部分组成: Token 嵌入向量:该向量是 WordPiece 分词算法得到的子单词 ID 对应的嵌入向量。 Segment 嵌入向量&#x…

安科瑞带防逆流功能的数据通讯网关-安科瑞黄安南

AWT200 数据通讯网关应用于各种终端设备的数据采集与数据分析。用于实现设备的监测、控制、计算,为系统与设备之间建立通讯纽带,实现双向的数据通讯。实时监测并及时发现异常,同时自身根据用户规则进行逻辑判断,可以节省人力和通讯…

【机器学习】模型平移不变性/等变性归纳偏置Attention机制

Alphafold2具有旋转不变性吗——从图像识别到蛋白结构预测的旋转对称性实现 通过Alphafold2如何预测蛋白质结构,看有哪些机制或tricks可以利用? 一、等变Transformer 等变Transformer是Transformer众多变体的其中一种,其强调等变性。不变性…

CentOS7 安装 nodejs

获取安装文件 node历史版本地址 安装 上传到服务器安装位置cd 到压缩包位置,执行解压安装操作 [rootps-fdcnops-01 /]# cd usr/local/nodejs/ [rootps-fdcnops-01 nodejs]# tar -xzvf node-v16.16.0-linux-x64 配置环境变量 [rootps-fdcnops-01 nodejs]# vim /…

5G RedCap工业智能网关

5G RedCap工业智能网关是当前工业智能化发展领域的重要技术之一。随着物联网和工业互联网的迅速发展,企业对于实时数据传输和高速通信需求越来越迫切。在这种背景下,5G RedCap工业智能网关以其卓越的性能和功能,成为众多企业的首选。 5G RedC…

Qt扫盲-QPen 理论使用总结

QPen 理论使用总结 一、概述二、Pen Style 画笔风格三、Cap Style 帽风格四、Join Style 连接处样式 一、概述 QPen 是Qt绘图控件里面的一个重要的组件,和QColor 一样也是类似的一个属性类。这个类就是描述一个画笔具有的属性。 一个画笔 Pen 有style()&#xff0…

ExoPlayer架构详解与源码分析(6)——MediaPeriod

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)—…

【C语言】关于char的取值范围的讨论

前提知识: 计算机内存中存的是整数的补码。 正数的原反补相同! 负数的补码 (除符号位以外)原码取反 1 负数的源码 (除符号位以外)补码取反 1 有符号的char,最高位二进制位表示符号位 …

蓝桥杯每日一题2023.10.19

题目描述 完全二叉树的权值 - 蓝桥云课 (lanqiao.cn) 题目分析 我们以每一个节点的坐标来将这一深度的权值之和相加从而算出权值和 要清楚每一个深度的其实节点和末尾节点,使用双指针将这个深度节点的权值和计算出来,记录所 需要的深度即可 #includ…

uni-app:引用文件的方法

绝对定位 ①import common from "/utils/common.js" ②import common from "utils/common.js" <template><view></view> </template> <script>import common from "/utils/common.js"export default {data() {ret…

通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境

&#x1f525;博客主页&#xff1a; 小羊失眠啦 &#x1f516;系列专栏&#xff1a; C语言 、Cpolar、Linux ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 …

vue3 源码解析(1)— reactive 响应式实现

前言 本文是 vue3 源码解析系列的第一篇文章&#xff0c;项目代码的整体实现是参考了 v3.2.10 版本&#xff0c;项目整体架构可以参考之前我写过的文章 rollup 实现多模块打包。话不多说&#xff0c;让我们通过一个简单例子开始这个系列的文章。 举个例子 <!DOCTYPE html…

微信小程序OA会议系统数据交互

前言 经过我们所写的上一文章&#xff1a;微信小程序会议OA系统其他页面-CSDN博客 在我们的是基础面板上面&#xff0c;可以看到出来我们的数据是死数据&#xff0c;今天我们就完善我们的是数据 后台 在我们去完成项目之前我们要把我们的项目后台准备好资源我放在我资源中&…

怎么进行设备维护与保养?智能巡检系统有什么用?

设备维护与保养需要遵循三个原则&#xff1a;故障设备全面分析的原则、故障设备深入检查的原则以及故障设备分析排查的原则。 一、故障设备全面分析的原则   检修人员在对设备维护与保养时&#xff0c;如果看到设备在运行中出现了异常的现象&#xff0c;要立刻停止设备的工作…