Red Hat Training
A Red Hat training course is available for RHEL 8
5.8. Perls 스크립트를 사용하여 RPM 패키지를 처리하는 방법
RHEL 8부터 Perl 프로그래밍 언어는 기본 buildroot에 포함되지 않습니다. 따라서 Perl 스크립트를 포함하는 RPM 패키지는 RPM SPEC 파일에서 BuildRequires:
지시문을 사용하여 Perl에 대한 종속성을 명시적으로 나타내야 합니다.
5.8.1. 공통 Perl 관련 종속 항목
BuildRequires
에 사용되는 Perl 관련 빌드 종속 항목은 다음과 같습니다.
perl-generators
런타임
Requires
를 자동으로 생성하고 설치된 Perl 파일을제공합니다
. Perl 스크립트 또는 Perl 모듈을 설치할 때 이 패키지에 대한 빌드 종속성을 포함해야 합니다.perl-interpreter
Perl 인터프리터는
perl
패키지 또는%_perl
매크로를 통해 명시적으로 또는 패키지 빌드 시스템의 일부로 명시적으로 호출되는 경우 빌드 종속성으로 나열되어야 합니다.perl-devel
Perl 헤더 파일을 제공합니다. XS Perl 모듈과 같은
libperl.so
라이브러리에 연결하는 아키텍처별 코드를 빌드하는 경우,BuildRequires: perl-devel
.
5.8.2. 특정 Perl 모듈 사용
빌드 시 특정 Perl 모듈이 필요한 경우 다음 절차를 사용하십시오.
절차
RPM SPEC 파일에 다음 구문을 적용합니다.
BuildRequires: perl(MODULE)
참고시간이 지남에 따라
perl
패키지로 이동할 수 있기 때문에 Perl core 모듈에도 이 구문을 적용합니다.
5.8.3. 패키지를 특정 Perl 버전으로 제한
패키지를 특정 Perl 버전으로 제한하려면 다음 절차를 따르십시오.
절차
RPM SPEC 파일에서 원하는 버전 제약 조건과 함께
perl(:VERSION)
종속성을 사용합니다.예를 들어 패키지를 Perl 버전 5.22 이상으로 제한하려면 다음을 사용합니다.
BuildRequires: perl(:VERSION) >= 5.22
epoch 번호가 포함되어 있기 때문에 perl
패키지 버전에 대한 비교를 사용하지 마십시오.
5.8.4. 패키지가 올바른 Perl 인터프리터를 사용하는지 확인
Red Hat은 완전히 호환되지 않는 여러 Perl 인터프리터를 제공합니다. 따라서 Perl 모듈을 제공하는 모든 패키지는 빌드 시 사용된 것과 동일한 Perl 인터프리터를 런타임에 사용해야 합니다.
이를 확인하려면 다음 절차를 따르십시오.
절차
Perl 모듈을 제공하는 모든 패키지에 대해 RPM SPEC 파일에 버전 지정된
MODULE_COMPAT
Requires
를 포함합니다.Requires: perl(:MODULE_COMPAT_%(eval `perl -V:version`; echo $version))