【问题标题】:rpm install different package as dependencyrpm 安装不同的包作为依赖
【发布时间】:2016-01-20 11:30:00
【问题描述】:

我已经从我们的项目中创建了 rpm 包。在这个包中只有二进制文件和脚本,二进制文件依赖于特定的内核版本(3.10.0-327.el7)。所以我将它添加到 rpm 规范文件中:

Requires:       kernel = 3.10.0-327.el7

现在它大部分时间都可以正常工作,但是如果目标机器上安装了 kernel-3.10.0-327.4.4.el7(注意 4.4.el7)而不是 kernel- 3.10.0-327.el7 然后 yum 不安装 kernel-3.10.0-327.el7 而是安装 kernel-debug-3.10.0-327.el7 这基本上破坏了我的包。

有没有办法在 rpm 规范文件中指定我不想要 kernel-devel 但我希望将特定内核安装为依赖项?

非常感谢。

【问题讨论】:

  • 为什么会破坏你的包裹?这不只是一个带有额外调试信息的普通内核吗?它不适合您的包裹到底需要什么?是不是文件丢失了?
  • 我认为这个包只是调试符号,但我的包对实际的内核包有依赖,所以它不会启动。另外,如果我想删除我的包,那么 yum 会写几个关于损坏包的错误。
  • kernel-debug 包声称是打开调试的内核。你可以亲眼看到yum info kernel-debug。我没有问你认为是什么破坏了它。我问是什么 破坏了它。您的应用程序是否无法运行?它会抛出错误吗?删除它时会出现什么“损坏的包”错误? rpm -qpi --provides $your_package.rpm 输出什么?
  • 应用程序本身很好,主要问题是 yum 安装了不同的依赖项。我特别添加了 Requires: kernel = 3.10.0-327.el7 但是 yum 以某种方式安装了 kernel-debug 包,这不是我想要的。现在这只发生在一种情况下:从更新安装了kernel-3.10.0-327.4.4.el7,然后才安装kernel-debug包,如果在目标机器上没有从更新安装内核(只有kernel-3.10.0-229.el7) 然后 yum 正确安装 kernel-3.10.0-327.el7。安装更新的内核后,擦除软件包时会出现问题。
  • 指定问题:我已经用 yum 安装了软件包,它还安装了 kernel-debug,然后我可以删除我的软件包,但是当我想删除 kernel-debug 并在之后只安装内核时它依赖于失败。之后只尝试安装内核会导致 yum 无所事事。

标签: linux centos rpm packaging


【解决方案1】:

我知道这是旧的,但我只是偶然发现了同样的问题。希望它可以对其他人有所帮助。我能够按如下方式格式化该行来解决问题。

Requires:       kernel-%{_target_cpu} = 3.10.0-693.el7

(不同的版本,同样的问题。)我在 kmods v1 标准的模板中找到了这个解决方案。它记录在这里:https://rpmfusion.org/Packaging/KernelModules/Kmods1

【讨论】:

    猜你喜欢
    • 2021-05-01
    • 1970-01-01
    • 2010-10-26
    • 2012-01-26
    • 2015-10-14
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 2019-01-15
    相关资源
    最近更新 更多