Configurar preferences de apt-get

Llevaba unas semanas queriendo solucionar un problemilla que tenía con mi flamante Ubuntu 7.04. He llegado a ella desde “Edgy Eft” actualizando periódicamente usando las fuentes de “Feisty Fawn” a medida que iban saliendo cosas. A veces no ha sido una gran idea porque se rompe algo y hay que buscar en los foros cómo solucionarlo o arreglar a mano alguna configuración, pero en general no ha sido muy traumático.

Dicho esto, ya se está preparando la nueva release 7.10 llamada “Gutsy Gibbon“. Y me apetecía ponerme en el apt.conf las fuentes de la nueva versión. Esto es relativamente sencillo:

sudo vi /etc/apt/sources.list

Y en algún sitio de este fichero se inserta lo siguiente:

###
# Gutsy
deb http://es.archive.ubuntu.com/ubuntu/ gutsy main restricted multiverse universe
deb-src http://es.archive.ubuntu.com/ubuntu/ gutsy main restricted multiverse universe<br>
deb http://es.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted multiverse universe
deb-src http://es.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted multiverse universe

Pero aquí viene el problema. Si después de eso se hace un:

apt-get update; apt-get dist-upgrade

Veremos que intenta actualizar un montón de paquetes y no me apetecía hacer tal cosa, aunque si que quiero tener los paquetes disponibles para instalar en caso de que quiera una versión más nueva que no está en ‘Feisty’ sin tener que recurrir a los backports. No sé si es porque vengo de Debian, pero a mi esto de los backports me parece una tontería.

El caso es que no quiero que apt-get instale por defecto los paquetes de Gutsy, así que la solución pasa por tocar el archivo /etc/apt/preferences de la siguiente manera:

Package: *
Pin: release o=Ubuntu,a=gutsy
Pin-Priority: 400<br>
Package: *
Pin: release o=Ubuntu,a=gutsy-updates
Pin-Priority: 400

Esto requiere una explicación. Por defecto los paquetes instalados tienen una prioridad de 100 y los nuevos una de 500 por lo que si ponemos 400 a los de ‘Gutsy’, los nuevos que estén en cualquier otra fuente se instalarán preferentemente.

Si queremos forzar un paquete a instalar su versión de las fuentes de gutsy podemos hacer lo siguiente:

apt-get install -t gutsy vim

Y lo que hace esta instrucción es dar prioridad 900 a los paquetes de ‘gutsy’, con lo que siempre tendrán prioridad sobre el resto.

Un detalle: si tenéis el archivo /etc/apt/apt.conf puede que contenga una linea indicando la Default-Release. Si esto es así, a los paquetes de dicha release se le asigna prioridad 900 se ponga lo que se ponga en /etc/apt/preferences, por lo que es buena idea comentar la linea con // delante o borrarla.

Finalmente, para probar la configuración se puede usar el comando:

apt-cache policy
apt-cache policy vim

El primero indicará las prioridades de cada una de las fuentes del apt.conf donde podemos comprobar cuales tienen más y cuáles menos. El segundo comando listará todas las versiones disponibles del paquete indicado (‘vim’ en este caso) y con ‘***’ indicará cuál es la candidata a ser instalada.

Espero que os sirva de ayuda esta pequeña explicación de cómo usar las priorities.

Si te ha gustado esta entrada, por favor deja un comentario o suscríbete al RSS para que puedas recibir todas las novedades en tu lector de feeds favorito.
This entry was posted in Linux and tagged , , . Bookmark the permalink.

Leave a reply