如果 preremove.sh scipt 在 postinstall.sh 之后运行,如何正确更新 rpm?

如果 preremove.sh scipt 在 postinstall.sh 之后运行,如何正确更新 rpm?

猫 /etc/redhat-release

CentOS Linux release 7.4.1708 (Core) 

百胜列表 百胜

yum.noarch  3.4.3-154.el7.centos

回购协议:https://github.com/patsevanton/simple-package-update

我构建了第 1 个和第 2 个版本命令

mvn clean package

当第1个版本更新到第2个版本时

Running transaction
  Updating   : simple-package-update-1-2.noarch  1/2 

Run postinstall.sh
Run preremove.sh
  Cleanup    : simple-package-update-1-1.noarch  2/2 
  Verifying  : simple-package-update-1-2.noarch  1/2 
  Verifying  : simple-package-update-1-1.noarch  2/2 

Updated:
  simple-package-update.noarch 0:1-2 

第一的

运行 postinstall.sh

第二

运行 preremove.sh

如果 preremove.sh scipt 在 postinstall.sh 之后运行,如何正确更新 rpm?

preremove.sh 包含注销服务

postinstall.sh 包含注册服务

答案1

删除包时会调用 %preun scriptlet (在您的情况下为 preremove.sh)。即使在升级期间也会发生这种情况,因为旧软件包将被删除并安装新软件包。您可以使用 的值检查是否升级$1。例如这里记录了https://fedoraproject.org/wiki/Packaging:Scriptlet

相关内容