Gnu/Linux‎ > ‎Configuración‎ > ‎

Retener paquetes y restaurarlos

publicado a la‎(s)‎ 15 oct. 2015 5:53 por Juan Jose Ramirez Lama

Hemos visto en algunos tutoriales, que se nos puede dar el caso de que nos interese que el sistema no actualice determinados paquetes por algún motivo: versiones posteriores a defectuosas, incompatibles, etc.


Lo que debes saber

Antes de comenzar las pequeñas explicaciones sobre los distintos modos debes saber una cosa. Los paquetes retenidos para apt no están retenidos para aptitude, y viceversa.


Es decir, vamos a ver métodos para retener paquetes para que al hacer un sudo apt-get upgrade, no se actualicen los paquetes retenidos y lo mismo para aptitude, vamos a ver otros métodos que haciendo un “sudo aptitude upgrade” no se actualizarán los paquetes retenidos.


El problema reside en que si has retenido para apt y haces un “sudo aptitude upgrade” no respetará el paquete retenido, y del mismo modo, si retienes un paquete para aptitude, si haces un “sudo apt-get upgrade” tampoco lo respetará.


El sistema de actualización automática de Ubuntu (el que nos avisa cuando hay actualizaciones) usa apt. Si no vas a usar nunca aptitude para actualizar el sistema, tan sólo tienes que retener los paquetes para apt. Si por contra usas ambos métodos, o puedes llegar a usarlo te recomiendo que cuando retengas un paquete, lo hagas para apt y para aptitude.

Dicho esto, vamos allá.


Retener paquetes para aptitude

Tenemos dos formas de hacerlo, una mediante consola y otra mediante el menú en modo texto de aptitude. El modo más rápido y sencillo es el primero, aunque explicaré ambos.

Por consola, para retener un paquete lo único que tenemos que hacer es:

# apt-get hold nombre_del paquete

Y para restaurarlo y permitir su actualización:

# apt-get unhold nombre_del_paquete


Para hacerlo mediante el menú de aptitude: Una vez hayas hecho el correspondiente “sudo aptitude update” para comprobar qué paquetes son actualizables, escribe “aptitude” en consola, busca en “paquetes actualizables“. Dentro debería aparecer los paquetes que se van a actualizar. Te colocas sobre el que deseas y pulsas la tecla ‘=’. Finalmente pulsas ‘q’ para salir.


Retener paquetes para apt y dpkg 

Es una sola línea en consola, aunque algo más compleja que la que tenemos para aptitude.


Para retener un paquete:

$ echo "nombre_del_paquete hold" | sudo dpkg –set-selections

Cuidado con lo que tenemos antes de set-selections. Pegado a “set” tenemos dos guiones juntos, en el blog no se aprecia bien pero sería “- -set-selections”, juntando los dos guiones seguidos.

Para restaurar el paquete y permitir su actualización:

$ echo "nombre_del_paquete install" | sudo dpkg –set-selections

De nuevo, cuidado con los dos guiones.

Retener paquetes para apt y dpkg (2)

Como dije antes, la orden es un tanto incómoda y costosa de memorizar si lo comparamos con la de aptitude. Pero existe un front-end al alcance de repositorio que lo simplifica tanto como aptitude. Primero lo instalamos:

# apt-get install feta

Y ahora, para retener un paquete:

# feta hold nombre_del paquete

Y para restaurarlo:

# feta unhold nombre_del paquete

Más sencillo, ¿Verdad?

Comments