Acabo de agregar un repositorio PPA para la versión de desarrollo de GIMP, pero aparece 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 resolverlo para poder usar la última versión en lugar de la que tengo ahora?
apt
package-management
jfoucher
fuente
fuente
Respuestas:
Según un artículo en debian-administration.org ,
Solución prudente 1:
Según la respuesta de Pablo , puede ejecutar
sudo apt-get --with-new-pkgs upgrade
, e instalará los paquetes retenidos.Esto tiene el beneficio de no marcar los paquetes retenidos como "instalados manualmente", lo que podría forzar una mayor intervención del usuario en la línea (ver comentarios).
Si la solución de Pablo funciona para ti, por favor, vota. Si no, por favor comente lo que salió mal.
Solución prudente 2:
La solución cautelosa es correr
sudo apt-get install <list of packages kept back>
. En la mayoría de los casos, esto le 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
, lo que obligará a la instalación de esas nuevas dependencias.Pero
dist-upgrade
puede ser bastante peligroso . A diferencia de la actualización , puede eliminar paquetes para resolver situaciones complejas de dependencia. A diferencia de usted, APT no siempre es lo suficientemente inteligente como para saber si estas adiciones y eliminaciones podrían causar estragos.Entonces, si se encuentra en un lugar donde la "solución cautelosa" 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.Piense en ello como arreglar un automóvil ... si tiene tiempo y es práctico con una llave inglesa, obtendrá tranquilidad al leer y hacer la reparación usted mismo. Si se siente afortunado, puede dejar su auto con su prima
dist-upgrade
y esperar que ella sepa lo que hace.fuente
dist-upgrade
en un sistema estable, como lo han señalado muchas de las otras respuestas a continuación. Personalmente, creo que hay una respuesta más simple / segura que debe promoverse: apt-get install <list of pkgs>sudo apt-get dist-upgrade
también puede eliminar paquetes. En consecuencia, siempre es mejor inspeccionar la lista de cambios que se realizarán antes de aceptarlos, cuando se ejecutansudo apt-get dist-upgrade
.apt-get upgrade
puede eliminar paquetes? Siempre lo hará cuando haya un conflicto de versiones de lo contrario. Piense enllvm3.6
vs.llvm3.6v5
(con el "v5" que significa que fue compiladogcc 5
). Estos dos no pueden coexistir , solo uno de los dos puede mantenerse en el sistema. Entonces sí, tambiéndist-upgrade
puede eliminar algunos paquetes, pero no solodist-upgrade
eso haría esto; bajo ciertas circunstancias, también loupgrade
haría.Cada vez que recibe del comando
apt-get upgrade
el mensajeluego para actualizar uno o todos los paquetes retenidos, sin hacer una actualización de distribución (esto es lo que
dist-upgrade
hace, si no recuerdo mal) es emitir el comando:esto resolverá los problemas retenidos y solicitará instalar paquetes adicionales, etc., como se explicó en otras respuestas.
fuente
apt-get upgrade <list of packages>
, si rehagoapt-get upgrade
, enumerará los paquetes en cuestión como ya no son necesarios y que puedo usarapt autoremove
para eliminarlos, lo que hago, y luego uno últimoapt-get upgrade
y ya no aparecen como retenido ... Muy raro. ¿Alguna idea?apt-get install
También elimina los paquetes cuando es necesario para resolver situaciones de dependencia retorcidas, o tendría que ejecutar unapt-get remove
comando por separado para lograr esa parte del proceso de actualización?apt autoremove
luego elimina estas dependencias no utilizadas.sudo apt-get --with-new-pkgs upgrade
lo que no tendría el efecto secundario de causar que los paquetes seapt-get dist-upgrade
es peligroso para el medio ambiente estable,Caso de uso: la actualización del kernel se mantuvo, solo desea actualizar el kernel, no desea actualizar toda la distribución.
Mejor forma de manejar el paquete retenido:
Si ha retenido el paquete, debería ver Paquetes actualizables en la parte superior de la lista.
Su paquete guardado instalado.
fuente
apt-get dist-upgrade
solo es peligroso si tienes depósitos incorrectos/etc/apt/sources.list*
. Es bueno tener en cuenta quedist-upgrade
actualiza todos los paquetes, pero con los repositorios predeterminados, eso debería estar bien. No usarlodist-upgrade
puede ser peligroso, ya que puede perder las actualizaciones de seguridad.apt-get dist-upgrade
puede eliminar y agregar paquetes, pero no es realmente peligroso. ¡Cualquier comando de instalación de paquete puede causar daños graves si tiene problemas en susources.list
archivo ! Unapt-get upgrade
comando regular instalará cualquier paquete desde cualquier fuente de software que esté habilitado;dist-upgrade
No es único de esta manera. Además, usaraptitude
para realizar cualquier operación, al menos en amd64, es mucho más peligroso que ejecutarloapt-get dist-upgrade
, en una versión donde el error 831768 no está solucionado.sudo aptitude safe-upgrade
¿Por qué no prueba esta respuesta de Unix SE ?
apt
comando ( alternativa amigable aapt-get
) compartir esta opción.¡Usar en su
apt install <pkg>
lugar marcará pkg como "instalado manualmente"! Para marcarlo nuevamente como uso "instalado automáticamente"apt-mark auto <pkg>
(consulte también el subcomandoshowmanual
). Más información sobre esta respuesta .fuente
apt-mark auto <pkg>
solo debería ser necesario para marcar un paquete como instalado automáticamente ( aquí la página del manual ).sudo apt-get --with-new-pkgs upgrade
todavía muestra los paquetes como "retenidos". No hay mensaje de error.Normalmente hay dos razones por las que puede ver este mensaje.
Si la actualización del programa (a través de
sudo apt-get upgrade
) hace que se agreguen o eliminen paquetes, entonces el programa se retrasará. Puede usarsudo apt-get dist-upgrade
en este caso, que luego ofrecerá agregar o eliminar los programas adicionales.Esto es bastante común y generalmente no es un problema. Ocasionalmente (particularmente durante un Ubuntu alfa) a
dist-upgrade
ofrecerá eliminar muchos otros programas, en cuyo caso probablemente desee cancelarlo.Si el programa depende de paquetes o versiones que no están disponibles, entonces el programa se retrasará. Realmente no puede hacer nada más que esperar en esta circunstancia, ya que el paquete es básicamente desinstalable. Esto puede suceder cuando los paquetes se agregan al repositorio fuera de servicio, cuando se cambia el nombre de un paquete o cuando un paquete deja de proporcionar un paquete virtual.
fuente
apt-get dist-upgrade
negó a instalarlo. La inspección del paquete con aptitud demostró que depende de un paquete que no está disponible. Supongo que tendré que esperar.También puedes probar:
sudo aptitude safe-upgrade
.Es más seguro que
full-upgrade
(originalmente llamado dist-upgrade) porque "los paquetes no se eliminarán a menos que no se usen".De
man aptitude
:fuente
Lo más probable es que estos paquetes se retengan porque su instalación crearía inconsistencias de dependencia. Esto puede suceder porque está usando archivos en desarrollo activo, ppas, o porque el espejo que usa no está completamente actualizado.
En el último caso, solo espere, cuando se resuelvan las dependencias se instalará la próxima vez.
Editar:
Existe otra posibilidad, los paquetes pueden retenerse si se les retiene o si se fijan.
fuente
dist-upgrade
. Si aún así lo deseadist-upgrade
, mire los NUEVOS paquetes que se instalarán y los paquetes que se eliminarán antes de continuar.apt-get install --reinstall <packages>
.Esto generalmente se debe a que el paquete ha agregado una dependencia, y la actualización no quiere agregarlo sin su permiso.
Si tu corres:
Luego, las nuevas versiones deben instalarse junto con su nueva dependencia.
fuente
Esto funciono para mi
fuente
aptitude upgrade
trabajó para mí.Ubuntu 14.04
y no tengoaptitude
línea de comandoapt-get dist-upgrade
me dio el mismo mensaje, pero esto lo resolvió por mí. Tenía un paquete que estaba rompiendo la actualización de otro paquete. No necesitaba el que instalé, así queaptitude full-upgrade
me dio la opción de eliminarlo para poder actualizar todo lo demás.He descubierto que aptitude hace un mejor trabajo al actualizar paquetes si las versiones difieren ligeramente. Tuve una situación como esta:
Esto hizo que apt-get retrasara la actualización, pero aptitude la actualizó bien. No estoy seguro de qué algoritmo se utiliza para determinar si un paquete debe actualizarse o no. Supongo que estos dos tenían la misma versión, solo un 'calificador' diferente. Pero en cualquier caso, apt-get no lo actualizaría, pero aptitude lo haría.
fuente
En mi caso, los paquetes retenidos eran los relacionados con los encabezados de Linux y el núcleo. Llegué a esto tratando de resolver un problema con un signo de exclamación rojo en el área de notificación y no poder actualizar los paquetes.
Para resolverlo, no tuve que usar ni dist-upgrade ni manual apt-get install xxx .
Lo que hice y ayudé ha sido simple y limpio :
Tuve que confirmar manualmente la actualización de Grub y su configuración.
Luego trabajé con la computadora por un tiempo y luego apareció nuevamente el diálogo de actualización estándar, que finalmente incluyó la sección "Base de Ubuntu" con el núcleo y relacionados. La actualización se realizó sin problemas y ya no veo ningún paquete retenido.
Además, es muy importante tener en cuenta que esas * actualizaciones de buntu, incluidas las actualizaciones del kernel, son sensibles a la hibernación : tengo este problema varias veces y siempre lo resuelvo reiniciando la máquina y realizando los pasos anteriores.
Entonces, ¿tal vez esto sería suficiente?
(La situación que se describe aquí está relacionada con mi Xubuntu 15.10 a fines de diciembre de 2015)
fuente
Me encontré con este problema cuando se lanzó un nuevo núcleo. (Posiblemente porque tengo habilitadas las actualizaciones inestables). Encontré que la forma más sencilla de hacer la instalación era a través del instalador gráfico de Ubuntu (
update-manager
).fuente
Me encontré con este problema usando synaptic porque parecía bloquearse, y para intentar solucionarlo, reinicié e intenté nuevamente.
Luego descubrí un mensaje informativo como parte del paquete con algunas instrucciones posteriores a la instalación para mí.
Tuve que presionar " detalles ", y luego ' q ' para dejar de fumar después de leer el mensaje, y luego las cosas continuaron normalmente.
fuente
Esta parece ser la forma correcta de reinstalar el paquete retenido:
apt-get install --reinstall libjpeg-progs
Al menos esto funcionó para mí cuando
libjpeg-progs
estaba atascado después de actualizar Ubuntu 14.04 a 16.04. Estoy seguro de que puede hacer lo mismo con cualquier otra aplicación retenida, por ejemplogimp
.Fuente: https://ubuntuforums.org/showthread.php?t=2321702&p=13476183#post13476183
fuente
--reinstall
.De hecho, el interruptor que necesita es el
dselect-upgrade
que instala / elimina las dependencias para el conjunto de paquetes en particular involucrado.fuente
He leído todas las publicaciones y descubrí que hay muchas explicaciones interesantes. Estaba probándolos todos pero no tengo ningún resultado por completo. Tengo un problema con mysql-utilities que no pude actualizar. La actualización fue propuesta por el sistema. Entonces, quiero mostrar algunos pasos para hacerlo. Por supuesto, repetiré en algunos momentos todas las publicaciones mencionadas anteriormente. Aquí está mi error, sí, lo encontré en publicaciones ya existentes, pero ¿qué debo hacer a continuación?
El siguiente paso es:
Los resultados que podemos ver en la imagen de abajo. Elimino el paquete y verifico esto por comando:
Resultados - ¡Bien! Más tarde instalé esta nueva versión del paquete correctamente.
De esta manera, creo que puede ayudar a más personas nuevas porque con otros paquetes podemos seguir los mismos pasos.
Una vez, lo siento, cuando repetí en algunos lugares otras publicaciones.
fuente
{}
botón en el editor para formatearlo correctamente.Ubuntu 18.04 proporciona una nueva sintaxis optimizada a través de la
apt
cual se puede utilizar en lugar deapt-get
.fuente