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|)\(.*\)$