Por que o yum está escolhendo uma versão inferior para instalar?

0

Por razões que não posso controlar, estou sendo forçado a rolar meu próprio rpms para PHP no CentOS 7.4. Eu construí o rpms para o php 7.2.5 e os instalei em um repositório local. yum install php pega a versão local e o pacote é instalado em / usr / local. Meu problema é com o php-pear. Por alguma razão, o yum quer pegar a versão stock do php-pear em vez da minha versão, mesmo que minha versão tenha o maior número de versão.

# 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
 ...

Eu defini a prioridade do repositório nci-f para 1 sem efeito. Eu sei que posso usar yum install php-pear-7.2.5-1.el7.centos para instalar o pacote específico, mas ambos querem usar o comando mais simples (em mais de 400 servidores) e querem garantir que as atualizações funcionem no futuro.

Além disso, no meu arquivo .spec para o pacote php-pear eu tenho a linha

Obsoletes: php-pear  <= 1:1.9.4

Por que o yum está escolhendo o pacote de versões inferiores e como posso fazê-lo preferir meu pacote?

    
por Doug O'Neal 17.05.2018 / 15:01

1 resposta

1

Veja a época (o 1 em 1:1.9.4-21 ), ele substitui seus pacotes epoch 0 (padrão).

A época foi introduzida em pacotes de rpm precisamente para poder "consertar" números de versão que retrocedem. Use com cuidado extremo .

Além disso, os pacotes RHEL / Centos provavelmente incluem muitas correções / ajustes locais. Eu sugiro que você comece com os pacotes de fontes oficiais e ajuste-os, substituindo os códigos-fonte por versões mais novas, conforme necessário.

    
por 17.05.2018 / 18:46

Tags