rpm 또는 dnf가 기본 Perl을 인식하지 못하는 이유는 무엇입니까?

rpm 또는 dnf가 기본 Perl을 인식하지 못하는 이유는 무엇입니까?

이 패키지를 설치하려고 하면 실패 합니다 rpm.perl

$ 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-y알아낸 package-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-interpreter.rpmfind.net에서 패키지에 포함된 Requires 및 presents 키워드를 볼 수 있습니다.

관련 정보