Upgrade gracioso de php53u para php54

5

Estamos executando um nó do CentOS 6 usando o iuscommunity repo e queremos atualizar o php53u previamente instalado para o php54.

No entanto, isso introduz um conflito de dependência entre php53u & php54. Alguém tem idéia para esse problema?

--> Running transaction check
---> Package php54-fpm.i686 0:5.4.5-1.ius.el6 will be installed
--> Processing Dependency: php-common = 5.4.5-1.ius.el6 for package: php54-fpm-5.4.5-1.ius.el6.i686
---> Package php54-gd.i686 0:5.4.5-1.ius.el6 will be installed
---> Package php54-mbstring.i686 0:5.4.5-1.ius.el6 will be installed
---> Package php54-pecl-apc.i686 0:3.1.11-2.ius.el6 will be installed
--> Processing Dependency: php54 >= 5.3.5-1 for package: php54-pecl-apc-3.1.11-2.ius.el6.i686
--> Running transaction check
---> Package php54.i686 0:5.4.5-1.ius.el6 will be installed
--> Processing Dependency: php54-cli = 5.4.5-1.ius.el6 for package: php54-5.4.5-1.ius.el6.i686
---> Package php54-common.i686 0:5.4.5-1.ius.el6 will be installed
--> Running transaction check
---> Package php54-cli.i686 0:5.4.5-1.ius.el6 will be installed
--> Processing Conflict: php54-5.4.5-1.ius.el6.i686 conflicts php53u
--> Processing Conflict: php54-5.4.5-1.ius.el6.i686 conflicts php < 5.4
--> Finished Dependency Resolution
Error: php54 conflicts with php53u
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
    
por sparanoid 12.08.2012 / 13:34

2 respostas

5

Você já tentou remover o php53u? Um simples:

yum remove php53u

Seguido por:

yum install php54

Deve estar fazendo o truque para você. Se não, você pode tentar remover o (s) pacote (s) php53u usando a ferramenta 'rpm', deixando as dependências intactas, mas primeiro verifique a lista de pacotes instalados para depois reinstalá-los do novo repositório php54:

rpm -qa | grep ^php53u.* > /root/php-packages.log

Guarde uma cópia da lista produzida. Em um dos meus servidores, esta lista se parece com:

$ rpm -qa | grep ^php54*
php54-common-5.4.4-1.ius.el6.x86_64
php54-pdo-5.4.4-1.ius.el6.x86_64
php54-mysql-5.4.4-1.ius.el6.x86_64
php54-fpm-5.4.4-1.ius.el6.x86_64
php54-gd-5.4.4-1.ius.el6.x86_64
php54-cli-5.4.4-1.ius.el6.x86_64
php54-5.4.4-1.ius.el6.x86_64
php54-mbstring-5.4.4-1.ius.el6.x86_64

Posso removê-los, sem remover dependências, como tal:

for p in $( cat /root/php-packages.log ); do rpm -e --nodeps $p; done

(Note que estou usando 'php54' aqui, você precisará usar 'php53u').

Depois de ter feito isso, basta instalar o pacote php54 via yum:

yum install php54

OU você pode automatizar a reinstalação de tudo:

yum install $( cat /root/php-packages.log | sed 's/php53u/php54/g' )

Feito.

Aqui está um folheto para a coisa toda:

rpm -qa | grep ^php53u.* > /root/php-packages.log; for p in $( cat /root/php-packages.log ); do rpm -e --nodeps $p; done; yum install $( cat /root/php-packages.log | sed 's/php53u/php54' ) -y

Espero que isso ajude: -)

    
por 12.08.2012 / 17:08
4

Outra maneira de fazer isso é usar o yum plugin yum-plugin-replace (como descrito no link ).

yum install yum-plugin-replace

Depois disso, você pode substituí-lo por:

yum replace php53u --replace-with php54

Esta é a maneira recomendada pelo ius, pois também tentará encontrar substitutos para todas as dependências instaladas, conforme necessário.

    
por 09.12.2013 / 10:24