Step5-Redhat下构造spec
本节我们重点明确:如何在 bigtop-packages/src/rpm/redis/SPECS/ 下编写 redis.spec 文件,以及该文件的基本结构和关注点。
本节目标
只讲清楚「要写什么」和「结构是什么」,不会深入展开每一块的作用和写法细节。后续章节将单独对每个核心片段进行详细剖析和场景解读。
# 1. spec 文件的必备位置
你需要新建:
bigtop-packages/src/rpm/redis/SPECS/redis.spec
1
# 2. spec 文件核心结构与作用
区块 | 作用说明 |
---|---|
全局变量定义 | 组件名、版本、路径、用户组等统一变量,便于维护和复用 |
基本元数据 | Name、Version、Release、Summary、License、URL等包元信息 |
源文件与脚本引用 | Source0/Source1/Source2,指定源码包、构建脚本、安装脚本等 |
构建与安装流程 | %prep、%build、%install、%clean:自动化编译、归集和清理指令 |
安装前后脚本 | %pre、%post、%preun、%postun:初始化目录、用户组、清理收尾等 |
文件列表 | %files,定义最终 RPM 包中应包含的所有目标文件/目录 |
变更日志 | %changelog,记录维护者每次改动及历史操作 |
# 3. redis.spec 结构示例
%define component_name redis
# ... 变量定义
Name: %{component_pkg_name}
Version: %{component_version}
Release: %{component_release}
Summary: %{component_summary}
License: %{component_license}
# ... 基本元数据
Source0: %{component_tarball_origin_name}
Source1: do-component-build
Source2: install_%{component_name}.sh
%description
# ... 描述信息
%prep
# ... 准备阶段
%build
# ... 构建指令
%install
# ... 安装指令
%clean
# ... 清理指令
%pre
# ... 安装前置脚本
%post
# ... 安装后脚本
%preun
# ... 卸载前脚本
%postun
# ... 卸载后脚本
%files
# ... 文件列表
%changelog
# ... 变更日志
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
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
# 4.完整的spec文件
# 5. 内容约定与注意事项
- 每一块内容的具体作用和写法,都建议遵循 RPM 官方和 Bigtop 的集成规范。
- 细节部分暂不展开,避免第一次接触时“云里雾里”,后面会逐步通过实际案例和打包流程细致说明。
注意
后续补充说明:
本节不对 redis.spec
的细节和每一个区块的含义进行展开讲解。
我们将在后续章节中逐一拆解每个部分的核心原理和使用场景,结合 Redis 及其他大数据组件的实际打包经验,带你逐步掌握完整链路。
- 01
- bigtop-select 打包缺 compat 报错修复 deb07-16
- 02
- bigtop-select 打包缺 control 文件报错修复 deb07-16
- 03
- 首次编译-环境初始化 必装07-16