openGauss源码解析(21)
openGauss源码解析:第2章 openGauss开发快速入门(10)
2.3 开发和编译
作为openGauss数据库开发者,在基于openGauss开源产品进行二次开发后,往往需要编译openGauss对所开发的功能的实现情况进行验证。本节向读者简要介绍openGauss的编译方法,详细的内容请参见openGauss官网(https://opengauss.org/zh/docs/1.1.0/docs/Compilationguide/Compilation.html)。
2.3.1 搭建开发环境
搭建开发环境之前需要在码云(https://gitee.com/)上完成注册Gitee账号、签署CLA协议(贡献者许可协议),详情请参见2.4.2社区环境准备。
1. 在社区拉取个人分支
(1) 进入docs(文档)或者openGauss-server(代码)仓库。此处以docs仓库举例。如图2-4所示。
图2-4 docs仓库
(2) 单击右上角“Forked”按钮,Fork(复刻)个人分支。如图2-5所示。
图2-5 Fork个人分支
2. 安装并配置Git环境
(1) 安装Git环境。
下载Git客户端并按默认设置安装,Git下载地址:https://git-scm.com/download/win,根据操作系统位数(32位/64位),下载安装相应的Git(命令行工具),也可以下载TortoiseGit(可视化工具)。
(2) 配置Git环境。
➀ 全局配置Git用户名。
git config --global user.name "Your Name"
"Your Name"为Gitee账号名称。您可以在Gitee个人主页获取。
➁ 全局配置Git邮箱。
git config --global user.email "email@example.com"
邮箱为注册的Gitee的主邮箱,可通过Gitee个人设置中的“多邮箱管理”获取。
➂ 生成ssh密钥。
ssh-keygen -t rsa -C "email@example.com"
cat ~/.ssh/id_rsa.pub
登录远程仓库网站Gitee账户https://gitee.com/profile/sshkeys并添加生成的公钥。
➃ 在本地创建openGauss-server文件夹,将远程仓库克隆至本地。
cd openGauss-server
git clone https://gitee.com/Your Name/openGauss-server.git
Your Name为全局配置的Git用户名。
➄ 设置本地工作目录的upstream源。
git remote add upstream https://gitee.com/opengauss/ openGauss-server.git
➅ 设置同步方式。
git remote set-url --push upstream no_push
3. 安装开发工具
openGauss内核开发以C/C++语言为主,本节以安装VScode(visual studio code)工具为例进行介绍。
(1) 登录https://code.visualstudio.com/download下载VScode软件。如图2-6所示。请根据操作系统选择相应的版本,本节以64位Windows操作系统为例。
图2-6 VScode下载页面
(2) 单击完成下载的软件执行安装,选择“我同意此协议”后单击“下一步”,如图2-7所示。
图2-7 安装初始页面
(3) 确认安装位置后单击“下一步”,如图2-8所示。
图2-8 确认安装位置
(4) 配置环境变量。
选中“添加到PATH(重启后生效)”复选框,勾选此选项后可不再配置环境变量直接使用,如图2-9所示。
图2-9 配置环境变量
(5) 单击“完成”,结束安装,如图2-10所示。
图2-10 安装完成
(6) 安装openGauss所需的开发语言,如图2-11所示。
图2-11 安装C/C++开发语言
4. 提交代码
修改完openGauss代码后需要将修改后的代码提交至开源社区,本节介绍如何提交代码。
(1) 将所有修改的文件添加到Git的缓存区。
git add .
(2) 提交缓存区到自己的远端仓库。
git commit -m "message"
(3) 提交修改至自己的远端仓库。
git push origin master
5. 提交合并需求
通过新建Pull Request提交合并需求至openGauss社区。社区上详细操作请参见“2.4.4 贡献代码和文档”。