由于我无法控制的原因,我被迫在 CentOS 7.4 下为 PHP 推出自己的 rpm。我已经为 php 7.2.5 构建了 rpm 并将它们安装在本地存储库中。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 选择较低版本的包,我怎样才能让它更喜欢我的包?