【问题标题】:How to detect upgrade when an RPM that obsoletes another RPM is being installed如何在安装过时另一个 RPM 的 RPM 时检测升级
【发布时间】:2018-06-12 16:40:22
【问题描述】:

RPM 脚本在$1 中传递(操作完成时将留在系统中的该名称的包的数量),因此它们可以确定是否正在进行包升级或删除。由于我无法控制的原因,我相信该软件包的下一个版本可能与第一个版本具有不同的软件包名称。我尝试创建一个新包,"obsoletes" 旧包并使用它进行升级。但是,旧包 postun scriptlet 仍然得到 $1 == 0 并且我的 postun 清理脚本运行。

这有点边缘情况,因为从技术上讲,还有 0 个具有该名称的软件包,但我认为过时的情况可能会假装在升级过程中仍有一个具有该名称的软件包。有没有办法测试包被废弃时的情况,以便 scriptlet 可以确定正在升级而不是删除包?

【问题讨论】:

  • 虽然有 0 旧包的副本。这似乎确实是一个问题,但按照人们期望的方式行事。
  • 您解决过这个问题吗?
  • 在我的情况下,结果证明不会使用 rpm 升级功能。但是我确实想到,如果不存在可以由新包创建的“upgrade_is_ocurring”文件,则可以通过有条件地执行旧包脚本中的清理脚本来解决此问题,并由%postun 中的旧包或 %posttrans 中的新包

标签: centos redhat fedora rpm rpm-spec


【解决方案1】:

你可以试试这个命令来检查操作系统中的 rpm 包吗

rpm -qa | grep -i "(RPMNAME)"

【讨论】:

  • 不能在 RPM scriptlet 中运行 rpm
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-15
  • 2019-02-06
  • 2012-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
相关资源
最近更新 更多