Supongo que sus comandos deben estar en dos líneas separadas. Lo edité para reflejar eso.
El problema aquí es que "yum erase php" también eliminará las dependencias. Esto significa que perderá los paquetes que instaló que dependen de PHP. Existe un comando yum llamado replace
. pero no siempre está presente y a veces ... sorpresas. Y no en el buen sentido.
Por lo tanto, prefiero salir yum shell
. Los comandos para completar su operación se verían así:
yum shell
erase php
install php53u php53u-common php53u-xml php53u-devel php53u-mysql php53u-pecl php53u-gd
ts
run
En orden, somos:
- Lanzamiento
yum shell
- Decirle que borre PHP (tenga en cuenta que aún no lo hará )
- Pedirle que instale los paquetes enumerados (nuevamente, esto solo los agregará a la lista)
- Solicitando "show de transacciones"; Es decir, pedirle a Yum que nos diga qué está por hacer. Solo un control de cordura, realmente, ya que veremos esto nuevamente en el siguiente paso.
- Diciéndole a yum que ejecute la transacción como se indica Verificará las dependencias y producirá la lista completa de acciones que tiene la intención de tomar, y le presentará una
y/n
solicitud tradicional de yum para su aprobación antes de continuar.
Para asegurarme de que realmente obtengo todo, he sabido escribir un poco de bash. Algo como:
rpm -qa --queryformat '%{NAME}-%{VERSION}.%{ARCH}\n' | grep -E '^php53[^u].*5\.3' | tr '\n' ' '
rpm -qa --queryformat '%{NAME}-%{VERSION}.%{ARCH}\n' | grep -E '^php53[^u].*5\.3' | sed 's/php53/php53u/;s/-5\.3\..*//'
La primera línea me da la lista de paquetes que puse erase
dentro de yum shell
. La segunda línea me da la lista de paquetes para poner después install
. Tenga en cuenta que es posible que deba manejar algunos paquetes auxiliares (por ejemplo, los de PECL) manualmente. Use alguna variante rpm -qa | grep php | grep -vE '^php53.*5\.3'
para rastrearlos. Sin embargo, deberían ser raros.