Instalar y usar repositorios de versiones anteriores de Ubuntu

¡Hola a todos!

La pregunta lógica… ¿Porqué habría necesidad instalar una versión anterior de Ubuntu?, sí, sé que no hay justificación para eso… pero bueno, se pueden dar situaciones en donde es un mal necesario… Por ejemplo, si un programa específico «x» utiliza una seria de paquetes con versiones muy detalladas (antiguas), entonces puede ser de interes el tema. Sí, también sé que hay forma de poder descargar los fuentes de cada paquete e intentar instalarlo en una versión actual de Ubuntu (actualmente, la 18.04), pero no hay garantía que todo saldrá bien, o por lo menos sería de ver cada caso en particular… y es que la tecnología avanza y sigue avanzando, y si bien los desarrolladores de software tratan de mantener cierta compatibilidad con las versiones legacy, no se puede tomarse en cuenta todos los detalles de todos los paquetes y combinaciones de los mismos. Recordemos que un paquete tiene dependencias que deben de satisfacerse, y si hay alguna incompatibilidad entre paquetes, es un dolor de cabeza arreglarlo.

Para poner un ejemplo práctico, digamos que necesitamos un servidor LAMP (servidor web Apache, BD con MySQL y PHP) y cierto sistema web utiliza la versión de php 5.2.x por tema de configuraciones específicas en el php.ini y el desarrollo del mismo; sí, sé que las aplicaciones se pueden adaptar, pero los cambios entre la versión de php 5.2.x a la 7.2.x (que es la estable hasta la fecha de creación de ésta entrada) son bastantes radicales, por cuanto la modificación del código del sistema web es sumamente grande.

Supongo que más de alguien ya ha logrado instalar php 5.2.x en Ubuntu 16.04 o 18.04 (versiones LTS), digamos con repositorios de terceros (no oficiales) o mediante la compilación de los códigos fuentes de cada paquete, pero para facilitar las cosas podemos hacer una instalación de una versión de Ubuntu anterior y modificar los orígenes de software (repositorios) para dicha versión «legacy». Los repositorios son oficiales de Ubuntu, pero ellos recomiendan que sirvan como para poder hacer upgrades de versiones hasta tener la más actual, y es lógico por motivos de seguridad… pero bueno.

Sin más, veamos de qué se trata. Por ejemplo, si necesito un servidor LAMP con versión de PHP 5.2.4 , investigo un poco en la web y me doy cuenta que ésta versión fue lanzada con la versión de Ubuntu Server 08.04 LTS; Primero, debemos descargar la ISO desde el sitio oficial de Ubuntu para éste fin, el cual es:

Ahí se encuentran los enlaces para las descargas respectivas de todas las versiones (y subversiones) de la rama 8.04.x

Una vez tengamos la ISO, la quemamos en un disco o hacemos booteable una memoria USB (con Unetbootin por ejemplo) e instalamos el SO en la máquina que queremos. Ahora, durante el proceso de instalación, podemos seleccionar e instalar con una interfaz sencilla ciertos «roles» básicos de servidor; en éste caso, «LAMP Server».

Y una vez finalizada la instalación, nuestro requisito de tener un servidor LAMP con php 5.2.4 ¡ya esta cumplido!. Lo comprobamos así:

sudo php -v

Pero… ¿si necesito instalar otros paquetes?, por ejemplo, php5-ldap (para conexión a un servidor LDAP) , php5-sybase (para conexión a un servidor mssql) , etc.

Si hacemos el típico sudo apt-get update para actualizar la lista de paquetes según los repositorios oficiales que tenemos, no nos funcionará… esto dado que oficialmente dichos repositorios ya estan fuera de línea (EOL, End-of-Line), por cuanto ya no es soportado… Igual, el link de arriba no contiene únicamente las ISO’s para descarga de las versiones anteriores de Ubuntu, sino que ¡también están los repositorios mismos de dichas versiones!.

En ése caso, aprovecharemos esto y nos iremos a modificar el archivo /etc/apt/sources.list que es en donde se enlistan las «fuentes» o «repositorios» disponibles de los paquetes de software candidatos a ser: actualizados, instalados, removidos, buscados, sujetos a comparación de versiones, etc.; Obviamente, aplica para sistemas basados en Debian, o por ende, Ubuntu.

sudo nano /etc/apt/sources.list

Las líneas que hacen referencia a los repositorios tienen ésta estructura:

deb http://sv.archive.ubuntu.com/ubuntu/ CODENAME main restricted universe multiverse

Tomar en cuenta lo que esta en negrita. En mi caso, aparece sv.archive porque el repositorio es propio de El Salvador (sv), pero ustedes tomen en cuenta el que les corresponda a ustedes (el que les aparezca en /etc/apt/sources.list ). Lo que haremos es hacer un par de reemplazos:

  • sv.archiveold-releases
  • codename → el respectivo codename de la versión. Pueden visitar éste enlace para conocer el nombre (codename): https://wiki.ubuntu.com/Releases
    • Tomar en cuenta que se debe agregar el primer nombre del codename y en minúscula. Para el caso de la versión 8.04 es hardy.

En nano, para buscar y reemplazar texto hacemos el siguiente procedimiento:

  • CTRL+W (para la función de buscar)
  • CTRL+R (para la función de reemplazar)
  • Ingresamos el texto de búsqueda que queremos reemplazar (por ejemplo, sv.archive) [ENTER]
  • Ingresamos el nuevo texto que queremos (por ejemplo, old-releases) [ENTER]
  • Ingresar la letra «a» (sin comillas) [ENTER]
    • Esto para que se aplique dicha búsqueda/reemplazo en todo el archivo.

Cerramos y guardamos. Nuestra línea de ejemplo (la de arriba), y obviamente todas las demás serán similares a ésta:

deb http://old-releases.ubuntu.com/ubuntu/ hardy main restricted universe multiverse

Ahora ya deberíamos poder actualizar la lista de paquetes de los repositorios al ingresar

sudo apt-get update

E instalar los paquetes que queramos. Por ejemplo:

sudo apt-get install php5-ldap php5-sybase

Captura de ejemplo:

Y con esto se concluye la entrada. Espero que les sea de utilidad.

¡Saludos!

Comentarios por Facebook

comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*