如何查看Rpm包执行钩子
在大数据组件二次集成和日常运维排查时,经常会遇到rpm 包安装或卸载过程中的自动化脚本执行问题。这些自动脚本通常就是 spec
文件中的 %pre
、%post
、%preun
、%postun
等执行钩子。
本篇梳理几种 rpm 包钩子内容的快速查看方式,配合实际命令和输出截图,适合开发、测试和运维一线查阅。
# 一、rpm -q --scripts 方式
最直接的方式就是使用 rpm 自带的 --scripts
查询功能,无需解包 rpm 文件。
命令格式:
rpm -q --scripts -p <your-package>.rpm
1
示例:
rpm -q --scripts -p redis_3_2_0-7.4.0-1.el8.x86_64.rpm
1
执行效果如下图所示,可以清楚看到 rpm 包内所有生命周期脚本内容:
输出结构说明:
- preinstall scriptlet:即 %pre 钩子内容
- postinstall scriptlet:即 %post 钩子内容
- 同理还有 preun、postun 等脚本段,全部一目了然
- 直接对照实际 spec 文件,方便定位和比对
提示
rpm -q --scripts -p
方式无需安装 rpm 包本身,对比不同包的脚本实现非常高效,适合测试/预演/安全审核场景。
# 二、rpmrebuild 进阶分析(可选)
如果想分析更详细的 spec 原始结构,可以用 rpmrebuild
工具反编译 rpm 包,直接获得完整可编辑的 spec 文件。
命令示例:
rpmrebuild -ep redis_3_2_0-7.4.0-1.el8.x86_64.rpm
1
- 执行后会自动进入编辑界面(vim/nano),可以查找
%pre
、%post
、%preun
、%postun
等关键段落
下图是 rpmrebuild 弹出的 spec 编辑界面,可以直观阅读或二次修改所有钩子内容:
适用场景:
- 需要提取或定制现有 rpm 包脚本逻辑
- 升级钩子内容或修复包部署“遗留问题”时特别实用
# 三、rpm 钩子常见生命周期说明
钩子类型 | 触发时机 | 常用用途 |
---|---|---|
%pre | 安装前 | 创建用户/组、环境准备 |
%post | 安装后 | 初始化配置、目录、权限等 |
%preun | 卸载前 | 停服务、数据备份 |
%postun | 卸载后 | 清理目录、撤销软链 |
- 01
- bigtop-select 打包缺 compat 报错修复 deb07-16
- 02
- bigtop-select 打包缺 control 文件报错修复 deb07-16
- 03
- 首次编译-环境初始化 必装07-16