Come correggere l'errore "Il pacchetto si trova in uno stato incoerente molto grave"?


93

Non riesco ad aggiornare il mio sistema perché si blocca durante l'installazione di un aggiornamento di terze parti (zramswap-enabler)!

A volte ricevo il seguente messaggio in Update manager:

Impossibile inizializzare le informazioni sul pacchetto Si è verificato un problema irrisolvibile durante l'inizializzazione delle informazioni sul pacchetto.

Segnala questo errore nel pacchetto "update-manager" e includi il seguente messaggio di errore:

E:The package zramswap-enabler needs to be reinstalled, but I can't find an archive for it.

Ho provato a rimuovere zramswap-enabler, ma è impossibile perché ricevo il seguente messaggio:

dpkg: error processing zramswap-enabler (--remove):
 Package is in a very bad inconsistent state - you should
 reinstall it before attempting a removal.
Errors were encountered while processing:
 zramswap-enabler
E: Sub-process /usr/bin/dpkg returned an error code (1)

In realtà vorrei davvero reinstallare quel pacchetto, ma non è in grado di farlo! Se rimuovo questo PPA di terze parti, il sistema mi avvisa di un problema molto grave.

Quindi perché non posso installare / reinstallare / rimuovere / aggiornare questo pacchetto e perché blocca l'aggiornamento se provo ad aggiornare?


Risposte:


117

Modificato dalla domanda e aggiunto come risposta.

  1. Assicurati che il tuo PPA sia impostato.

  2. Rimuovere il pacchetto rotto con il seguente comando:

    sudo dpkg --remove --force-remove-reinstreq zramswap-enabler
    
  3. Installa di nuovo il pacchetto:

    sudo apt-get install zramswap-enabler
    
  4. Dopo il riavvio (non necessario), è possibile installare correttamente gli aggiornamenti!

In realtà è possibile risolvere qualsiasi problema "Il pacchetto è in pessimo stato incoerente" con questa soluzione!


1
@CharlesL Non è un problema! Nota che questa risposta è wiki della comunità e la soluzione è stata inizialmente trovata dall'autore della domanda, quindi non posso prendermi il merito. Tutto quello che ho fatto è stato modificare e riorganizzare per spostarlo in una risposta.
ζ--

Ho avuto qualche problema con questo (dal 14.04 al 16.04). "gcc-doc" non ha funzionato. Viene visualizzato il messaggio di errore /var/cache/apt/archives/gcc-doc_4%3a5.3.1-1ubuntu1_amd64.debe gli strumenti rifiutano '%' nel nome, quindi neanche il nome completo ha funzionato. Ho finito per rimuovere i file fino a quando non è stato felice - vedi ubuntuforums.org/showthread.php?t=2321414&page=2 .
fadden,

1
Ho dovuto usare una combinazione di --force-remove-reinstreqe --purge --force-dependsquando in cpp-5qualche modo avevano problemi di dipendenza rotti.
dashesy

70

Questo ha funzionato per me dopo aver perlustrato praticamente tutti i forum AskUbuntu e Ubuntu! ( Fonte ). Sto eseguendo Lubuntu 14.04

sudo mv /var/lib/dpkg/info/<packagename>.* /tmp/
sudo dpkg --remove --force-remove-reinstreq <packagename>
sudo apt-get remove <packagename>
sudo apt-get autoremove && sudo apt-get autoclean

2
Finalmente! Questo ha funzionato quando dpkg e apt non hanno rimosso o reinstallato un pacchetto
abaelter

1
Grazie. Questo mi ha salvato BIG TIME! Ho provato a saltare l'ultima riga, seguita da una apt-get install...e ho dovuto ricominciare da capo e fare TUTTE le quattro righe, quindi ho finalmente potuto eliminare il mio pacchetto. :)
Ryan H.

1
L'unica vera risposta che funziona in qualsiasi momento.
volte

1
Questo mi ha aiutato quando ho avuto problemi con gcc-doc e cpp-doc dopo un aggiornamento dalla 14.04. Avevo installato strumenti più recenti da ppa: ubuntu-toolchain-r / test e hanno rovinato tutto. Morale della storia, eliminare le ppas prima di passare a una nuova versione. Ma questo suggerimento mi ha aiutato a risolvere il pasticcio in seguito.
Charphacy,

1
Questo ha funzionato per me. Ho rimosso 1 file per correggere il mio problema di rimozione dei cactus. Rimosso /var/lib/dpkg/info/cacti.list
Mad Man

12

Ho avuto una situazione peggiore di questa. Ho dovuto rimuovere i pacchetti installati a metà forzando le dipendenze.

sudo dpkg --remove --force-remove-reinstreq --force-depends <package-name>

Quindi ho dovuto reinstallarli

sudo apt-get -f install

Questo dovrebbe risolvere qualsiasi problema. Assicurati di avere la connettività di rete quando tenti di farlo. Altrimenti, dovrai affrontare ancora più problemi.


1
Viene visualizzato
IgorGanapolsky

8

Le altre risposte sono corrette per menzionare la rimozione di un pacchetto seguita da apt-get install -funa reinstallazione del pacchetto rotto (e l'installazione completa di altri pacchetti installati a metà). Tuttavia, questo può essere fatto in un solo passaggio:

sudo apt-get install -f --reinstall zramswap-enabler

2

proverei a pulire lo stato della mia installazione prima di ricorrere alla disinstallazione di qualsiasi cosa abbia creato il problema:

apt-get autoclean
apt-get update
apt-get upgrade
apt-get install -f

modo molto migliore per risolverlo nella maggior parte dei casi e in almeno un'istanza mi aveva aiutato quando l'altro modo non funzionava (perché enormi dipendenze dal pacchetto da rimuovere)


Ciò produce un errore:sh: 0: getcwd() failed: No such file or directory /bin/sh: 1: /usr/sbin/dpkg-preconfigure: Permission denied
IgorGanapolsky

1
Immagino che tu l'abbia fatto da un account non amministratore. Prova a aggiungere un prefisso a ciascuna riga con sudo o accedi completamente come root (ovvero con: "sudo su" e la tua password o "su" e la password
dell'amministratore

1

Ho avuto un problema simile con quagga, il demone di routing. Il solo reinserimento del pacchetto ha funzionato per me:

# apt-get install -f  
<some output ommited>
dpkg: warning: overriding problem because --force enabled:
Package is in a very bad inconsistent state - you should
reinstall it before attempting a removal.

wget http://security.debian.org/debian-security/pool/updates/main/q/quagga/quagga_0.99.22.4-1+wheezy3_i386.deb
dpkg -i quagga_0.99.22.4-1+wheezy3_i386.deb

Ora è di nuovo ok:

#apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

1

La stessa cosa mi è successa quando mi sono disconnesso da Internet durante il download del pacchetto "WireShark". Dopodiché, quando ho provato a reinstallarlo, ha generato lo stesso errore "il pacchetto si trova in uno stato incoerente molto grave". Ho provato tutti i comandi per installare, eliminare, rimuovere e reinstallare, ma nulla ha funzionato. Dopo un po 'di ricerche su Google, mi sono imbattuto in un comando

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libwireshark8_2.2.6+g32dac6a-2ubuntu0.16.04_amd64.deb

(cambia libwireshark8_2.2.6+g32dac6a-2ubuntu0.16.04_amd64.debcon qualunque pacchetto stia creando problemi, nella directory /var/cache/apt/archives/).

Dopo che tutti i problemi sono stati risolti. Ho rimosso di nuovo il pacchetto usando

sudo apt --purge remove libwireshark8:amd64
sudo apt autoremove per rimuovere completamente il pacchetto.

Dopo di che, ho installato Wireshark nuovo utilizzando: sudo apt-get install wireshark.
Ora tutto funziona senza intoppi!

Rferenze:
come risolvere "Il processo secondario usr bin dpkg ha restituito un codice di errore 1" Errore?
Risolto errore dpkg

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.