Apt-pinning: Mezclar distintas versiones de Ubuntu

+1
0
-1

Todos estamos ya esperando la nueva versión de Ubuntu 10.10 Maverick Meerkat, aunque para ello faltan todavía algunos meses. Si eres un impaciente como yo, y quieres tener las ultimas versiones de los programas que se incluirán en el próximo Ubuntu, la solución es apt-pinning.

Todo usuario de Debian conocerá que es apt-pinning, pues es muy utilizado para estar en distintas ramas (estable, testing...) de esta distribución, pero quizás en Ubuntu no se utiliza tanto. Voy a comentar como hacerlo, pero ya aviso que se necesita un nivel medio/avanzado para gestionarlo todo correctamente, no quiero lamentaciones.

Básicamente lo que conseguiremos con esto es tener instalada la versión estable de Ubuntu (10.04 Lucid Lynx) y elegir instalar programas de la próxima versión (10.10 Maverick Meerkat). Manos a la obra.

En primer lugar añadiremos los repositorios de la proxima version de Ubuntu a nuestro sources.list:

sudo gedit /etc/apt/sources.list

Y pegamos al final de todo lo siguiente:

#### Repositorios de Ubuntu 10.10 Maverick Meerkat ####
deb http://archive.ubuntu.com/ubuntu maverick main restricted universe multiverse

Bien, ahora tenemos los repositorios de dos versiones distintas, por lo que debemos indicar cual de las dos es la versión que tomaremos como predeterminada en el sistema. Para ello hacemos:

sudo gedit /etc/apt/apt.conf.d/01ubuntu

Y añadimos la siguiente linea:

APT::Default-Release "lucid";

Y ya para acabar, solo nos queda indicar la prioridad de los paquetes a la hora de instalar o actualizar. Debemos crear el siguiente archivo:

sudo gedit /etc/apt/preferences

Y escribir dentro:

Package: *
Pin: release a=lucid
Pin-Priority: 700

Package: *
Pin: release a=maverick
Pin-Priority: 110

En lugar de * en Package, que significa "todos los paquetes", ponéis el nombre de uno en concreto (por ejemplo Firefox), restringe solamente a este programa, es decir, solo podreis instalar la version de firefox de Ubuntu 10.10, pero no el resto de programas.

Ademas las cifras de campo Pin-Priority significan lo siguiente:

P > 1000: la versión se instala incluso si es una versión anterior a la instalada en el sistema

990 < P <=1000: la versión se instala aunque no venga de la distribución objetivo, a menos que la versión instalada sea más reciente.

500 < P <=990: la versión se instala a menos que exista otro ejemplar disponible perteneciente a la distribución objetivo o bien la versión instalada sea más reciente.

100 < P <=500: la versión se instala a menos que exista un ejemplar perteneciente a otra distribución o la versión instalada sea más reciente.

0 < P <=100: la versión sólo se instala si no hay ninguna versión del paquete instalado.

P < 0: la versión nunca se instala.

Y ya lo tenemos todo, recargamos la lista de paquetes, y ya podremos instalar las nuevas versiones de aplicaciones incluidas en Ubuntu 10.10. Desde la linea de comandos, se haria de esta forma:

sudo aptitude -t maverick install

Comentarios

Imagen de Gabriel_M

Si bien Ubuntu es derivada de Debian, y este sistema de pinning descripto
es posible, es riesgoso siendo recomendada para Ubuntu la siguiente alternativa, dado que las versiones de libc6 varían de versión en versión
y el sistema se puede inutilizar.

a- El primer paso es similar, solo que se agregan las fuentes y no los paquetes:

En primer lugar añadiremos los repositorios de las fuentes de la próxima
versión de Ubuntu a nuestro sources.list:

sudo gedit /etc/apt/sources.list

Y pegamos al final de todo lo siguiente:

#### Repositorios de Ubuntu 10.10 Maverick Meerkat ####
deb-src http://archive.ubuntu.com/ubuntu maverick main restricted universe multiverse

b- A continuación se actualizan los repositorios ejecutando

sudo apt-get update

c- Ahora seleccionado el paquete de la nueva distribución, por ejemplo
firefox-4.0 para instalarlo los pasos serian:

c1- Bajar las dependencias necesarias para crear los paquetes ejecutando:

sudo apt-get build-dep firefox-4.0

c2- Una vez descargados e instalados los paquetes necesarios crear los
paquetes de la nueva versión a instalar en el ordenador ejecutando:

sudo apt-get -b source -t maverick firefox-4.0

c3- Si no hubo errores ni incompatibilidades, tendremos en el directorio
donde se trabajo, los archivos.deb necesarios para instalar la aplicación
de la nueva versión ejecutando:

sudo dpkg -i *.deb

Obviamente esto no da resultado con aplicaciones complejas integradas
al sistema, como sería la nueva versión de Gnome, que de instalarse
mediante el sistema de pinning Debian inutilizaria el sistema.