miércoles, 7 de agosto de 2013

Debian: hibrido entre testing y unstable

Como lo mencione en mi actualizacion, he logrado montar (facilmente) un sistema hibrido entre estas dos ramas de Debian. El procedimiento es bastante sencillo pero muy eficaz.

Esto es posible estableciendo una configuracion en apt para que pueda distinguir entre las ramas que tenemos disponibles en nuestro /etc/apt/sources.list y sea posible identificar que rama tenemos como preferida, de esta forma los paquetes que tenemos instalados no se actualizan directamente de unstable sino que de la rama preferida, obviamente testing y asi evitamos romper el sistema con cada actualizacion. Comencemos.

Inicialmente vamos a establecer las ramas que querramos tener disponibles en nuestro sources.list, algo parecido a esto:

deb http://ftp.us.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.us.debian.org/debian/ testing main contrib non-free

deb http://security.debian.org/ testing/updates main
deb-src http://security.debian.org/ testing/updates main


####### DEBIAN MOZILLA TEAM #########
deb http://cdn.debian.net/debian experimental main


####### PACKAGES FROM UNSTABLE #########
deb http://ftp.us.debian.org/debian/ sid main contrib non-free
deb-src http://ftp.us.debian.org/debian/ sid main contrib non-free
Como vemos, hay dos tipos de ramas: la testing (Jessie) y la unstable (Sid). Ahora vamos a configurar apt para que sepa las prioridades entre las diferentes ramas.

Creamos el archivo /etc/apt/preferences con el siguiente contenido:
Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release o=Debian
Pin-Priority: -10
Y eso se lee asi: Para todos los paquetes (*) en la rama (release) testing se estable una prioridad (pin) de 900 ($ man apt_preferences para conocer las prioridades) y todos los demas paquetes de cualquier otra rama tienen una prioridad negativa; no se van a instalar a menos que se indique directamente que queremos instalar un paquete de otra rama

Despues de hacer un #apt-get update nos damos cuenta que tenemos disponibles las ramas indicadas en nuestro archivo sources.list. Ahora bien, si queremos instalar cualquier paquete no va a ser posible porque todos los paquetes en este momento se consideran "virtuales debido a que apt-get no sabe de qué rama elegir para instalar un determinado paquete. Ahora debemos indicarle a apt-get lo que queremos y para eso creamos el archivos /etc/apt/apt.conf con el siguiente contenido:
APT::Default-Release "testing";
Y listo, con eso establecemos la rama que queremos indicarle a apt-get que será nuestra rama principal: testing. Ahora sencillamente instalan cualquier paquete sin ningun problema. Y que pasa si queremos instalar un paquete de la rama unstable? Lo hacemos de esta manera:
# apt-get install -t sid $paquete
Como vemos, si no indicamos el parametro -t (target), apt-get va a instalar el paquete de la rama testing, porque es asi como lo tenemos configurado de manera predeterminada.

En fin... como podran ver es un procedimiento bastante sencillo pero que nos da la posibilidad de poder instalar software en sus ultimas versiones para Debian y que se encuentran en la rama unstable. Sinceramente tengo firefox (iceweasel) de la rama experimental (# apt-get install -t experimental iceweasel) y desde que lo tengo no he tenido el mas minimo problema. Aunque como saben esto no es garantia para todos los paquetes.

No hay comentarios:

Publicar un comentario