如何避免rpm包中出现不良依赖关系?

MUY*_*ium 4 perl dependencies rpmbuild

我正在为 RHEL7 制作一个包。当我尝试安装该软件包时,我得到

# yum localinstall mypackage-0.0-1.el7.rpm 
(...)
--> Running transaction check
---> Package webmin-GPI-init.noarch 0:0.0-1.el7 will be installed
--> Processing Dependency: perl(.::guardian-lib.pl) for package: webmin-GPI-init-0.0-1.el7.noarch
--> Processing Dependency: perl(.::hostconfig-lib.pl) for package: webmin-GPI-init-0.0-1.el7.noarch
--> Processing Dependency: perl(.::init-lib.pl) for package: webmin-GPI-init-0.0-1.el7.noarch
Run Code Online (Sandbox Code Playgroud)

我认为愿意为 Perl 模块命名.::init-lib.pl是不可取的。在代码中,我们可以找到类似的内容

#! /usr/bin/perl
require './init-lib.pl';
require './guardian-lib.pl'; 
require './hostconfig-lib.pl';
Run Code Online (Sandbox Code Playgroud)

我已设法使用文件win32中的以下选项删除.spec

%{?perl_default_filter}
%global __requires_exclude perl\\(VMS|perl\\(Win32|perl\\(\\.
Run Code Online (Sandbox Code Playgroud)

如何摆脱以点开头的 perl 包的依赖关系?

我浏览了互联网,发现https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering和其他我不明白的邮件列表。

Chr*_*aes 5

rpmbuild 分析 rpm 包的内容,以自动确定程序运行所需的内容。如果您使用某些 perl 模块;需要安装这些才能使您的程序正常工作。

但是,如果您不希望 rpm 为您完成所有工作;你可以加

AutoReqProv : no
Run Code Online (Sandbox Code Playgroud)

到您的规格文件。了解更多信息; 读这个