我正在尝试编辑一个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
我在做“提供”命令错了吗?或者我解决问题的方法已经错了?所有的指导和帮助都非常感谢。
答案 0 :(得分:1)
我找到了解决方案。问题是我提供的是错误的区域。假设它位于代码的顶部。
Summary:...
Name:...
Version:...
Provides: perl(ParseBishop), perl(ActsUtil)
...
...
%install
...
...
%changelog
验证这一点。我在内置文件夹中使用了rpm -qp --provides mysoftware.rpm
。它将显示我的包中提供的内容。谢谢所有帮助。