Ubuntu 16.04 - los paquetes del kernel se han retenido

18

Corrí sudo apt-get upgradey me sale esto:

The following packages have been kept back:  
linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04 linux-signed-generic-hwe-16.04 linux-signed-image-generic-hwe-16.04  
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.

Me temo que si ejecuto sudo apt-get dist-upgradealgo podría salir mal y podría estropear mi instalación de Ubuntu. He visto preguntas similares aquí, pero creo que son diferentes de mi problema. Qué tengo que hacer ?

NikosL24
fuente
@Yaron No creo que sea lo mismo.
NikosL24
Es la misma cosa. Lee las respuestas.
pzkpfw
Apt nunca realiza operaciones más allá de las solicitadas explícitamente sin comentarios de los usuarios; simplemente responda la pregunta con n"no" (o el equivalente del lenguaje que usa Apt). Si todavía no está seguro de lo que podría suceder durante una operación de Apt, puede usar las opciones de línea de comandos -s/ --simulate/ --just-print/ --dry-run/ --recon/ --no-actpara ver qué haría Apt sin hacerlo realmente.
David Foerster

Respuestas:

6

Aunque el tema general "los paquetes han sido retenidos " ha sido respondido aquí antes: hay algo extraño hoy ... cuando sudo apt updateejecuté hace unas horas, el nuevo núcleo 4.8.0-42 se ofreció para la instalación. Ejecuté sudo apt dist-upgradey después del reinicio del sistema (estación de trabajo Ubuntu 16.10), estaba ejecutando ese nuevo núcleo.

Unas horas más tarde quería actualizar la instalación de mi servidor Ubuntu, pero no se ofreció un nuevo núcleo. Para volver a verificar la situación, restauré mi imagen de copia de seguridad del sistema clonezilla de ayer en la estación de trabajo Ubuntu para volver a verificar la situación. Esta vez ya no se ofreció el nuevo núcleo. Parece que el kernel 4.8.0-42 se introdujo accidentalmente en el repositorio principal y está en camino de volver al repositorio propuesto, tal vez Canonical ha encontrado un error.

Ha optado por la pila HWE de Ubuntu 16.04, lo que significa que está utilizando el núcleo 4.8 de Ubuntu 16.10. Por lo tanto, todo sucede con el kernel en Ubuntu 16.10 primero, una posible explicación para el retraso de tiempo del proceso de actualización para los repositorios Ubuntu 16.04 LTS.

Cuando sudo apt updatevuelva a correr un poco más tarde, el mensaje que recibió ya no debería aparecer. Conclusión: No ejecute sudo apt dist-upgradey espere a la derecha hasta que los repositorios se actualicen y el mensaje sobre los paquetes retenidos del núcleo ya no aparezca. Por cierto, exactamente lo mismo sucedió con la versión del kernel 4.8.0-40 ya hace algún tiempo.

cl-netbox
fuente
El índice del paquete informa 4.8.0-42: packages.ubuntu.com/xenial-updates/linux-generic-hwe-16.04 ... ¿qué espejo está usando?
muru
Esto definitivamente es una cosa / problema real. Ayer actualicé mi sistema usando el proceso normal. Hoy apt-cache policy linux-generic-hwe-16.04muestra *** 4.8.0.42.14 100 100 /var/lib/dpkg/status En otras palabras, quedó huérfano.
Mármol orgánico
@ cl-netbox hice una actualización de sudo apt-get nuevamente ahora y los paquetes desaparecieron.
NikosL24
12

Si la actualización de un paquete existente requeriría la instalación de un paquete "nuevo" (por ejemplo, aún no instalado), ese paquete existente en particular se "retendrá".

Según el hombre apt-get , upgradepor defecto no instala otros paquetes aún no instalados:

potenciar

... bajo ninguna circunstancia se eliminan los paquetes instalados actualmente, o los paquetes que aún no están instalados se recuperan e instalan.

--with-new-pkgs

Permita la instalación de nuevos paquetes cuando se usa junto con la actualización. Esto es útil si la actualización de un paquete instalado requiere la instalación de nuevas dependencias. En lugar de retener el paquete, la actualización actualizará el paquete e instalará las nuevas dependencias. ...

por lo tanto, --with-new-pkgsdebe agregarse para permitir la inclusión de otros paquetes relacionados.

sudo apt-get --with-new-pkgs upgrade

--with-new-pkgs permite que los paquetes relacionados "aún no instalados" se instalen con una solicitud interactiva S / n.

Además, como beneficio adicional, sudo apt-get --with-new-pkgs upgradeNO tiene el efecto secundario de hacer que los paquetes se marquen como instalados manualmente.


Actualizar

Ubuntu 18.04 proporciona una sintaxis más nueva y simplificada aptque se puede usar en lugar de apt-get.

sudo apt full-upgrade
l --marc l
fuente
Todo "si un paquete requiere que se instale un nuevo paquete", entonces se retendrá no tiene sentido para mí. Tengo mi propio paquete de Deb que administro, y si agrego una dependencia que no está instalada en mi sistema, apt upgrade aún actualizará el paquete y no lo retendrá.
Shreddish
@shreddish En mi experiencia, algunos sudo apt-get upgradeescenarios han necesitado la --with-new-pkgsinformación de la página del manual. Aparentemente, el paquete de Deb que administra, o el escenario de prueba que se está utilizando , no desencadena la necesidad de la --with-new-pkgsopción con una dependencia desinstalada agregada ... por alguna razón aún por descubrir. Sería interesante saber si fue capaz de aislar el motivo.
l --marco l
2

Siendo un usuario de Ubuntu relativamente nuevo, me encontré con el mismo problema y aparentemente lo resolví. Descubrí que había tres actualizaciones pendientes en el software de Ubuntu con los mismos nombres que los que figuran en el terminal, como se enumeran a continuación:

The following packages have been kept back:
linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

Después de instalar esas actualizaciones del software Ubuntu volví a la Terminal y lo hice sudo apt-get updatey sudo apt-get upgrade. El resultado:

The following packages were automatically installed and are no longer required:
  linux-headers-4.8.0-41 linux-headers-4.8.0-41-generic linux-headers-4.8.0-44 linux-headers-4.8.0-44-generic linux-image-4.8.0-41-generic
  linux-image-4.8.0-44-generic linux-image-extra-4.8.0-41-generic linux-image-extra-4.8.0-44-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Al no ser un experto, creo que la instalación de actualizaciones del software de Ubuntu parece resolver el problema. Y el problema parece ser que no hay una comunicación completa entre el software Ubuntu y los paquetes de actualización y actualización de apt-get. Estoy seguro de que encontrarás una mejor explicación, pero quería compartir esto contigo.

Jose
fuente
Gracias. En general, Ubuntu nos aconseja que no usemos aptitude o synaptic (eliminándolos de la instalación predeterminada. Tal vez esa sea la dirección en la que buscar respuestas. Intentaré evitar esas dos por ahora. Tan pronto como vi su respuesta, corrí al centro de software y me mostró cosas que ignoraba. Dado que el sistema operativo está construido por Ubuntu, seguiré en SC. Es un poco como discutir con la AppStore cuando homebrew hace reclamos.
nyxee
Por lo tanto, este centro de software parece ser una muy mala solución para aquellos de nosotros con malas conncencias. ¿Hay otra manera?
nyxee