lunes, 23 de enero de 2012

Downgrade PHP 5.3.x a 5.2.x

Gracias a : http://blog.jorgeivanmeza.com/2010/07/degradar-php-5-3-a-5-2-en-gnulinux-ubuntu-10-04/


Introducción.

La versión mas reciente de Ubuntu, Lucid Lynx (10.04), incluye en sus repositorios por defecto la versión 5.3 de PHP la cual trae consigo una serie de modificaciones considerables que hacen que muchas de las aplicaciones requieran algún tipo de modificaciones para funcionar correctamente.
Mientras se realizan estas modificaciones para actualizar las aplicaciones sea hace necesario continuar utilizando las aplicaciones existentes y para esto se debe reemplazar la versión instalada de PHP por la versión mas reciente de la serie anterior (5.2.x).  La migración no es trivial debido a que los paquetes vienen directamente de los repositorios, sin embargo si se utiliza el script provisto opr KAndy el proceso se simplifica enormemente.

Instalación de PHP.

Si aún no cuenta con PHP instalado en el equipo puede realizar una instalación básica mediante la ejecución de la siguiente instrucción.  Instale los demás paquetes que considere necesarios.
$ sudo aptitude install apache2 php5 php5-cli php5-mysql
En este punto el equipo tendrá instalado PHP 5.3 y es el momento de degradarlo a su versión anterior.
$ php -v
PHP 5.3.2-1ubuntu4.2 with Suhosin-Patch (cli) (built: May 13 2010 20:03:45)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Degradar PHP.

Tomar nota de los paquetes relacionados con PHP que se encuentran actualmente instalados.
$ php_installed=`dpkg -l | grep  php| awk  '{print $2}' |tr "\n" " "`
Descargar el script de KAndy de la siguiente ubicación y almacenarlo con el nombre de downgradePHP.sh.
Ejecute el script en la máquina que se desea degradar.
$ chmod +x downgradePHP.sh
$ ./downgradePHP.sh
Recuperar los demás paquetes instalados.
$ sudo apt-get install $php_installed




ARCHIVO SH



# remove all php packge
sudo aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
# use karmiс for php pakage
# pin-params:  a (archive), c (components), v (version), o (origin) and l (label).
echo -e "Package: php5\nPin: release a=karmic\nPin-Priority: 991\n"  | sudo tee /etc/apt/preferences.d/php > /dev/null
apt-cache search php5-|grep php5-|awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'|sudo tee -a /etc/apt/preferences.d/php > /dev/null
apt-cache search -n libapache2-mod-php5 |awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'| sudo tee -a /etc/apt/preferences.d/php > /dev/null
echo -e "Package: php-pear\nPin: release a=karmic\nPin-Priority: 991\n"  | sudo tee -a /etc/apt/preferences.d/php > /dev/null
# add karmic to source list
grep 'main restricted' /etc/apt/sources.list|grep -v "#"| sed s/lucid/karmic/g | sudo tee /etc/apt/sources.list.d/karmic.list > /dev/null
# update package database (use apt-get if aptitude crash)
sudo apt-get update
# install php
sudo aptitude install -t karmic php5-cli php5-cgi
# or (and) sudo apt-get install -t karmic  libapache2-mod-php5
sudo aptitude hold `dpkg -l | grep php5| awk '{print $2}' |tr "\n" " "`
#done




Verificar la nueva versión de PHP.

$ php -v
PHP 5.2.10-2ubuntu6 with Suhosin-Patch 0.9.7 (cli) (built: Oct 23 2009 16:28:03)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

Tienes un error en la linea php_installed la correcta seria:
$ php_installed=`dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
El error radica en `{print $2}´ '{print $2}' el escape lo tenias mal puesto.
De todas formas el post es muy bueno. Gracias :)


ERROR AL ACTUALIZAR VUELVE A PHP 5.3.x??


Si trabajas en entornos de desarrollo LAMP puede que ya hayas pasado por esto, pero para los "novatos" será una chuleta de utilidad si das con este sitio a tiempo.
La versión de Ubuntu 10.04 Lucid, como sabéis utiliza php 5.3 pero no todos trabajamos con esta versión de php, aunque todo llegará, y claro es cuando nos llevamos las manos a la cabeza cuando hacemos el update/instalación de Ubuntu 10.04.
Bien para hacer la instalación de php5.2 es muy sencillo, con seguir los pasos del enlace de este blog lo tenemos solucionado.
Pero luego, como nuestro repositorio tendrá más información disponible tienes que aumentar el valor de la variable APT::Cache-Limit para evitar el error al refrescar nuestros repositorios.
Crea el fichero 00apt en:
/etc/apt/apt.conf.d/00apt
Y le asignamos un valor elevado al APT::Cache-Limit:
APT::Cache-Limit 99999999;
Bien, ahora ya podemos actualizar los repositorios sin errores y estaremos trabajando con la versión php5.2 en Ubuntu 10.04.

No hay comentarios: