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

関連情報