Perl
如何避免 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和其他我沒有理解的郵件列表。
rpmbuild 分析您的 rpm 包的內容,以自動確定您的程序工作所需的內容。如果您使用某些 perl 模組;這些需要安裝才能使您的程序正常工作。
但是,如果您不希望 rpm 為您完成所有這些工作;你可以加
AutoReqProv : no
到您的規範文件。了解更多資訊; 讀這個
為什麼不使用:
%define __requires_exclude ^perl(\s|)\(.*\)$