Acabo de añadir un repositorio PPA para la versión de desarrollo del GIMP, pero me sale este error:
$ apt-get update && apt-get upgrade
...
The following packages have been kept back:
gimp gimp-data libgegl-0.0-0 libgimp2.0
¿Por qué y cómo puedo solucionarlo para poder usar la última versión en lugar de la que tengo ahora?
Según un artículo en debian-administration.org,
Si las dependencias han cambiado en uno de los paquetes que tiene instalados, de manera que debe instalarse un nuevo paquete para realizar la actualización, éste aparecerá como "mantenido".
Solución prudente 1:
Según la respuesta de Pablo, puede ejecutar sudo apt-get --with-new-pkgs upgrade
, y se instalarán los paquetes mantenidos.
Esto tiene la ventaja de no marcar los paquetes retenidos como "instalados manualmente", lo que podría forzar la intervención del usuario más adelante (ver comentarios).
Si la solución de Pablo le funciona, por favor, vote por ella. Si no es así, por favor, comenta lo que ha fallado.
Solución prudente 2:
La solución prudente es ejecutar sudo apt-get install <lista de paquetes retenidos>
. En la mayoría de los casos, esto dará a los paquetes retenidos lo que necesitan para actualizar con éxito.
Solución agresiva:
Una solución más agresiva es ejecutar sudo apt-get dist-upgrade
, que forzará la instalación de esas nuevas dependencias.
Pero dist-upgrade
puede ser bastante peligroso. A diferencia de upgrade puede eliminar paquetes para resolver situaciones de dependencia complejas. A diferencia de usted, APT no siempre es lo suficientemente inteligente como para saber si estas adiciones y eliminaciones pueden causar estragos.
Así que si se encuentra en un lugar donde la "solución prudente" no funciona, dist-upgrade
puede funcionar... pero probablemente sea mejor que aprenda un poco más sobre APT y resuelva los problemas de dependencia "a mano" instalando y eliminando paquetes caso por caso.
Piensa que es como arreglar un coche... si tienes tiempo y eres hábil con la llave inglesa, conseguirás cierta tranquilidad leyendo y haciendo la reparación tú mismo. Si te sientes afortunado, puedes dejar el coche con tu prima distinguida
y esperar que sepa lo que hace.
Normalmente hay dos razones por las que puede ver este mensaje.
Si al actualizar el programa (mediante sudo apt-get upgrade
) se añaden o eliminan paquetes, entonces el programa quedará retenido. Puede utilizar sudo apt-get dist-upgrade
en este caso, que le ofrecerá añadir o eliminar los programas adicionales.
Esto es bastante común y no suele ser un problema. Ocasionalmente (particularmente durante una alfa de Ubuntu) un dist-upgrade
ofrecerá eliminar un montón de otros programas, en cuyo caso probablemente quiera cancelarlo.
Si el programa depende de paquetes o versiones que no están disponibles, entonces el programa será retenido. Realmente no puedes hacer nada más que esperar en esta circunstancia, ya que el paquete es básicamente desinstalable. Esto puede ocurrir cuando los paquetes se añaden al repositorio fuera de orden, cuando un paquete es renombrado, o cuando un paquete deja de proporcionar un paquete virtual.
Lo más probable es que estos paquetes estén retenidos porque su instalación crearía inconsistencias de dependencia. Esto puede ocurrir porque está utilizando archivos en desarrollo activo, ppas, o porque el espejo que utiliza no está totalmente actualizado.
En este último caso, simplemente espera, cuando las dependencias se resuelvan se instalarán la próxima vez.
Edición:
Hay otra posibilidad, los paquetes pueden ser retenidos si se les pone una retención, o si están anclados.