L'output di apt-get upgrade
è:
The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl
Cosa significa questo? Dovrei agire? E quindi?
L'output di apt-get upgrade
è:
The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl
Cosa significa questo? Dovrei agire? E quindi?
Risposte:
Ho avuto lo stesso problema, diverse volte. NON farlo per
sudo apt-get dist-upgrade
primo. Molto importante. **** NOTA: questa soluzione è per macchine basate su Debian ma non funzionerà su KDE Neon . Per aggiornare KDE Neon, devi usaresudo pkcon update
. ****
Può rendere il tuo sistema molto instabile, i programmi possono bloccarsi e puoi perdere molte funzionalità nel tuo sistema operativo.
È NECESSARIO installare ogni pacchetto singolarmente, TUTTAVIA , durante tale processo, anche altre dipendenze verranno installate automaticamente e il problema sarà risolto in pochi minuti.
Non ho avuto problemi con la seguente soluzione. È abbastanza veloce e facile.
apt list --upgradable
sudo apt-get install package-name-here
apt list --upgradable
apt list --upgradable
dopo l'installazione di ciascun pacchetto. Questo dovrebbe richiedere solo un paio di minuti per il completamento.
sudo apt-get autoclean
sudo apt-get update && sudo apt-get dist-upgrade
Se questa soluzione ha funzionato per te, ti preghiamo di non dimenticare di votarla in modo che la soluzione corretta sia disponibile per gli altri e sia in cima all'elenco delle risposte.
Se per qualche motivo questa soluzione non funziona per te, consulta la risposta dell'utente GAD3R di seguito. È anche una buona soluzione.
Grazie.
Cosa significa questo?
The following packages have been kept back:
La risposta è qui
Ciò significa che ci sono nuove versioni di questi pacchetti che non verranno installati per qualche motivo. Le possibili ragioni sono dipendenze interrotte (un pacchetto da cui dipende non ha una versione disponibile per il download) o nuove dipendenze (il pacchetto è diventato dipendente da nuovi pacchetti dall'ultima versione).
Dovrei agire?
È necessario utilizzare dist-upgrade
per installare le nuove dipendenze e aggiornare i pacchetti:
sudo apt-get dist-upgrade
Il problema può essere risolto eseguendo dist-upgrade
se non è necessario:
Correggi dipendenze interrotte
sudo apt-get -f install
Rimuovi alcuni pacchetti che non sono più installati sul tuo sistema:
sudo apt-get autoclean
Metti in attesa il pacchetto desiderato:
echo "<package_name> hold" | dpkg --set-selections
Riconfigurare il pacchetto denominato:
dpkg-reconfigure <package_name>
In primo luogo, come indicato sopra, NON aggiornare l'aggiornamento di alcun sistema di produzione! Mentre dist-upgrade "risolverà" i pacchetti trattenuti, non è sicuramente la soluzione a questo problema e molto probabilmente ti causerà più dolore che vantaggio se lo esegui senza conoscere le implicazioni sul tuo sistema.
Se l'aggiornamento di un pacchetto richiede l'installazione di pacchetti aggiuntivi, questo verrà "trattenuto" durante l'esecuzione sudo apt-get upgrade
.
Come accennato in precedenza, è possibile installare questi pacchetti "trattenuti" manualmente eseguendo esplicitamente, sudo apt-get install [paste kept back packages here]
ma ciò contrassegnerà questi pacchetti come "installati manualmente", che spesso non è quello che vogliamo.
Per installare automaticamente eventuali pacchetti aggiuntivi necessari per aggiornare i pacchetti "trattenuti" senza contrassegnare i pacchetti "trattenuti" come installati manualmente appena eseguiti sudo apt-get --with-new-pkgs upgrade
.
Ho incluso questa risposta nel mio blog. Se vuoi vedere che puoi andare lì da questo link .
L'errore sopra è molto comune nel terminale Ubuntu quando si tenta di aggiornare ( apt-get upgrade
). Questo di solito accade perché le dipendenze di un pacchetto installato sono cambiate. Al fine di aggiornare è necessario aggiornare anche quelli prima. Quindi è molto semplice risolverlo. Sarai in grado di vedere quei pacchetti che sono rimasti sotto questo messaggio di errore. come esempio posso vedere i seguenti pacchetti nell'elenco:
gnome-software gnome-software-common linux-generic linux-headers-generic
linux-image-generic snapd ubuntu-core-launcher ubuntu-software
Non limitarti a digitare sudo apt-get dist-upgrade
È molto pericoloso poiché installa tutti gli aggiornamenti in sospeso. Ciò potrebbe portare il tuo ambiente di lavoro a uno stato altamente instabile.
Pertanto, la mia opinione è di usare famosi
sudo apt-get install [package]
È possibile sostituire [package]
con qualsiasi pacchetto sia presente nel messaggio di errore. Inoltre puoi metterli come è come un elenco (basta copiarlo e incollarlo). Come esempio nel mio caso posso entrare
sudo apt-get install gnome-software gnome-software-common linux-generic linux-headers-generic
linux-image-generic snapd ubuntu-core-launcher ubuntu-software
Se vuoi farlo
sudo apt-get dist-upgrade
per qualche motivo, assicurati di controllare l'elenco dei pacchetti usando l'opzione simulate -s
( sudo apt-get -s dist-upgrade
) o senza l' -s
opzione puoi terminare l'esecuzione prima di accettare. (puoi sempre scegliere l'opzione no)
Recentemente un aggiornamento della sicurezza Debian ha introdotto alcune nuove dipendenze. In questo caso il linux-image
pacchetto ha iniziato a richiedere linux-firmware
, tra gli altri. Quindi sono stati trattenuti e non installati da unattended-upgrade
. Dopo alcuni test e conferme sono stato in grado di installare selettivamente solo quei pacchetti, senza toccare altri aggiornamenti in sospeso:
apt-get -yy install $(apt-get -s upgrade | sed '1,/kept back/d;/will be upgraded/,$d')
Questo articolo riassume perfettamente il motivo per cui ciò accade:
Se le dipendenze sono cambiate su uno dei pacchetti installati in modo che sia necessario installare un nuovo pacchetto per eseguire l'aggiornamento, questo verrà elencato come "trattenuto".
La soluzione a questo è installarli esplicitamente con
sudo apt install [packages]
Probabilmente vuoi contrassegnare questi pacchetti come installati automaticamente, a meno che non ti interessi a loro stessi e non solo per soddisfare le dipendenze.
sudo apt-mark auto [packages]
Per evitare che ciò accada in primo luogo, consiglio di utilizzare
sudo apt --with-new-pkgs upgrade
aggiornare i pacchetti in futuro, il che consente l'installazione di nuovi pacchetti per soddisfare le variazioni delle dipendenze.
--with-new-pkgs
! E lasciatemi sottolineare ancora una volta che " NON dist-upgrade nessun sistema di produzione! Mentre l'aggiornamento dist" risolverà "i pacchetti trattenuti, non è sicuramente la soluzione a questo problema e molto probabilmente ti causerà più dolore che vantaggio se tu eseguirlo senza conoscere le implicazioni sul tuo sistema. "