Recientemente con la salida de la nueva versión LTS de Ubuntu, los desarrolladores decidieron distribuir PHP 5.3 y descontinuar PHP 5.2, aunque sana, esta decisición afectó mi trabajo debido que tengo copias de software/sitios que no están listos para PHP 5.3; me propuse entonces crear unos paquetes de PHP 5.2 para Ubuntu Lucid Lynx 10.04 y recientemente Maverick Meerkat aprovechando mi interés en el tema del empaquetamiento y dejo a dispocisión de los interesados las instrucciones para usar mi solución al problema.

Ya había una solución circulando en Internet que consiste en usar los paquetes de Karmic Koala más pinning, el pinning es una técnica que permite controlar de manera mas granular qué se instala en el sistema; en el caso de la solución de usar paquetes de karmic se usa pinning para instruir al apt a actualizar solo los paquetes de php desde los repositorios de karmic, mi solución también incluye el uso de pinning, pero esta vez para instruir al apt para que se mantenga en la rama 5.2.x de php.

De manera irracional (irracional porque no tengo razones de peso) no me gusta la solución de usar los paquetes de karmic y preferí no solo portar el PHP 5.2.10 que había disponible para karmic a lucid, sino además actualizar los paquetes de PHP a la versión 5.2.13 5.2.14 5.2.17 que es la versión mas reciente y segura de PHP al momento de escribir este post.

Bueno al grano, lo primero será configurar el apt para que solo instale paquetes de PHP con la versión 5.2.x, en realidad el pinning lo que hace es darle mas importancia a los paquetes que tengan versión 5.2 que a los que tienen versión 5.3, de manera que solo usara PHP 5.3 si no hay un paquete disponible de PHP en la rama 5.2, para hacerlo se crea un archivo en la carpeta /etc/apt/preferences.d con el nombre php5 (el nombre del archivo no es importante pero la carpeta sí)(se necesitan privilegios de root para crear el archivo).

El archivo debe contener:

Package: libapache2-mod-php5 libapache2-mod-php5filter php5 php5-cgi php5-cli php5-common php5-curl php5-dbg php5-dev5 php5-gd php5-gmp php5-ldap php5-mhash php5-mysql php5-odbc php5-pgsql php5-pspell php5-recode php5-snmpg php5-sqlite php5-sybase php5-tidy php5-xmlrpc php5-xsl php-pear php5-dev php5-mcrypt
Pin: version 5.2*
Pin-Priority: 1001

Cabe anotar que la línea Package: .... solo es 1 sola línea y no se puede partir en varias líneas, no se pueden usar comodines en los nombres de los paquetes pero sí en las versiones, queda advertido.

Ahora hay que añadir el repositorio en el cuál se encuentran los paquetes, en este caso mi ppa, para hacerlo escriba en la línea de comandos:

$ sudo apt-add-repository ppa:andphe/php
... 
$ sudo apt-get update

En estos momentos ya solo debe instalar PHP de manera regular y obtendrá PHP 5.2.13 5.2.14 5.2.17 en lugar de PHP 5.3.x

  • Julio/23/2010 Actualizado a PHP 5.2.14
  • Octubre/06/2010 Corrección del comando update
  • Octubre/13/2010 Actualización a Maverick y nuevo PPA
  • Marzo/2/2011 Actualizado a PHP 5.2.17 e incluye php5-mcrypt
<Anterior   Siguiente>

Quién es?

View Andrés F Vargas's LinkedIn profile Andrés F Vargas es un programador Colombiano, que le gusta el open source, en los últimos años se ha enfocado en el desarrollo y operación de aplicaciones web.