Apt-pinning: Mezclar diferentes ramas de Debian

Cuando instalamos Debian podemos elegir entre tres ramas diferentes, en función de su estabilidad. Estas son Stable, Testing  y Unstable. Estas ramas reciben también unos nombres en código que van variando con cada nueva versión de Debian (así tenemos Lenny, Squeeze, Whezzy,…). La rama Unstable siempre recibe el mismo nombre en código: Sid. Podemos pasar de una versión a la siguiente, simplemente, cambiando sus nombres en el archivo /etc/apt/sources.list y luego haciendo apt-get update y apt-get dist-upgrade.

Una pregunta que nos puede surgir es si es posible tener más de un versión instalada en el ordenador, para así poder disfrutar de las diferentes ventajas que ofrece cada una. La respuesta a esa pregunta es sí, pero con limitaciones. Mezclar aplicaciones, con sus correspondientes bibliotecas, de diferentes ramas de Debian puede crear un caos en nuestro ordenador. Si queremos hacerlo, y no tener problemas, debemos que tener claro cual es la rama que verdaderamente nos interesa y utilizar las demás solo de forma complementaria.

Imaginemos un caso típico. Tenemos instalado la rama Stable en nuestro ordenador. Estamos muy contentos usando la versión estable de Debian y no sentimos la necesidad de tener todos lo programas a la última. Sin embargo, de vez en cuando tenemos noticia de algúnos programas que nos interesan, pero que solo se encuentran en las versiones Testing o Unstable. Nos gustaría tener acceso a esas versiones para poder instalarlos sin dificultad.

Primero vamos a editar, como root, el archivo sources.list, que se encuentra en el directorio /etc/apt/ y añadiremos los mirror correspondientes la las ramas que queremos añadir, con lo que nos quedará algo como esto:

deb http://ftp.fr.debian.org/debian/ stable main

deb http://security.debian.org/debian/ stable main

deb http://ftp.fr.debian.org/debian/ testing main

deb http://security.debian.org/debian/ testing main

deb http://ftp.fr.debian.org/debian/ sid main

Donde pone ftp.fr.debian.org pondremos el mirror que queramos utilizar para bajar los paquetes. Podemos usar lo mismo los nombres genéricos de las ramas, como sus nombres en código.

Ahora, dentro de /etc/apt/, deberemos crear un archivo de texto llamado preferences y que contendrá lo siguiente:


Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release a=testing
Pin-Priority: 800

Package: *
Pin: release n=sid
Pin-Priority: 700

Aquí le estamos indicando a los paquetes de que rama debe dar preferencia a la hora de instalarlos. Debemos dar el valor más alto a la versión más estable para que tenga preferencia sobre las demás. a= indica que vamos a poner el nombre genérico de la rama. n= indica que vamos a poner su nombre en código.

Después tenemos que crear un archivo de texto llamado apt.conf y escribir en él lo siguiente:

APT::Default-Release "stable";
APT::Cache-Limit 30000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Missing;
APT::Get::Show-Upgraded "true";

Observad la línea APT::Cache-Limit 30000000; si a la hora de actualizar los paquetes nos sale un mensaje de que no tenemos suficiente cache deberemos poner una cifra más grande.

Ahora si queremos instalar un paquete de la rama que hemos puesto por defecto lo haremos como siempre. Pero si queremos instalar un paquete de las ramas que hemos añadido lo haremos desde la consola de texto de la siguiente manera:

Nos logueamos como root y escribimos:

apt-get install -t rama paquete

Donde pone rama pondremos el nombre de la rama (testing, sid,…) que queremos utilizar, y donde pone paquete el nombre del paquete que queremos instalar.

De todos modos hay que advertir que esto tampoco es una panacea. A veces los conflictos entre paquetes pueden convertirse en obstáculo insalvable.

Si queréis más información sobre apt-pinning, o sobre repositorios de Debian, pinchad en los enlaces.

10 comentarios el “Apt-pinning: Mezclar diferentes ramas de Debian

  1. pragmart dice:

    Holaaaa…

    Una pregunteja…

    los archivos hay que crearlos, supongo, en el propio directorio /etc/apt ¿verdad?

    Muchas gracias por adelantado y, por supuesto, por el artículo.

    Y un saludo😉

  2. pimpam dice:

    Ahora la preguntita que me corroe, si estas en testing es necesario pasar a unstable o es demasiado arriesgado???

    quiero decir al ser una versión con tantos cambios, creo que puede pasar de todo…

    • japerblog dice:

      Necesario, necesario no lo es. Yo nunca he usado unstable. Pero hay gente a la que le gusta tener siempre la última versión de todo y unstable sirve para eso. Con testing se puede tener el sistema razonablemente actualizado. Todo depende de las prioridades de cada uno.

  3. xals dice:

    He ido al primer link de esdebian, lo he leído por encima; y me gusta más como lo has escrito tu; claro, conciso y corto; solo te faltó lo de /etc/apt/.

    Pero aparte de eso; PERFECTO!

  4. […] Como no voy a repetir lo que ya escribí en aquella entrada haced click en el siguiente enlace: Apt-pinning: Mezclar diferentes ramas de Debian y leedlo antes de continuar. Aplicando lo ahí explicado a experimental, tenéis que añadir un […]

  5. ZapperDJ dice:

    En vez de poner las partes de los comandos y los ficheros de configuración en negrita, usa la etiqueta porque sino WordPress cambia algunos caracteres, como las comillas y esto da problemas en lineas como:

    APT::Default-Release “stable”;

    Que debería ser:

    APT::Default-Release "stable";

    Nótese la diferencia en las comillas.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s