Actualización de php53 a php53u (repositorios de epel a IUS) - Centos 6.4


0

Quiero actualizar mi servidor CentOS 6.4 de php53 (repositorio de epel) a php53u (repositorio de ius). Ya habilité el repositorio ius, pero dudo en jugar porque hay sitios web de producción en el servidor.

(Debido a que los sitios de producción están en Drupal 7, quiero permanecer en la pista 5.3, pero también quiero instalar un sitio de desarrollo de Drupal 8, que requiere un mínimo de 5.3.10 - epel solo me da 5.3.3)

¿Alguien puede darme una pista sobre cuál sería el enfoque más seguro:

  1. eliminar php53 (epel) e instalar php53u
  2. simplemente instale php53u y vea qué sucede
  3. tu otra recomendación

Un par de minutos de inactividad son aceptables, pero no más.


3
¿Por qué no probarlo en un servidor provisional?
Ignacio Vazquez-Abrams

Buena idea: no tengo un servidor provisional que ejecute el mismo sistema operativo.
Ursula

VMWare, Xen, KVM, virtualbox ... no necesitas hardware para hacer uno. Si no prueba los cambios antes de realizarlos en su servidor de producción, espere que se rompan.
yoonix

Trabajando en ello ahora ...
Ursula

No puede reemplazarlo, primero debe borrar php-5.3.3 y luego instalar php-53u desde ius. No olvides instalar mysqlclient16
ALex_hha

Respuestas:


1

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:

  1. Lanzamiento yum shell
  2. Decirle que borre PHP (tenga en cuenta que aún no lo hará )
  3. Pedirle que instale los paquetes enumerados (nuevamente, esto solo los agregará a la lista)
  4. 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.
  5. 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/nsolicitud 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 erasedentro 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.


0

Ok, esto es lo que hice, lo que funcionó y lo que no:

Tres escenarios:

  1. simplemente instale php53u y vea qué sucede reemplaza a php pero se queja de las dependencias

  2. eliminar php e instalar php53u

    Ese fue el que funcionó a las mil maravillas:

    yum erase php

    yum install php53u php53u-common php53u-xml php53u-devel php53u-mysql php53u-pecl php53u-gd

  3. La recomendación de los comentaristas fue probar esto en un servidor de prueba primero (¡gracias por animarme!). Lo probé en un servidor CentOS 5.9 que ejecuta un sitio de desarrollo Drupal 7 (y un montón de cosas no relacionadas con PHP). Ese servidor ejecuta un servidor mysql 5.6, que requería instalar manualmente las rpm php53u-mysql usando --nodeps para que funcione - solo agregando esto aquí para completarlo.

Al final, no hubo tiempo de inactividad, solo una recarga elegante de httpd.


0

Mi problema giraba en torno al tema "conflictos de php53-common con php-common". La caja es un servidor antiguo e iba a probar un código antes de ponerlo en la máquina de producción. Está ejecutando Centos 5 y solía ser producción, pero ahora está relegado a pruebas. Es demasiado viejo para actualizar a Centos 6x sin nuevas agallas, así que estoy atascado con él por ahora.

Entonces ... prácticamente nada funcionó hasta que me topé con esta idea en la web:

Instalar repositorios epel e ius. Eliminar todos los paquetes php Instale todos los paquetes php53u como se refleja en la respuesta anterior.

No usé "yum borrado" en absoluto.


0

Lo que normalmente hago en centOS 6.x para actualizar php predeterminado de 5.xa ius php53u es:

rpm -Uhv https://centos6.iuscommunity.org/ius-release.rpm
yum -y install yum-utils yum-plugin-replace
yum -y install libtidy
yum -y --enablerepo=ius-archive replace php --replace-with php53u
yum -y --enablerepo=ius-archive install php53u php53u-common php53u-imap php53u-bcmath php53u-gd php53u-dba php53u-mbstring php53u-mcrypt php53u-mysql php53u-soap php53u-xml php53u-tidy
php -v
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.