APT acuñado por la versión del núcleo no coincide

18

Aparentemente, Apt no puede hacer nada útil para mí, dando repetidamente mensajes de esta forma:

dpkg: dependency problems prevent configuration of linux-server:
 linux-server depends on linux-image-server (= 3.2.0.37.44); however:
  Version of linux-image-server on system is 3.2.0.37.45.
 linux-server depends on linux-headers-server (= 3.2.0.37.44); however:
  Version of linux-headers-server on system is 3.2.0.37.45.
dpkg: error processing linux-server (--configure):
 dependency problems - leaving unconfigured

Este es básicamente el mismo problema, ya que no puedo instalar ningún paquete (errores de dependencias de linux-image-server, linux-server) que se cerró Duplicar a una respuesta que es totalmente inútil para esta situación. Ninguno de los consejos en esa respuesta muy genérica sobre dependencias ayuda.

Explícitamente:

sudo apt-get clean
sudo apt-get autoclean
sudo apt-get update

Todos no tienen ningún efecto. Mientras

sudo apt-get -f install
sudo dpkg --configure -a
sudo apt-get -u dist-upgrade
sudo apt-get -o Debug::pkgProblemResolver=yes dist-upgrade

todos dan alguna forma del mensaje de error anterior.

Leopd
fuente

Respuestas:

20

Corriste sudo apt-get updatey el problema aún sucede. Por lo tanto, es probable que tenga una versión más nueva linux-image-servery linux-headers-serverque cualquier linux-serverpaquete disponible de sus fuentes de software configuradas .

Esto podría ocurrir por un tiempo muy corto, incluso si está utilizando el servidor central (o por un tiempo más prolongado si hubo un problema al actualizarlo). Tengo entendido que puede ocurrir por períodos más largos de tiempo si usa un espejo. Eso no significa que no deba usar un espejo: el servidor central ( http://archive.ubuntu.com) suele ser muy lento y los espejos nacionales, regionales u otros son mucho más rápidos.

Una búsqueda de paquetes revela que la versión 3.2.0.37.45 de ambos linux-image-servery linux-serverexisten para Ubuntu 12.04. Entonces probablemente esté relacionado con tu espejo.

Aquí hay algunas alternativas:

Ignoralo

Si puede usar el administrador de paquetes para otros fines, por ejemplo, para instalar otros paquetes, simplemente puede ignorar esto. Cuando su espejo se actualice, probablemente solo obtendrá el paquete.

No es un problema no tener el último linux-serverpaquete, ya que es un metapaquete que no proporciona ningún software real. Solo existe para que pueda enumerar tres paquetes como dependencias , asegurando que permanezcan instalados:

Ya tienes las últimas versiones de linux-headers-servery linux-image-server. Supongo que este es un sistema de 64 bits, por lo que no linux-generic-paese mostró ningún mensaje al respecto . Parece que todo está bien.

Sin embargo:

  • Si el problema es evitar que la actualización e instalación de otros paquetes funcionen (en lugar de mostrar esos mensajes cada vez que lo hace, pero no interferir con ellos), entonces debe aplicar alguna otra solución.
  • También es posible que desee hacerlo, si simplemente no le gusta ver estos mensajes todo el tiempo y desea deshacerse de ellos.
  • Es un poco extraño que no esté recibiendo este paquete, incluso si usa un espejo que está un poco por detrás del servidor de descarga principal, porque este paquete también lo proporciona http://security.ubuntu.com. Ese servidor siempre debe estar habilitado en /etc/apt/sources.list. Por lo tanto, recomiendo verificar para asegurarse de que esté habilitado. Es posible que desee hacer una copia de seguridad sources.listantes de editarlo ( sudo cp /etc/apt/sources.list /etc/apt/sources.list.old). El problema también podría ser consecuencia de un proxy web de almacenamiento en caché (si usa uno) con datos obsoletos. (Las soluciones a continuación también evitarán eso).

Cambiar a un servidor de descarga diferente

Supongo que está ejecutando un sistema Ubuntu Server y probablemente no tenga una GUI instalada. Así que vea:

Después de cambiar su espejo, ejecute:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Si lo desea, puede volver a cambiar su servidor después de linux-serveractualizarlo.

Descargue e instale manualmente el .debarchivo del paquete

Puede descargar e instalar manualmente el .debarchivo para la última versión del linux-servermetapaquete en Ubuntu 12.04.

cd a donde quieras descargar el paquete.

Si este es un sistema de 64 bits, ejecute:

wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-server_3.2.0.23.25_amd64.deb

Si este es un sistema de 32 bits, ejecute esto en su lugar:

wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-server_3.2.0.23.25_i386.deb

(Obtuve ambos enlaces en la página Launchpad para el linux-metapaquete fuente en Ubuntu ).

Ahora (tanto para 64 bits como para 32 bits), ejecute este comando para instalar el paquete:

sudo dpkg -i linux-server_3.2.0.23.25_*.deb

(O simplemente comience a escribir el nombre del paquete y úselo Tabpara completarlo).

Eliminar el paquete

Dado que es un metapaquete que proporciona el software que ya tiene, puede eliminar el paquete. Entonces ya no recibirá el error. Puede instalarlo nuevamente más tarde si lo desea (puede ejecutarlo periódicamente apt-get update && apt-cache policy linux-serverpara ver si la nueva versión está disponible).

Hay dos pasos, si desea eliminarlo. El primero es desinstalar linux-server. el segundo es asegurarse de que los paquetes no se eliminen automáticamente más tarde.

Las dependencias no se eliminarán de inmediato . Por lo tanto, no importa cuál de estos pasos realice primero.

1. Desinstalar linux-server.

Para desinstalar linux-server, simplemente ejecute:

sudo apt-get remove linux-server

2. Marque sus dependencias como instaladas manualmente

Para decirle a APT (el administrador de paquetes) acerca de los paquetes que piensa instalar, incluso si no queda nada que los declare una dependencia, márquelos como instalados manualmente.

Para hacer eso, ejecute este comando, si este es un sistema de 64 bits:

sudo apt-mark manual linux-image-server linux-headers-server

Si es un sistema de 32 bits, ejecute esto en su lugar:

sudo apt-mark manual linux-image-server linux-headers-server linux-generic-pae

(Debería haberlo hecho, apt-markpero si no lo hace y no puede instalar el software, puede usarlo en apt-get installlugar de: si apt-mark manualespecifica un paquete manualmente para la instalación, se marcará como instalado manualmente incluso si ya estaba instalado).

Fuente: Marque un paquete deb como se usa, por lo que no se sugiere para la eliminación automática
(en particular, la respuesta de Lekensteyn ).

Eliah Kagan
fuente
3
Gracias por la respuesta detallada. Cambiar los espejos no cambió la situación en absoluto. Pero la instalación manual de la versión más reciente de linux-server ( linux-server_3.2.0.37.45) solucionó el problema.
Leopd
2
En mi caso, no podría usar apt-get para nada. Siempre recibí el error de dependencia insatisfecho para linux-server. Inspirado por su consejo, probé lo siguiente, que funcionó y fue mucho más simple:sudo apt-get remove linux-server && sudo apt-get install linux-server
Andrew Ensley
4

Si tuviste una instalación de actualización de seguridad completa / de arranque y automática quebrada, es posible que estés en el mismo barco que yo.

No pude conseguir que apt-get hiciera nada, por lo que los consejos tradicionales completos / de arranque no funcionaron. Eliminé manualmente los datos antiguos del núcleo. No elimine el núcleo actual en ejecución, verifique con 'uname -a'. Eliminé con 'sudo rm / boot / -3.2.0- {23,24,25,26} - .

Luego tuve que ejecutar 'sudo apt-get remove linux-server' y 'sudo apt-get install linux-server' para corregir el desastre del problema del kernel 1/2 instalado. Después de todo eso, finalmente podría 'sudo apt-get upgrade' y hacer que las cosas vuelvan a moverse.

En buena medida, agregué un 'sudo update-grub' y 'sudo apt-get autoremove' para asegurarme de que el menú de arranque fuera preciso y que otros paquetes se limpiaran.

flickerfly
fuente
Escribí un poco más sobre este proceso aquí: askubuntu.com/a/430944/47461 Como contratista, me encuentro con este problema con frecuencia.
flickerfly