【发布时间】: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