Apt-pinning: Mezclar diferentes ramas de Debian
12 Octubre 2009
Cuando instalamos Debian podemos elegir entre tres versiones diferentes, en función de su estabilidad. Estas son Stable (actualmente Lenny), Testing (actualmente Squeeze) y Unstable (siempre 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 Lenny 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 estas líneas:
deb http://ftp.fr.debian.org/debian/ squeeze 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. En lugar de lenny, squeeze y sid podemos usar, si lo preferimos, stable, testing y unstable.
Ahora 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 a=unstable
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.
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.
Si usamos Synaptic, antes que nada, debermos ir a Preferencias y seleccionar la última pestaña, donde se regula las preferencias a la hora de actualizar los paquetes. Si está marcada la opción de dar preferencia siempre a la última versión, deberemos quitarla, o de lo contrario cuando actualicemos actulizará todos lo paquetes a Sid. En su lugar marcaremos la opción que nos permite seleccionar la versión que queramos usar como preferente. Seleccionaremos stable.
Si queréis más información sobre apt-pinning, o sobre repositorios de Debian, pinchad en los enlaces.

13 Octubre 2009 a las 20:11
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
13 Octubre 2009 a las 21:27
Sí, efectivamente, hay que crearlos dentro de /etc/apt/ Se me olvido mencionarlo.
14 Octubre 2009 a las 08:35
Pues a ello…