APT bloccato dalla mancata corrispondenza della versione del kernel


18

Apparentemente Apt non è in grado di fare nulla di utile per me, dando ripetutamente messaggi di questo modulo:

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

Questo è fondamentalmente lo stesso problema in quanto non riesco a installare alcun pacchetto (errori di dipendenze di linux-image-server, linux-server) che è stato chiuso Duplicato a una risposta totalmente inutile per questa situazione. Nessuno dei consigli in quella risposta molto generica sulle dipendenze aiuta.

esplicitamente:

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

tutti non hanno alcun effetto. Mentre

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

tutti danno una forma del messaggio di errore sopra.

Risposte:


20

Hai corso sudo apt-get updatee il problema persiste. Quindi probabilmente hai solo una versione più recente di linux-image-servere linux-headers-serverdi qualsiasi linux-serverpacchetto disponibile dalle tue fonti software configurate .

Ciò potrebbe verificarsi per un tempo molto breve anche se si utilizza il server centrale (o per un tempo più lungo se si è verificato un problema durante l'aggiornamento). La mia comprensione è che può verificarsi per periodi di tempo più lunghi se si utilizza un mirror. Ciò non significa che non dovresti usare un mirror: il server centrale ( http://archive.ubuntu.com) è in genere molto lento e i mirror nazionali, regionali o di altro tipo sono molto più veloci.

Una ricerca di pacchetti rivela che la versione 3.2.0.37.45 di entrambi linux-image-servered linux-serveresiste per Ubuntu 12.04. Quindi è probabilmente correlato al tuo mirror.

Ecco alcune alternative:

Ignoralo

Se sei in grado di utilizzare il gestore pacchetti per altri scopi, ad esempio per installare altri pacchetti, puoi semplicemente ignorarlo. Quando il tuo mirror viene aggiornato, probabilmente otterrai il pacchetto.

Non è un problema non avere l'ultimo linux-serverpacchetto, in quanto è un metapacchetto che non fornisce alcun software reale. Esiste solo per poter elencare tre pacchetti come dipendenze , assicurandosi che rimangano installati:

Hai già le ultime versioni di linux-headers-servere linux-image-server. La mia ipotesi è che si tratti di un sistema a 64 bit, motivo per cui non è linux-generic-paestato mostrato alcun messaggio . Sembra che tutto vada bene.

Tuttavia:

  • Se il problema impedisce l' aggiornamento e l'installazione di altri pacchetti funzionanti (anziché mostrare semplicemente quei messaggi ogni volta che lo fai ma non interferire con esso), allora dovresti applicare qualche altra soluzione.
  • Potresti anche voler farlo, se semplicemente non ti piace vedere questi messaggi tutto il tempo e vuoi sbarazzartene.
  • È un po 'strano che non si ottenga questo pacchetto, anche se si utilizza un mirror in ritardo rispetto al server di download principale, poiché anche questo pacchetto è fornito da http://security.ubuntu.com. Quel server dovrebbe essere sempre abilitato in /etc/apt/sources.list. Quindi consiglio di verificare per assicurarsi che sia abilitato. Potrebbe essere necessario eseguire il backup sources.listprima di modificarlo ( sudo cp /etc/apt/sources.list /etc/apt/sources.list.old). Il problema potrebbe anche essere una conseguenza di un proxy Web di memorizzazione nella cache (se ne usi uno) con dati non aggiornati. (Anche le soluzioni seguenti risolveranno il problema.)

Passare a un altro server di download

Immagino che tu stia eseguendo un sistema Ubuntu Server e probabilmente non hai una GUI installata. Quindi, vedi:

Dopo aver cambiato il tuo mirror, esegui:

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

Se lo desideri, puoi ripristinare il server dopo averlo linux-serveraggiornato.

Scarica e installa manualmente il .debfile del pacchetto

Puoi scaricare e installare manualmente il .debfile per l'ultima versione del linux-servermetapacchetto in Ubuntu 12.04.

cd ovunque tu voglia scaricare il pacchetto.

Se si tratta di un sistema a 64 bit, eseguire:

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

Se si tratta di un sistema a 32 bit, eseguire invece questo:

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

(Ho ottenuto entrambi quei collegamenti sulla pagina Launchpad per il linux-metapacchetto sorgente in Ubuntu .)

Ora (sia per 64 bit che per 32 bit), eseguire questo comando per installare il pacchetto:

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

(O semplicemente iniziare a digitare il nome del pacchetto e utilizzarlo Tabper completarlo.)

Rimuovi il pacchetto

Poiché si tratta di un metapacchetto che fornisce software già in uso, è possibile rimuovere il pacchetto. Quindi non otterrai più l'errore. Se lo desideri, puoi installarlo nuovamente in un secondo momento (potresti eseguire periodicamente apt-get update && apt-cache policy linux-serverper vedere se la nuova versione è disponibile).

Ci sono due passaggi, se si desidera rimuoverlo. Il primo è disinstallare linux-server. il secondo è assicurarsi che i pacchetti non vengano automaticamente rimossi in seguito.

Le dipendenze non verranno rimosse immediatamente . Quindi non importa quale di questi passaggi fai prima.

1. Disinstalla linux-server.

Per disinstallare linux-server, basta eseguire:

sudo apt-get remove linux-server

2. Contrassegnare le sue dipendenze come installate manualmente

Per informare APT (il gestore dei pacchetti) sui pacchetti che si intende installare anche se non rimane nulla che li dichiari dipendenza, contrassegnarli come installati manualmente.

Per fare ciò, eseguire questo comando, se si tratta di un sistema a 64 bit:

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

Se è un sistema a 32 bit, esegui invece questo:

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

(Dovresti, apt-markma se non lo fai e non puoi installare il software, puoi usare apt-get installinvece di apt-mark manual--specificare un pacchetto manualmente per l'installazione fa sì che sia contrassegnato come installato manualmente anche se era già installato.)

Fonte: Contrassegna un pacchetto deb come usato, quindi non è consigliato per autoremoval
(in particolare, la risposta di Lekensteyn .)


3
Grazie per la risposta dettagliata. La modifica dei mirror non ha cambiato affatto la situazione. Ma l'installazione manuale della versione più recente di linux-server ( linux-server_3.2.0.37.45) ha risolto il problema.
Leopd,

2
Nel mio caso, non potevo usare apt-get per niente. Ho sempre ricevuto l'errore di dipendenza non soddisfatto per linux-server. Ispirato al tuo consiglio, ho provato quanto segue, che ha funzionato ed è stato molto più semplice:sudo apt-get remove linux-server && sudo apt-get install linux-server
Andrew Ensley,

4

Se hai avuto un completo / avvio e le installazioni di aggiornamento automatico della sicurezza si sono interrotte, potresti essere nella stessa barca di me.

Non sono riuscito a fare apt-get per fare qualcosa, quindi i consigli tradizionali di avvio / avvio non hanno funzionato. Ho rimosso manualmente i vecchi dati del kernel. Non rimuovere l'attuale kernel in esecuzione, controllare con 'uname -a'. Ho rimosso con 'sudo rm / boot / -3.2.0- {23,24,25,26} - .

Quindi ho dovuto eseguire 'sudo apt-get remove linux-server' e 'sudo apt-get install linux-server' per correggere il disordine dal problema del kernel 1/2 installato. Dopo tutto ciò, potrei finalmente 'sudo apt-get upgrade' e far ripartire le cose.

Per buona misura, ho lanciato "sudo update-grub" e "sudo apt-get autoremove" per assicurarmi che il menu di avvio fosse accurato e che altri pacchetti fossero ripuliti.


Ho scritto molto di più su questo processo qui: askubuntu.com/a/430944/47461 Come appaltatore mi imbatto spesso in questo problema.
flickerfly,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.