转自:https://www.cnblogs.com/zafu/p/7423758.html
%pre 和 %post 脚本片段分别在软件包安装前和安装后执行。%preun 和 %postun 脚本片段分别在软件包卸载前和卸载后执行。%pretrans 和 %posttrans 脚本片段分别在软件包事务开始和结束时执行。升级软件包时,按如下顺序执行脚本片段:
- 检查软件包依赖、下载软件包和 DRPM
- (all)%pretrans:事务开始时,执行新软件包的此段代码
- ...... (操作其它软件包) ......
- (any)%triggerprein:此包的新版本安装之前,触发此包或其他包的脚本(如果有)
- (new)%triggerprein:指定的其他软件包安装之前,触发此脚本
- (new)%pre:执行新软件包的 %pre 脚本
- ...... (安装所有新文件) ......
- (new)%post:执行新软件包的 %post 脚本
- (any)%triggerin:安装此软件包时,触发此包或其他包的脚本(如果有)
- (new)%triggerin:安装指定的其他软件包时,触发此脚本
- (old)%triggerun:卸载指定的其他软件包的旧版本时,触发此脚本
- (any)%triggerun:卸载此软件包的旧版本时,触发此包或其他包的脚本(如果有)
- (old)%preun:执行旧软件包的 %preun 脚本
- ...... (删除所有旧文件) ......
- (old)%postun:执行旧软件包的 %postun 脚本
- (old)%triggerpostun:指定的其他软件包的旧版本已卸载之后,触发此脚本
- (any)%triggerpostun:此包的旧版本已卸载之后,触发其他包的脚本(如果有,此包脚本不运行)
- ...... (操作其它软件包) ......
- (all)%posttrans:事务结束时,执行新软件包的此段代码
- 验证软件包,Done