Step7-Log-安装细节
# 修剪后的日志内容
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.tEwuJM
+ umask 022
+ cd /opt/modules/bigtop/build/redis/rpm//BUILD
+ '[' /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64 '!=' / ']'
+ rm -rf /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64
++ dirname /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64
+ mkdir -p /opt/modules/bigtop/build/redis/rpm/BUILDROOT
+ mkdir /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64
+ cd redis-7.4.0
+ /usr/bin/rm -rf /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64
+ bash /opt/modules/bigtop/build/redis/rpm/SOURCES/install_redis.sh --bin-dir=/usr/bigtop/3.2.0/usr/bin --build-dir=/opt/modules/bigtop/build/redis/rpm//BUILD --doc-dir=/usr/bigtop/3.2.0/usr/share/doc --etc-dir=/usr/bigtop/3.2.0/etc/redis --lib-dir=/usr/bigtop/3.2.0/usr/lib/redis --man-dir=/usr/bigtop/3.2.0/usr/share/man --prefix=/opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64 --tar-name=redis-7.4.0 --var-dir=/usr/bigtop/3.2.0/var/lib/redis
++ getopt -n /opt/modules/bigtop/build/redis/rpm/SOURCES/install_redis.sh -o '' -l bin-dir: -l build-dir: -l conf-dir: -l doc-dir: -l etc-dir: -l lib-dir: -l man-dir: -l var
-dir: -l prefix: -l tar-name: -- --bin-dir=/usr/bigtop/3.2.0/usr/bin --build-dir=/opt/modules/bigtop/build/redis/rpm//BUILD --doc-dir=/usr/bigtop/3.2.0/usr/share/doc --etc-d
ir=/usr/bigtop/3.2.0/etc/redis --lib-dir=/usr/bigtop/3.2.0/usr/lib/redis --man-dir=/usr/bigtop/3.2.0/usr/share/man --prefix=/opt/modules/bigtop/build/redis/rpm/BUILDROOT/red
is_3_2_0-7.4.0-1.el8.x86_64 --tar-name=redis-7.4.0 --var-dir=/usr/bigtop/3.2.0/var/lib/redis
+ OPTS=' --bin-dir '\''/usr/bigtop/3.2.0/usr/bin'\'' --build-dir '\''/opt/modules/bigtop/build/redis/rpm//BUILD'\'' --doc-dir '\''/usr/bigtop/3.2.0/usr/share/doc'\'' --etc-d
ir '\''/usr/bigtop/3.2.0/etc/redis'\'' --lib-dir '\''/usr/bigtop/3.2.0/usr/lib/redis'\'' --man-dir '\''/usr/bigtop/3.2.0/usr/share/man'\'' --prefix '\''/opt/modules/bigtop/b
uild/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64'\'' --tar-name '\''redis-7.4.0'\'' --var-dir '\''/usr/bigtop/3.2.0/var/lib/redis'\'' --'
+ '[' 0 '!=' 0 ']'
+ eval set -- ' --bin-dir '\''/usr/bigtop/3.2.0/usr/bin'\'' --build-dir '\''/opt/modules/bigtop/build/redis/rpm//BUILD'\'' --doc-dir '\''/usr/bigtop/3.2.0/usr/share/doc'\''
--etc-dir '\''/usr/bigtop/3.2.0/etc/redis'\'' --lib-dir '\''/usr/bigtop/3.2.0/usr/lib/redis'\'' --man-dir '\''/usr/bigtop/3.2.0/usr/share/man'\'' --prefix '\''/opt/modules/b
igtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64'\'' --tar-name '\''redis-7.4.0'\'' --var-dir '\''/usr/bigtop/3.2.0/var/lib/redis'\'' --'
++ set -- --bin-dir /usr/bigtop/3.2.0/usr/bin --build-dir /opt/modules/bigtop/build/redis/rpm//BUILD --doc-dir /usr/bigtop/3.2.0/usr/share/doc --etc-dir /usr/bigtop/3.2.0/et
c/redis --lib-dir /usr/bigtop/3.2.0/usr/lib/redis --man-dir /usr/bigtop/3.2.0/usr/share/man --prefix /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x8
6_64 --tar-name redis-7.4.0 --var-dir /usr/bigtop/3.2.0/var/lib/redis --
+ set -ex
+ true
+ case "$1" in
+ BIN_DIR=/usr/bigtop/3.2.0/usr/bin
+ shift 2
+ true
+ case "$1" in
+ BUILD_DIR=/opt/modules/bigtop/build/redis/rpm//BUILD
+ shift 2
+ true
+ case "$1" in
+ DOC_DIR=/usr/bigtop/3.2.0/usr/share/doc
+ shift 2
+ true
+ case "$1" in
+ ETC_DIR=/usr/bigtop/3.2.0/etc/redis
+ shift 2
+ true
+ case "$1" in
+ LIB_DIR=/usr/bigtop/3.2.0/usr/lib/redis
+ shift 2
+ true
+ case "$1" in
+ MAN_DIR=/usr/bigtop/3.2.0/usr/share/man
+ shift 2
+ true
+ case "$1" in
+ PREFIX=/opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64
+ shift 2
+ true
+ case "$1" in
+ TAR_NAME=redis-7.4.0
+ shift 2
+ true
+ case "$1" in
+ VAR_DIR=/usr/bigtop/3.2.0/var/lib/redis
+ shift 2
+ true
+ case "$1" in
+ shift
+ break
+ for var in PREFIX BUILD_DIR
++ eval 'echo $PREFIX'
+++ echo /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64
+ '[' -z /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64 ']'
+ for var in PREFIX BUILD_DIR
++ eval 'echo $BUILD_DIR'
+++ echo /opt/modules/bigtop/build/redis/rpm//BUILD
+ '[' -z /opt/modules/bigtop/build/redis/rpm//BUILD ']'
+ BIN_DIR=/usr/bigtop/3.2.0/usr/bin
+ DOC_DIR=/usr/bigtop/3.2.0/usr/share/doc
+ ETC_DIR=/usr/bigtop/3.2.0/etc/redis
+ LIB_DIR=/usr/bigtop/3.2.0/usr/lib/redis
+ MAN_DIR=/usr/bigtop/3.2.0/usr/share/man
+ NP_LOG_DIR=/var/log/redis
+ NP_CONF_DIR=/etc/redis
+ REDIS_CONF_DIR=/usr/bigtop/3.2.0/etc/redis/conf.empty
+ install -d -m 0755 /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/var/log/redis
+ install -d -m 0755 /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/etc/redis
+ install -d -m 0755 /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/etc/redis/conf.empty
+ install -d -m 0755 /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/usr/bin
+ install -d -m 0755 /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/usr/share/doc
+ install -d -m 0755 /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/etc/redis
+ install -d -m 0755 /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
+ install -d -m 0755 /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/usr/share/man
+ install -d -m 0755 /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/var/lib/redis
+ install -d -m 0755 /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64
+ shopt -s dotglob
+ cp -rv /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/.codespell /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/.gitattributes /opt/modules/bigtop/build/re
dis/rpm//BUILD/redis-7.4.0/.github /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/.gitignore /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/00-RELEASENOTES /
opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/BUGS /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/CODE_OF_CONDUCT.md /opt/modules/bigtop/build/redis/rpm//BUI
LD/redis-7.4.0/CONTRIBUTING.md /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/INSTALL /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/LICENSE.txt /opt/modules
/bigtop/build/redis/rpm//BUILD/redis-7.4.0/MANIFESTO /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/Makefile /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/R
EADME.md /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/REDISCONTRIBUTIONS.txt /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/SECURITY.md /opt/modules/bigtop
/build/redis/rpm//BUILD/redis-7.4.0/TLS.md /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/deps /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/redis.conf /opt
/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/runtest /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/runtest-cluster /opt/modules/bigtop/build/redis/rpm//BUILD/
redis-7.4.0/runtest-moduleapi /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/runtest-sentinel /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/sentinel.conf /o
pt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/src /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/tests /opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/
utils /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
'/opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/.codespell' -> '/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/.codespell'
#......
#中间省掉不重要内容
#......
'/opt/modules/bigtop/build/redis/rpm//BUILD/redis-7.4.0/utils/whatisdoing.sh' -> '/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/utils/whatisdoing.sh'
+ mv /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/redis.conf /opt/modules/bigtop/build/redis/rpm/BUILDROOT/red
is_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/usr/lib/redis/sentinel.conf /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64/usr/bigtop/3.2.0/etc/re
dis/conf.empty
+ chmod -R 755 /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
+ rm -rf '/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/*.conf'
+ shopt -u dotglob
+ ln -s /etc/redis/sentinel.conf /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
+ ln -s /etc/redis/redis.conf /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
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# 安装阶段解析
经过源码编译后,我们正式进入安装阶段。此阶段的主要任务,是将已编译产物和相关资源按照规范布局到 buildroot
目录下,为后续
RPM 打包打下基础。换句话说,buildroot 就是最终 RPM 包内部结构的“沙盘”,只有把各类文件正确组织好,打出来的包才能在实际环境中一键部署、无遗漏依赖。
# 安装脚本入口
系统会调用 install_redis.sh
脚本,传入一系列参数,精确指定各类文件的目标位置。典型日志如下:
bash /opt/modules/bigtop/build/redis/rpm/SOURCES/install_redis.sh \
--bin-dir=/usr/bigtop/3.2.0/usr/bin \
--build-dir=/opt/modules/bigtop/build/redis/rpm//BUILD \
--doc-dir=/usr/bigtop/3.2.0/usr/share/doc \
--etc-dir=/usr/bigtop/3.2.0/etc/redis \
--lib-dir=/usr/bigtop/3.2.0/usr/lib/redis \
--man-dir=/usr/bigtop/3.2.0/usr/share/man \
--prefix=/opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64 \
--tar-name=redis-7.4.0 \
--var-dir=/usr/bigtop/3.2.0/var/lib/redis
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 参数对照表
参数名 | 说明 | 示例路径 |
---|---|---|
--bin-dir | 二进制可执行文件存放路径 | /usr/bigtop/3.2.0/usr/bin |
--build-dir | 源码解压与构建目录 | /opt/modules/bigtop/build/redis/rpm//BUILD |
--doc-dir | 文档文件存放路径 | /usr/bigtop/3.2.0/usr/share/doc |
--etc-dir | 配置文件存放路径 | /usr/bigtop/3.2.0/etc/redis |
--lib-dir | 依赖库文件存放路径 | /usr/bigtop/3.2.0/usr/lib/redis |
--man-dir | man 帮助手册存放路径 | /usr/bigtop/3.2.0/usr/share/man |
--prefix | buildroot 根目录 | /opt/modules/bigtop/build/redis/rpm/BUILDROOT/ redis_3_2_0-7.4.0-1.el8.x86_64 |
--tar-name | 源码目录名 | redis-7.4.0 |
--var-dir | 运行时数据目录 | /usr/bigtop/3.2.0/var/lib/redis |
提示
这些参数在大数据组件打包时极为重要,通过标准化路径,能有效降低环境迁移与二次集成的复杂度。
# 典型 install 阶段日志解读
安装脚本会根据参数,将编译后的所有核心内容进行归档、移动与权限设置。部分关键输出如下:
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.tEwuJM
+ umask 022
+ cd /opt/modules/bigtop/build/redis/rpm//BUILD
+ '[' /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64 '!=' / ']'
+ rm -rf /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64
+ mkdir -p /opt/modules/bigtop/build/redis/rpm/BUILDROOT
+ mkdir /opt/modules/bigtop/build/redis/rpm/BUILDROOT/redis_3_2_0-7.4.0-1.el8.x86_64
+ cd redis-7.4.0
...
+ install -d -m 0755 ... # 创建各类目录
+ cp -rv ... # 拷贝所有需要纳入 rpm 的源文件、配置、脚本
+ mv ... # 特定配置移动到指定目录
+ chmod -R 755 ... # 统一调整权限,保证包可用性
+ ln -s ... # 创建软链接,便于系统查找主配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 目录与文件布局
安装过程涉及的主要目录和文件有:
/usr/bigtop/3.2.0/usr/bin
:Redis 命令行工具、主程序/usr/bigtop/3.2.0/usr/lib/redis
:动态库、插件、默认配置/usr/bigtop/3.2.0/etc/redis/conf.empty
:空模板配置,便于运维自定义/usr/bigtop/3.2.0/usr/share/doc
:README、LICENSE 等文档/usr/bigtop/3.2.0/var/lib/redis
:运行数据目录/usr/bigtop/3.2.0/usr/share/man
:man 手册/etc/redis/redis.conf
、/etc/redis/sentinel.conf
:主配置软链接,指向真实配置,兼容标准部署
# 实操建议
- 打包前,建议用
tree
命令查看 buildroot 目录层级,确保所有目标内容齐全。 - 自定义构建参数时,务必保持各参数与实际环境一致,否则打出来的包将无法复现生产部署结构。
结语
安装阶段虽是自动化流程中的“后置”环节,但它对最终制品质量有决定性影响。建议每次包构建后,手动验证安装内容,并借助表格与日志细读参数和目录结构,为后续的自动化部署与运维打好坚实基础。
- 01
- bigtop-select 打包缺 compat 报错修复 deb07-16
- 02
- bigtop-select 打包缺 control 文件报错修复 deb07-16
- 03
- 首次编译-环境初始化 必装07-16