Perl

如何避免 rpm 包中的不良依賴關係?

  • November 17, 2019

我正在為 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和其他我沒有理解的郵件列表。

rpmbuild 分析您的 rpm 包的內容,以自動確定您的程序工作所需的內容。如果您使用某些 perl 模組;這些需要安裝才能使您的程序正常工作。

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

AutoReqProv : no

到您的規範文件。了解更多資訊; 讀這個

為什麼不使用:

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

引用自:https://unix.stackexchange.com/questions/310384