我正在为 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|)\(.*\)$