TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 支持&共建

    • 蓝图愿景
    • 技术支持
    • 合作共建
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 支持&共建

    • 蓝图愿景
    • 技术支持
    • 合作共建
登陆
GitHub (opens new window)
  • 方法论

  • 组件编译技巧

  • 打包技巧-RPM

  • 实战-日志&源码解读全链路周期

    • Step0-打包完整链路
    • Step1-bigtop.bom配置
    • Step2-源码包触发下载
    • Step3-Tarball制备全流程
    • 适用于REDHAT

      • Step4-srpm源码包产出
      • Step5-rpm任务执行
      • Step6-spec指令解读[一]
      • Step7-spec指令解读[二]
      • Step8-spec指令解读[三]
      • Step9-spec指令解读[四]
      • Step10-spec指令解读[五]
      • Step11-spec执行钩子解读[一]
      • Step12-spec执行钩子解读[二]
        • 一、卸载前/后钩子(%preun / %postun)用途
        • 二、常见工程实践示例
  • 其他技巧

  • GOD-Bigtop
  • 实战-日志&源码解读全链路周期
  • 适用于REDHAT
JaneTTR
2025-07-05
目录

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

要点说明:

  • $1 = 0 表示“真正卸载”(不是升级),此时可以做彻底清理
  • alternatives 的软链清理放在 %preun
  • 日志、数据、残留目录建议全部 rm 掉,避免空间浪费

常见问题及实用链接

  • 怎么查验打包后的 rpm 钩子? 推荐阅读:如何查看Rpm包执行钩子

  • 多版本配置和 alternatives 深度说明 参考:多版本管理解读-配置级

#Bigtop#Gradle#SRPM#打包流程#大数据运维
Step11-spec执行钩子解读[一]
bigtop-select多系统编译改造

← Step11-spec执行钩子解读[一] bigtop-select多系统编译改造→

最近更新
01
bigtop-select 打包缺 compat 报错修复 deb
07-16
02
bigtop-select 打包缺 control 文件报错修复 deb
07-16
03
首次编译-环境初始化 必装
07-16
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式