3

我整天都在尝试各种事情,但没有任何进展。

我正在为我的应用程序 (MyApp.rpm) 为 RHEL6 64 位编译一个 rpm 包,它需要一个名为 aksusbd.rpm 的第三方 32 位驱动程序包。现在,aksusbd.rpm 又需要兼容模式,由 glibc.i686.rpm 在 RHEL6 上提供。

所以在我的 MyApp.rpm 规范文件的某个地方,我有:

我的应用程序规范

Requires: glibc(x86-32) 
Requires: aksusbd >= 1.14

它在安装(yum install MyApp)期间所做的是,首先安装 aksusbd,但由于未安装 32 位兼容性而失败。然后只是为了取笑我,在安装 glibc 之后立即。所以当一切都结束时,我可以打字

yum install aksusbd 

这次它可以工作了,因为现在安装了 glibc。

我到底怎么教它做得比这更好!

(咆哮)

4

4 回答 4

2

您可以按照 Aaron 的建议并使用rpmrebuild调整您拥有的第三方 RPM 。它允许您修改 RPM 包的要求规范:

rpmrebuild --package -n --edit-requires <your third party rpm package>

这是一个 hack,但我不会担心 RPM 中的 requires 标签。

于 2013-06-05T15:25:52.353 回答
0

听起来aksusbdRPM 是需要修复的 - 他们需要一个RequiresRequires(pre)设置。向驱动程序供应商提交错误。

于 2013-06-04T00:53:28.637 回答
0

首先,我建议将要求放在同一行。只需用逗号分隔它们,然后它们应该按照您指定的顺序进行。如果没有,并且您使用的是 RPM 版本 4.3 或更低版本,则可以使用页面一半左右的rpm.org 文档中指定的 PreReq 标记。

如果这些解决方案都不起作用,或者您使用的 RPM 版本大于或等于 4.4,我会想象正在发生的其他事情会导致问题。我将首先为一些“假”项目创建一个新规范,该规范专门针对在 aksusbd 之前未安装 glibc 的问题。如果这行得通,我们知道它与您的 MyApp.spec 有关,如果它不起作用,那么我建议查看 glibc 的命名约定,也许它如何解释您的 (x86-32) 存在某种问题。

于 2013-06-03T17:54:11.870 回答
0

我遇到了完全相同的问题(在 YUM 组中也是如此)。如果 Forrest 建议将要求放在同一行中对您有用,请告诉我们。否则,您可以尝试添加只需要 aksusbd 的 RPM 并将其添加到需要列表中。如果 YUM 以 Alpha-beta 顺序安装依赖项,请将其命名为 aksusbd 和 glibc 之间的名称,它可能会起作用。

于 2013-06-05T05:54:07.240 回答