A veces al actualizar paquetes en Debian/Ubuntu con el comando apt-get upgrade podemos recibir el mensaje; The following packages have been kept back seguido del nombre de un paquete o paquetes que no se van a actualizar a pesar de haberse encontrado una nueva versión.
Esto, según parece, es debido a que apt-get no es capaz de resolver ciertas dependencias implicadas en la actualización del paquete o paquetes que decide no actualizar, dependencias que estarían relacionadas con componentes que afectan directamente al funcionamiento del sistema.
Una solución posible a este tema es usar aptitude en lugar de apt-get para realizar la actualización, ya que aptitude parece resolver mejor este tipo de dependencias y actualizaciones. Con lo que probaremos a ejecutar:
sudo aptitude safe-upgrade
(Nota: El parámetro ‘upgrade’ está obsoleto. De ahí que use ‘safe-upgrade’ en su lugar, pero si no estás usando una versión reciente de aptitude tendrás que usar ‘upgrade’ ).
Y con esto posiblemente se realice la actualización del paquete que apt-get no quería actualizar y de los paquetes de terceros implicados en la actualización.
Otra opción sería que debamos actualizar la distribución. Para ello ejecutaríamos:
sudo aptitude dist-upgrade
Buenísimo, anduvo de maravillas el sudo aptitude safe-upgrade con unos upgrades que no querían saber nada con apt-get. La lista de paquetes contenía básicamente paquetes que estaban en repositorios oficiales y también en otros no oficiales. Se me ocurre que el problema es precisamente eso, que el aptitude baja la versión más nueva aunque sea superior a la soportada, mientras que el apt-get no quiere meterse en problemas.