Step12-spec执行钩子解读[二]%unpre %unpost
卸载阶段的钩子是 rpm 包生命周期中的最后一道防线,用来自动化清理配置、回收日志/数据目录,以及撤销多版本管理软链等操作,保证系统环境整洁、运维无残留。
# 一、卸载前/后钩子(%preun / %postun)用途
%preun
:在组件卸载前执行,适合撤销配置、alternatives 管理等%postun
:在组件卸载后执行,适合清理日志、数据目录、残留文件
# 二、常见工程实践示例
实际 spec 文件写法如下:
%preun
if [ "$1" = 0 ]; then
# 卸载时,移除 alternatives 配置软链
%{alternatives_cmd} --remove %{component_name}-conf %{etc_component}/conf.empty || :
fi
%postun
if [ "$1" = 0 ]; then
# 卸载后,清理日志目录(避免残留垃圾文件)
rm -rf %{np_var_log_component_name}/
fi
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
要点说明:
$1 = 0
表示“真正卸载”(不是升级),此时可以做彻底清理- alternatives 的软链清理放在 %preun
- 日志、数据、残留目录建议全部 rm 掉,避免空间浪费
常见问题及实用链接
怎么查验打包后的 rpm 钩子? 推荐阅读:如何查看Rpm包执行钩子
多版本配置和 alternatives 深度说明 参考:多版本管理解读-配置级
- 01
- bigtop-select 打包缺 compat 报错修复 deb07-16
- 02
- bigtop-select 打包缺 control 文件报错修复 deb07-16
- 03
- 首次编译-环境初始化 必装07-16