RPM spec文件无法检测提供的包

时间:2013-10-24 05:39:55

标签: dependencies rpm-spec

我正在尝试编辑一个spec文件,当我尝试使用RPM在其他计算机上安装时,该文件总是会失败。我正在使用CentOS。这是错误。

error: Failed dependencies:
perl(ActsUtil) is needed by my_program
perl(ParseBishop) is needed by my_program

这两个文件都是RPM的依赖项。问题是,这两个文件实际上是在RPM包中提供的。这两个文件都是.pm文件,位于/opt/mysoftware/bin内。我知道可以使用rpm - ivh --nodeps mysoftware来解决。但我不喜欢使用那种方法。所以,我尝试修复spec文件。以下是我尝试过的一些代码。

第一次尝试

Summary:....
Name:..
Version:..
....
....
Provides: perl(ParseBishop), perl(ActsUtil)
...
...
%install
...
...
%changelog

第二次尝试

Summary:....
Name:..
Version:..
....
....
Provides: ParseBishop, ActsUtil
...
...
%install
...
...
%changelog

第3次尝试

Summary:....
Name:..
Version:..
....
....
Provides: ParseBishop.pm, ActsUtil.pm
...
...
%install
...
...
%changelog

第四次尝试

Summary:....
Name:..
Version:..
....
....
Provides: /opt/mysoftware/bin/ParseBishop, /opt/mysoftware/bin/ActsUtil
...
...
%install
...
...
%changelog

我在做“提供”命令错了吗?或者我解决问题的方法已经错了?所有的指导和帮助都非常感谢。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。问题是我提供的是错误的区域。假设它位于代码的顶部。

Summary:...
Name:...
Version:...
Provides: perl(ParseBishop), perl(ActsUtil)
...
...
%install
...
...
%changelog

验证这一点。我在内置文件夹中使用了rpm -qp --provides mysoftware.rpm。它将显示我的包中提供的内容。谢谢所有帮助。

相关问题