rpmまたはdnfがデフォルトのPerlを認識しないのはなぜですか?

rpmまたはdnfがデフォルトのPerlを認識しないのはなぜですか?

このパッケージをインストールしようとすると失敗しますrpmperl

$ rpm -ivh <package-y>
error: Failed dependencies:
    perl is needed by package-y.x86_64

実行すると、dnf info perlPerlがインストールされていないと表示されますが、perl私のシステムで見つけることができます。

which perl
perl: /usr/bin/perl /opt/lampp/bin/perl /usr/share/man/man1/perl.1.gz

そしてPerlのバージョンをチェックしてください。

$ perl --version

This is perl 5, version 26, subversion 2 (v5.26.2) built for x86_64-linux-thread-multi
(with 47 registered patches, see perl -V for more detail)

Copyright 1987-2018, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

Perlは私のシステム(fedora)にデフォルトでインストールされているようですが、パッケージマネージャ(dnfまたはrpm)がそれを認識しないのはなぜですか?

ベストアンサー1

Perlなどの依存関係を指定するのは複雑かもしれません。たとえば、package-y必要と言うのはperlPerl 5.xを意味しますか、それともPerl 6.xを意味しますか? Perl 5.xの特定のマイナーバージョンが必要ですか?それとも古いPerl 4.xで十分でしょうか?

これは Fedora パッケージングガイドの Perl 関連部分です。ご覧のとおり、かなり複雑です。あなたはpackage-yこの指示に従わないようです。 Fedora専用ですか、それとも別のランダム配布用にパッケージ化されていますか?

再パッケージ化せずにこの問題を解決するための最良の方法は、Perlの実際の特定の要件が何であるかを調べpackage-ypackage-y(ダミーパッケージが満たす要件を許可するために)、少なくとも(パッケージマネージャは実際の要件について情報を提供します。dependencies-for-package-y.rpmProvides: perlpackage-yRequires: perl(:VERSION) >= <minimum required Perl version for package-y>package-y

package-yプリコンパイルされたPerlモジュールを含めるかリンクする場合は、libperl.so仮想パッケージにも適切なRequires: perl(:MODULE_COMPAT_<version number>)キーワードが必要です。これにより、現在のPerlアップデート方法によってセキュリティ上の問題が原因でモジュールの互換性が損なわれる場合、パッケージマネージャはそれを更新、削除、または更新するとpackage-y問題が発生するため、Perlアップデートを延期する必要があることを伝えますpackage-y

あなたの電流は/usr/bin/perl実際に呼ばれるパッケージによって提供されますperl-interpreterrpmfind.netでは、パッケージに含まれているRequiresおよびpresentsキーワードを表示できます。

おすすめ記事