APT - Jugando con APT en Ubuntu (o cualquier Debian)

Apt es uno de los mejores front-ends que hay para dpkg y todo el que lo usa coincide en lo cómodo que resulta que él solo resuelva dependencias, se baje los paquetes, los configure e instale. Pero mucha gente desconoce el uso de apt para gestionar y mezclar diferentes sources de forma controlada.

La finalidad de este artículo es que cada uno pueda tener al final una distribución debian-like con los paquetes que más le guste de cada uno de los diferentes sources (estable, inestable, el_de_mi_vecino, el_de_un_ruso_por_ahi_perdido, etc...) de forma organizada.

:: ¿ Qué es un source? ::

Cada una de las líneas que encontramos en el fichero /etc/apt/sources.list se corresponde con una fuente de paquetes para nuestra distribución favorita. Por ejemplo podemos tener perfectamente:

# Distribución estable
deb http://archive.ubuntu.com/ubuntu warty main restricted
deb-src http://archive.ubuntu.com/ubuntu warty  main restricted
deb http://archive.ubuntu.com/ubuntu warty universe
deb-src http://archive.ubuntu.com/ubuntu warty universe
deb http://security.ubuntu.com/ubuntu warty-security main restricted
deb-src http://security.ubuntu.com/ubuntu warty-security main restricted

#Distribución inestable
deb http://archive.ubuntu.com/ubuntu hoary main restricted
deb-src http://archive.ubuntu.com/ubuntu hoary  main restricted
deb http://archive.ubuntu.com/ubuntu hoary universe
deb-src http://archive.ubuntu.com/ubuntu hoary universe
deb http://security.ubuntu.com/ubuntu hoary-security main restricted
deb-src http://security.ubuntu.com/ubuntu hoary-security main restricted

En este fichero sources.list el segundo grupo de fuentes se corresponde con la versión inestable de ubuntu . El problema de dejarlo así sin más es que tendremos mezclados los paquetes sin control (o más concretamente, sin que nosotros tengamos el control).

:: ¡¡ Apt-preferences !! la solución ::

En primer lugar vamos a establecer (si no lo tenemos hecho ya) cual es la distribución objetivo. para ello editamos (o creamos) el fichero /etc/apt/apt.conf y escribimos:

APT::Default-Release "warty";

nota: warty es como se llama el source de la rama estable en ubuntu esto varía según la debian con la que estemos.

Lo segundo es editar (o crear) el fichero /etc/apt/preferences :

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

Package: *
Pin: release a=hoary
Pin-Priority: 50

Y ya esta! de esta forma controlamos cómo queremos que actúe apt a la hora de instalar paquetes. Apt tiene un sistema de puntuación para establecer cuando tiene que actualizar un paquete, lo que hacemos con /etc/apt/preferences es determinar el peso que queremos darle. Para entender más sobre que valores usar es muy recomendable mirar man apt_preferences(5), pero como pequeña chuleta un adelanto:

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 ejemplarperteneciente 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.

:: cómo usar apt una vez configurado ::

Una vez dado valor a cada una de las fuentes, podemos actualizar el sistema sin miedo a que nos intente actualizar 500 paquetes a la versión inestable utilizando un simple 'apt-get upgrade'. De esta forma además podremos instalar paquetes que no estaban en la distribución objetivo de forma transparente.

Si quereis instalar un paquete que está en más de un source (por ejemplo tiene version estable e inestable) podemos hacer lo siguiente:


apt-get install paquete/source

Así intentará instalar el paquete paquete del source source . El problema es que puede negarse a instalar ciertas dependencias por ser estas a su vez inestables o diferentes del la distribución objetivo (o más concretamente, no tienen suficientes puntos para instalarse). En este caso podemos decirle a apt que resuleva las dependencias usando un source concreto:


apt-get -t source install paquete

:: Cosas para leer ::

Para más información y para jugar además de con los sources, con las versiones de los paquetes, leed las siguientes páginas del man.

apt_preferences(5)
apt.conf(5)
sources.list(5)
apt-get(8)

APT

Interesante!

.
.
( o_ ( o_
( / )_( / )_
.
_LUISO_

y esto funciona con Lliurex??

Pues eso, funciona con Lliurex?? Explotará lliurex si uso eso de apt y modifico los archivos que decís?

pufff no tengo ni idea...

muy bueno el articulo!

muy bueno el articulo!

Turuntu

Apt?? Quesloquees? :D

Fdo: el talibán de Gentoo

PD: es coña, enhorabuena por la iniciativa que es lo que le hace falta a esta página: más movimiento y recetillas que animen a la gente a probar cosas (aunque en este caso sea la Ubuntu :P)

y que mejor?

¿Y que mejor que ubuntu para vivir tranquilo?

Es debian -> es bueno ;)

Y encima al ser ubuntu, es fácil :P

Saludos,
Juan.

urpmi

Donde se ponga urpmi que se quite lo demás. xDDDD