【问题标题】:Can I tell which packages are going to be installed next?我可以知道接下来要安装哪些软件包吗?
【发布时间】:2014-02-20 09:41:17
【问题描述】:

我有 3 个包,我们正在构建 spec 文件,用于安装我们的应用程序:

Package A
Package B
Package C

A depends on B
A depends on c

问题是这些软件包中的每一个都安装了需要在安装之前关闭 App Server 并在安装后重新启动的东西。

如果只安装 B 或 C 哪个好。

安装 A 并且有新版本的 B 和/或 C 时的问题,我的 App Server 需要 3 次串行重启,每次重启大约需要 10 分钟。

当我们构建 RPM 时,有没有办法让 A 和 B 检测到它们作为 A 的依赖项被安装/更新,而不是重新启动服务器并让 A 这样做?

【问题讨论】:

    标签: scripting rpm suse zypper


    【解决方案1】:

    我不知道是否有本地方法可以做到这一点,但我过去所做的是如果目标服务正在运行(例如httpd),则将所有包签入%pre。如果是,请关闭它并使用at 让它在未来一段合理的时间内(比如两分钟)重新启动。每个 RPM 还会检查重新启动是否已经在队列中(我使用了一个随机队列,例如“n”或其他东西),如果是,它会再将它撞出两分钟。最终结果应该是服务器只启动一次,在安装最终软件包后两分钟。

    缺点:尽管atin the LSB,但由于某些原因,少数机器没有安装它,所以我不得不将它添加到我的Requires 标签中。

    【讨论】:

    • 感谢您的回答,我今天学到了一些新东西,这让我度过了美好的一天!
    猜你喜欢
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    相关资源
    最近更新 更多