Paquetes retenidos
Es posible que durante una actualización de Ubuntu 22.04 salga el mensaje "Los siguientes paquetes se han retenido":
the following packages have been kept back: gnome-remote-desktop update-notifier update-notifier-common
Si listamos los paquetes de ejemplo, encontramos lo siguiente:
sudo apt list --upgradable gnome-remote-desktop/jammy-updates 42.7-0ubuntu1 amd64 [upgradable from: 42.3-0ubuntu1] update-notifier-common/jammy-updates,jammy-updates 3.192.54.3 all [upgradable from: 3.192.54] update-notifier/jammy-updates 3.192.54.3 amd64 [upgradable from: 3.192.54]
Y corremos los comandos usuales para intentar solucionarlo, sin éxito:
sudo apt upgrade sudo apt dist-upgrade sudo apt-get upgrade sudo apt-get --with-new-pkgs upgrade sudo apt-get install --only-upgrade sudo apt full-upgrade # etc., etc.
paquetes retenidos |
Ni siquiera el poderoso nala puede solventar este problema:
sudo nala install --no-full
nala |
¿Por qué sucede esto?
La respuesta es "Actualizaciones por Fases" ( Phased Updates); un sistema que Ubuntu Desktop implementó desde la versión 13.04 para
apt-get
y a partir de la versión 21.04, apt
también comenzó a usarlo, el cual tiene como propósito proteger el sistema de una actualización ocasional con errores, pero, en un entorno automatizado con bash script, puede frenar la ejecución de una tarea programada de actualización por causa de los paquetes retenidos.
Solución
Hay varias. Si solo quiere resolver el problema temporalmente, ejecute en la consola:
sudo apt -o APT::Get::Always-Include-Phased-Updates=true upgrade
Para hacerlo permanente, creamos el archivo:
sudo touch /etc/apt/apt.conf.d/99-Phased-Updates
Con el contenido:
Update-Manager::Always-Include-Phased-Updates; APT::Get::Always-Include-Phased-Updates True;
También puede hacerlo en una sola línea:
echo $'Update-Manager::Always-Include-Phased-Updates;\nAPT::Get::Always-Include-Phased-Updates True;' | sudo tee -a /etc/apt/apt.conf.d/99-Phased-Updates > /dev/null # o: sudo tee -a /etc/apt/apt.conf.d/99-Phased-Updates > /dev/null << EOF Update-Manager::Always-Include-Phased-Updates; APT::Get::Always-Include-Phased-Updates True; EOF
O puede crear dos opciones en el archivo y desactivarlo o activarlo manualmente. Simplemente comente o descomente el bloque de líneas, cambiando de
Always
por Never
y viceversa. Ejemplo: # Desactivado #Update-Manager::Never-Include-Phased-Updates; #APT::Get::Never-Include-Phased-Updates True; # Activado: Update-Manager::Always-Include-Phased-Updates; APT::Get::Always-Include-Phased-Updates True;
Y finalmente actualizamos con
apt upgrade
Pero puede ahorrarse todo esto gracias al milagroso
aptitude
que siempre termina salvando la campana, con tan solo ejecutar: sudo aptitude safe-upgrade
Puede consultar el listado de estos paquetes en Phasing Ubuntu Stable Release Updates.
Fuente Consultada: askubuntu.com
Post a Comment