【问题标题】:How to create rpm A which support overlapping of installed rpm B files?如何创建支持已安装的 rpm B 文件重叠的 rpm A?
【发布时间】:2022-01-05 07:41:04
【问题描述】:

我想创建 rpm A,我的要求是每当我安装 rpm A 时,它会替换一些已安装的 rpm B 的文件。

为此我们在 debian 中使用了

Provides: pkg C
Conflicts: pkg C
Replaces: pkg C

替换整个包,强制移除它们。

如何在 rpm 规范文件中执行此操作。

【问题讨论】:

    标签: rpm rpmbuild rpm-spec


    【解决方案1】:

    如果您希望 RPM B 消失,那么是的,同样的事情是“Provides”(让其他寻找 B 的 RPM 开心)和“Conflicts”(强制卸载 B)。

    如果你想让 B 留下来,那么除非你能做一些深奥的事情,否则你就不走运了。最简单的方法是执行 myorg-common 之类的操作,其中包含这些文件,然后是 myorg-amyorg-b,它们相互冲突,但都需要 myorg-common(并相互提供)。

    【讨论】:

    • 我也做了同样的事情,但是得到了类似“安装 RPM A 的文件 xyz 与包 RPM B 的文件冲突”这样的错误
    • 是的,不能同时安装。
    • 根据您的回答,RPM B 应该强制卸载?
    • 是的,A 应该拒绝安装。
    【解决方案2】:

    有两种解决方案。

    1. 重叠不在支持的 rpm 规范中,但我们可以使用命令行选项 rpm A --replacefile

    2. 在 RPM A 规范文件中使用 Obsoletes: 删除旧包或冲突包,并在 RPM A 中添加 Provides: 以使 RPM B 满意。

      注意:对于选项 2 rpm -i RPM A --> 不会废弃软件包。我们必须使用 yum install RPM A 或 rpm -U RPM A

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-13
      • 2012-08-28
      • 2011-08-07
      • 2012-02-06
      • 2012-12-15
      • 2020-12-02
      • 1970-01-01
      相关资源
      最近更新 更多