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

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

我正在为 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

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

#! /usr/bin/perl
require './init-lib.pl';
require './guardian-lib.pl'; 
require './hostconfig-lib.pl';

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

%{?perl_default_filter}
%global __requires_exclude perl\\(VMS|perl\\(Win32|perl\\(\\.

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

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

答案1

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

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

AutoReqProv : no

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

答案2

为什么不使用:

%define __requires_exclude ^perl(\s|)\(.*\)$

相关内容