Step8-Log-制品细节
# 修剪后的日志内容
+ /usr/lib/rpm/check-buildroot
Processing files: redis_3_2_0-7.4.0-1.el8.x86_64
warning: Duplicate build-ids /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/usr/lib/redis/src/redis-sentinel and /opt/modules/
bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/usr/lib/redis/src/redis-check-rdb
warning: Duplicate build-ids /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/usr/lib/redis/src/redis-sentinel and /opt/modules/
bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/usr/lib/redis/src/redis-check-aof
warning: Duplicate build-ids /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/usr/lib/redis/src/redis-sentinel and /opt/modules/
bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/usr/lib/redis/src/redis-server
Provides: redis_3_2_0 = 7.4.0-1.el8 redis_3_2_0(x86-64) = 7.4.0-1.el8
Requires(interp): /bin/sh /bin/sh /bin/sh /bin/sh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(pre): /bin/sh
Requires(post): /bin/sh
Requires(preun): /bin/sh
Requires(postun): /bin/sh
Requires: /bin/bash /bin/sh /bin/tcsh /usr/bin/env libc.so.6()(64bit) libc.so.6(GLIBC_2.10)(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.17)(64bit) libc.so.6(GLIBC_
2.2.5)(64bit) libc.so.6(GLIBC_2.27)(64bit) libc.so.6(GLIBC_2.28)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.2)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLI
BC_2.6)(64bit) libc.so.6(GLIBC_2.7)(64bit) libc.so.6(GLIBC_2.9)(64bit) libdl.so.2()(64bit) libdl.so.2(GLIBC_2.2.5)(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) li
bpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.12)(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) libpthread.so.0(GLIBC_2.3.2)(64bit) librt.so.1()(64bit) perl(Cwd) perl(Getopt::
Long) perl(strict) perl(warnings) rtld(GNU_HASH)
Checking for unpackaged file(s): /usr/lib/rpm/check-files /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64
Wrote: /opt/modules/bigtop/build/redis/rpm/RPMS/x86_64/redis_3_2_0-7.4.0-1.el8.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.W6Fetv
+ umask 022
+ cd /opt/modules/bigtop/build/redis/rpm//BUILD
+ cd redis-7.4.0
+ rm -rf /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64
+ exit 0
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.S39aNd
+ umask 022
+ cd /opt/modules/bigtop/build/redis/rpm//BUILD
+ rm -rf redis-7.4.0
+ exit 0
BUILD SUCCESSFUL in 2m 24s
5 actionable tasks: 5 executed
(base) [root@rocky8 bigtop]#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
本章节将围绕 Redis 组件在 Bigtop 构建过程中,rpm 制品打包、依赖校验与产物输出 的关键日志与核心细节展开分析。无论是初学者还是有经验的二次集成开发者,掌握这些内容都能帮助你在日常构建、包定制和排查问题时得心应手。
# 一、制品生成关键日志分解
+ /usr/lib/rpm/check-buildroot
Processing files: redis_3_2_0-7.4.0-1.el8.x86_64
warning: Duplicate build-ids ...
Provides: redis_3_2_0 = 7.4.0-1.el8 ...
Requires(interp): /bin/sh /bin/sh /bin/sh /bin/sh
...
Wrote: /opt/modules/bigtop/build/redis/rpm/RPMS/x86_64/redis_3_2_0-7.4.0-1.el8.x86_64.rpm
1
2
3
4
5
6
7
2
3
4
5
6
7
# 1.1 检查 buildroot 阶段
+ /usr/lib/rpm/check-buildroot
自动检测制品中是否存在未打包到 rpm 的文件或遗留 buildroot 路径,确保所有内容都已归档。
# 1.2 Duplicate build-ids 警告
warning: Duplicate build-ids ...
说明某些可执行文件因静态链接或源码复用,build-id 出现重复,不影响正常部署,但建议关注源码或 makefile 配置,避免二次开发时混淆。
注意
若非必须,生产包可忽略该类警告,但定制或合规交付场景应主动排查。
# 1.3 依赖关系自动注入
日志中的 Provides
与 Requires
段,自动生成了 rpm 制品的依赖描述:
字段 | 含义 | 典型内容 |
---|---|---|
Provides | 本包的能力声明 | redis_3_2_0 = 7.4.0-1.el8 |
Requires(interp) | 解释器需求 | /bin/sh |
Requires(rpmlib) | 打包工具/特性依赖 | rpmlib(CompressedFileNames) <= 3.0.4-1 ... |
Requires | 运行时动态库、命令依赖 | libc.so.6、libpthread.so.0、perl 模块等(涵盖系统运行所需的全部动态库和基础环境) |
提示
这部分完全自动生成,避免了手写 spec 文件时的遗漏。也方便了二次集成与包移植时快速补齐依赖。
# 二、产物路径与打包输出
Wrote: /opt/modules/bigtop/build/redis/rpm/RPMS/x86_64/redis_3_2_0-7.4.0-1.el8.x86_64.rpm
日志清楚地给出了 rpm 产物的实际落地目录。所有产出包均统一输出到RPMS/
子目录下,便于后续分发和测试。
rpm 路径小结
- 默认输出目录为
build/redis/rpm/RPMS/架构名/
- 文件名规则为
redis_3_2_0-<版本号>-<release>.el8.<arch>.rpm
# 三、清理与收尾动作
日志最后执行了 clean
阶段:
+ rm -rf /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64
+ rm -rf redis-7.4.0
1
2
2
这一步是自动化打包的善后流程,及时清理中间产物,避免磁盘堆积和下次编译的路径污染。
# 四、BUILD SUCCESSFUL 及小结
BUILD SUCCESSFUL in 2m 24s
5 actionable tasks: 5 executed
1
2
2
- 代表整个流程无异常,产物完整,自动化构建链路收尾。
- 01
- bigtop-select 打包缺 compat 报错修复 deb07-16
- 02
- bigtop-select 打包缺 control 文件报错修复 deb07-16
- 03
- 首次编译-环境初始化 必装07-16