Sistema Híbrido: Paquetes de distintas "releases" con apt

¿Nunca habéis deseado probar un programa de una distribución más inestable sabiendo que podéis volver atrás? ¿Nunca habéis tenido que recurrir a una versión anterior de ningún paquete? Pues existía una manera más fácil, y aquí os explico cómo.

Asunciones

Asumiremos que tenemos instalada una "unstable", pero queremos tener acceso a algunos paquetes de "experimental" y... bueno, ya que nos ponemos, también de "stable" y "testing", pero con menor prioridad.

Configurar la "release" por defecto

Editáis el fichero (si no existe lo creáis) /etc/apt/apt.conf y añadís la línea:

APT::Default-Release "unstable";

Configurar las otras distros

APT ya sabe cuál es la distro que queremos tener instalada, pero hay que decirle que existe más mundo. Para ello se utiliza el fichero /etc/apt/preferences:

Package: *
Pin: release o=Debian,a=unstable
Pin-Priority: 900

Package: *
Pin: release o=Debian,a=experimental
Pin-Priority: 400

Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 300

Package: *
Pin: release o=Debian,a=stable
Pin-Priority: 200

Package: *
Pin: release o=Ubuntu
Pin-Priority: -1

NOTA: No, aún no lo he probado.

Debo advertir que las prioridades son bastante curiosas y hay que tener cuidadín:

  • < 0: La versión no se instalará jamás.
  • 0 - 100: El paquete no se reemplazará por una versión superior. Los paquetes instalados tienen prioridad 100.
  • 101-500: La versión se instala si es más moderna que la existente y no existe ningún ejemplar en la versión objetivo.
  • 501-1000: La versión se instala aunque no esté en la distro por defecto.
  • 1000: La versión se instalará a toda costa, incluso si es inferior a la actual.

Típicamente se utilizan los valores -1, 100, 500, 900 y 1001.

Lo de bloquear Ubuntu no es por mala leche: a menudo suele dar problemas mezclar paquetes. Cada uno que haga lo que quiera.

Editar sources.list

Claro, nos falta editar el sources.list y añadir todos los repositorios que nos dé la gana. Ya sabemos que no se va a instalar nada "extraño" (siempre que no metáis repositorios "extraños").

Cómo usarlo

Muy fácil: Para los paquetes de la distribución por defecto, como siempre:

apt-get install lo-que-sea

Para el resto, también fácil (donde pongo "experimental" poner el nombre de la distro):

apt-get install -t experimental lo-que-sea

Todos ellos se "updatean" a la vez por el método habitual.

Otras referencias

Me disponía a escribir esta receta basándome en un ejemplo que tenía por algún lado. No he encontrado el ejemplo, pero sí un documento titulado Jugando con APT, que explica cómo hacer lo mismo para Ubuntu.

También están interesantes el Manual de APT y un documentillo que he encontrado titulado Using APT with more than 2 sources, este último en inglés, claro.

  • http://www.esdebian.org/articulos/24672/apt-pinning

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de david.villa

Y qué tal aptitude?

Interesante lo de las APT::Preferences

Yo llevo usándolo un par de semanas y está interesante. Puede utilizarse en modo GUI (con ncurses) que me parece horrible, pero también se puede utilizar en modo CLI como si fuese apt-get. Tiene todas las órdenes típicas de apt-get y alguna más. ¿Entonces porqué usar aptitude? Pues aquí pongo alguna razones:

- usa libapt (como apt-get) así que no pierdes ninguna funcionalidad. – maneja dependencias inversas, de modo que cuando desinstalas un paquete, elimina también los paquetes de los que depende que ya no necesitas – permite hacer “hold” y “unhold” de forma sencilla – tiene “show” y “search”. No te equivocas al usar apt-get en lugar de apt-cache – si te equivocas en el nombre del paquete, te pone una lista de los paquetes que se parecen – resuelve “mejor” los conflictos

Con aptitude tienes lo mismo que permite debfoster pero mucho más fácil de usar. También tiene una pega, como hace más comprobaciones y guarda información propia es un poco más lento que “apt-get”, probadlo.

Luego hago una recetilla si os interesa el tema. Aunque hay una (un poco larga) en badopi

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.