【我和openGauss的故事】openEuler20.03上编译安装opengauss-5.0.0

openGauss5.0.0在openEuler20.03上的编译与vscode调试教程

【我和openGauss的故事】openEuler20.03上编译安装opengauss-5.0.0

ziyoo0830 openGauss 2023-08-03 16:49 发表于四川

为了更好地学习openGauss数据库知识,有时候需要去调试源代码来深入了解一些东西。以下记录了在openEuler20.03上编译最新的openGauss-server源代码的过程,记录了手工编译过程遇到的一些问题,同时尝试使用vscode去调试了下源代码,文中也提供了几个vscode的调试样例。

vscode调试参考:构建openGauss开发编译提交一体化环境-阅读源码为国产数据库加把油 - 墨天轮使用vscode远程开发&调试opengauss的om代码 - 墨天轮

以下采用的是手工编译的方法来安装。

下载第三方libs

mkdir -p /home/debug/opengauss/binarylibs/
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_openEuler_x86_64.tar.gz
# 以上提供的是已经编译好的包,无需再次编译, 用--with-3rdpartydir不要用--with-3rdparty_sourcedir
tar -xf openGauss-third_party_binarylibs_openEuler_x86_64.tar.gz -C /home/debug/opengauss/binarylibs/

下载opengauss-server代码

下载5.0.0的源代码

cd /home/debug/opengauss/
git clone https://gitee.com/opengauss/openGauss-server.git openGauss-server -b 5.0.0

configure

 cd openGauss-server
 # 编译debug版本
.
### 三级标题:不同压缩格式的 tar 文件解压结果比较 `.tar.gz` `.tar.bz2` 是两种常见的归档压缩格式,它们的解压结果在内容上是相同的,但压缩算法压缩效率不同。使用 `tar -zxvf` 解压 `.tar.gz` 文件,而使用 `tar -jxvf` 解压 `.tar.bz2` 文件[^1]。 尽管解压命令不同,但最终提取出的文件内容在逻辑上是一致的,前提是原始打包操作没有差异。也就是说,如果两个文件是基于相同的文件集合使用 `tar` 打包,并分别使用 `gzip` `bzip2` 压缩生成的,那么解压后的文件内容应完全一致。 压缩算法的差异体现在压缩率压缩速度上: - `.tar.gz` 使用 `gzip` 压缩,压缩速度较快,但压缩率较低。 - `.tar.bz2` 使用 `bzip2` 压缩,压缩率更高,但压缩解压速度较慢。 可以通过以下命令验证解压后的内容是否一致: ```bash # 解压 .tar.gz 文件 tar -zxvf openGauss-5.0.0-openEuler-64bit-all.tar.gz # 解压 .tar.bz2 文件 tar -jxvf openGauss-5.0.0-openEuler-64bit.tar.bz2 # 比较两个解压后的目录内容 diff -r openGauss-5.0.0-openEuler-64bit-all openGauss-5.0.0-openEuler-64bit ``` 如果输出为空,则表示两个目录中的内容完全一致。 ### 三级标题:压缩格式对文件完整性的影响 虽然压缩格式不同,但只要压缩解压过程未发生错误,文件的完整性不会受到影响。压缩过程不会修改原始文件内容,仅对数据进行编码优化。因此,无论是 `.tar.gz` 还是 `.tar.bz2`,只要压缩解压工具正常运行,解压出的文件应与原始文件完全一致[^2]。 为了确保文件的完整性,可以使用校验工具如 `md5sum` 或 `sha256sum` 对压缩包及其解压后的文件进行校验: ```bash # 生成 .tar.gz 文件的校验值 md5sum openGauss-5.0.0-openEuler-64bit-all.tar.gz # 生成 .tar.bz2 文件的校验值 md5sum openGauss-5.0.0-openEuler-64bit.tar.bz2 # 对解压后的目录生成校验值 find openGauss-5.0.0-openEuler-64bit-all -type f -exec md5sum {} + > md5sum_all.txt find openGauss-5.0.0-openEuler-64bit -type f -exec md5sum {} + > md5sum_bz2.txt # 比较两个校验值文件 diff md5sum_all.txt md5sum_bz2.txt ``` 如果输出为空,则表示两个目录中的文件内容一致。 ### 三级标题:实际使用场景中的选择 在实际使用中,选择 `.tar.gz` 还是 `.tar.bz2` 取决于具体需求: - 如果需要快速压缩解压,推荐使用 `.tar.gz`。 - 如果需要更高的压缩率以节省存储空间或网络带宽,推荐使用 `.tar.bz2`。 在 openGauss 安装过程中,不同压缩格式的文件可能用于不同的分发版本。例如,`openGauss-5.0.0-openEuler-64bit-all.tar.gz` 可能包含完整的安装组件,而 `openGauss-5.0.0-openEuler-64bit.tar.bz2` 可能只包含核心组件[^3]。因此,即使压缩格式不同,解压后的文件结构也可能存在差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值