viernes, 21 de marzo de 2014

Bloquear la actualización de algunos paquetes

¿Evitar que se actualicen algunos paquetes ya instalados...? qué tontería ¿no?

Bueno, pues no lo es tanto...
Por ejemplo yo, en un momento de la 'vida' de una versión 'Stable' de Debian, suelo migrar a 'Testing', para tener las aplicaciones más actualizadas. Eso hice el otro día y, desde 'Jessie' (la actual testing), que me imagino que dentro de un año, o algo menos, será la nueva stable (Debian 9) todo funciona bien... excepto Synaptic, que en su nueva versión 0.80 tarda la de dios en arrancar... cuando la versión 0.75 (la que instala la versión stable, 'Wheezy') va perfecta.
Y como uso bastante Synaptic, para ver los paquetes instalados, etc, estaba incomodísimo, y hasta reinstalé un par de veces Debian Jessie a ver si se solucionaba... pero sin éxito.
Así que desinstalé mi Synaptic 0.80, busqué el paquete deb de la versión 0.75 del Synaptic, lo instalé con Gdebi... y perfecto.
Pero, cada vez que entraban actualizaciones (y ya sabes que, en Testing, es casi a diario), al hacer un
sudo aptitude update && sudo aptitude safe-upgrade
… synaptic, como está en los repos de Testing, se me volvía a actualizar.

Y entonces, buceando por Google, descubrí una herramienta muy cómoda, un paquete que se llama wajig.

¿Qué hace wajig...? 
Pues, simplemente, wajig bloquea la versión instalada de un paquete, de manera que, si das a 'actualizar', te lo retiene en esa versión instalada.
Así que, como está en los repositorios, no hay más que hacer un...
sudo aptitude install wajig
Y, una vez instalado, para bloquear/congelar un paquete, y que no se actualice, basta escribir, en consola... 
sudo wajig hold nombre_paquete 
… y, efectivamente, si a partir de ahora das a actualizar, aunque exista una versión superior, te retiene ese paquete en la versión que tenías instalada. 

Por ejemplo, como me interesa mantener la versión 0.75 de synaptic (la de wheezy) que he instalado, escribo...
sudo wajig hold synaptic
... y solucionado.

Por completar el manejo de wajig: 
- Para saber qué paquetes estan bloqueados/congelados:
   sudo wajig list-hold
- Y para descongelar dichos paquetes:
  sudo wajig unhold nombre_paquete

Comodísimo: mi Synaptic 0.75 es igual de operativo, abre a toda velocidad... y tengo resuelto el problema. Vigilaré, de todas formas, esa versión 0.80 de testing, sospecho que, como en Debian andan pasando paquetería de gnome-shell 3.4 y 3.8 a la versión 3.10, se trata de alguna inconsistencia que se arreglará en su momento.
Pero yo ya lo he resuelto perfectamente con el poco conocido paquete 'wajig'.

NOTA FINAL: meses más tarde, en agosto, mi admirado Carlos Aranda, en su blog 'un bruto con Debian' publicó un truco realmente mucho más sencillo: mediante Synaptic, buscando y seleccionando el paquete en cuestión y marcando, simplemente, 'Paquete-bloquear versión'.
Más fácil, imposible.

4 comentarios:

  1. Es la primera vez que leo tu blog y realmente ere increible , estoy tratando de familiarizarme con debian para dejar ubuntu pero siempre lo he visto dificil sino imposible , pero leyendo tu blog no solo estoy entiendo tantas cosas sino que es muy entretenido como lo haces, felicitaciones y por favor no dejes de publicar tus conocimientos muchas personas como yo te lo agradecemos.

    ResponderEliminar
  2. pues te agradezco el comentario y si, te invito a profundizar en Debian... 'y no morir en el intento', que verás que es muy fácil, a poco que vayas asumiendo algunos conceptos clave, como pueden ser los que, a modo de 'propios apuntes tácticos', he ido anotando (humildemente, y casi para mi uso personal) aquí.

    ResponderEliminar
  3. Muy bueno pero al principio del post, esta mal escrito es wajig (en vez de walig).
    Saludos y gracias

    ResponderEliminar
  4. gracias, corregido el 'lapsus' del trabalenguas que es 'wajig'

    ResponderEliminar