제가 통제할 수 없는 이유로 CentOS 7.4에서 PHP용 rpm을 직접 출시해야 했습니다. 저는 PHP 7.2.5용 rpms를 구축하고 로컬 저장소에 설치했습니다. yum install php
로컬 버전을 선택하고 /usr/local에 패키지를 설치합니다. 내 문제는 php-pear에 있습니다. 내 버전의 버전 번호가 더 높음에도 불구하고 어떤 이유로 yum은 내 버전 대신 php-pear의 기본 버전을 선택하려고 합니다.
# yum --showduplicates list php-pear
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Available Packages
php-pear.noarch 1.10.5-1.el7.centos nci-f
php-pear.noarch 1:1.9.4-21.el7 base
php-pear.noarch 1:1.9.4-21.el7 base
php-pear.noarch 1:1.9.4-21.el7 base
# yum install php-pear
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package php-pear.noarch 1:1.9.4-21.el7 will be installed
--> Processing Dependency: php-bz2 for package: 1:php-pear-1.9.4-21.el7.noarch
--> Processing Dependency: php-tokenizer for package: 1:php-pear-1.9.4-21.el7.noarch
--> Processing Dependency: php-xml for package: 1:php-pear-1.9.4-21.el7.noarch
--> Processing Dependency: php-cli for package: 1:php-pear-1.9.4-21.el7.noarch
--> Processing Dependency: php-zlib for package: 1:php-pear-1.9.4-21.el7.noarch
--> Processing Dependency: php-posix for package: 1:php-pear-1.9.4-21.el7.noarch
--> Processing Dependency: php-ftp for package: 1:php-pear-1.9.4-21.el7.noarch
--> Processing Dependency: php-pcre for package: 1:php-pear-1.9.4-21.el7.noarch
--> Running transaction check
...
nci -f 저장소의 우선순위를 1로 설정했지만 효과가 없습니다. 이를 사용하여 특정 패키지를 설치할 수 있다는 것을 알고 있지만 yum install php-pear-7.2.5-1.el7.centos
더 간단한 명령(400개 이상의 서버에서)을 사용하고 향후 업데이트가 작동하는지 확인하고 싶습니다.
또한 php-pear 패키지의 .spec 파일에는 다음 줄이 있습니다.
Obsoletes: php-pear <= 1:1.9.4
Yum이 더 낮은 버전의 패키지를 선택하는 이유는 무엇이며 내 패키지를 선호하도록 하려면 어떻게 해야 합니까?
답변1
(기본) epoch 패키지를 재정의하는 epoch( 1
in ) 를 살펴보세요 .1:1.9.4-21
0
Epoch는 이전 버전 번호를 정확하게 "수정"할 수 있도록 rpm 패키지에 도입되었습니다. 그리고 사용극심한경고하다.
또한 RHEL/Centos 패키지에는 많은 로컬 수정 사항/조정 사항이 포함될 수 있습니다. 공식 소스 패키지로 시작하고 이를 조정하여 필요에 따라 소스를 최신 버전으로 교체하는 것이 좋습니다.