Correggi pacchetto installato a metà


42

Ricevo un errore durante l'utilizzo sudo apt-get upgradeaffermando:

dpkg: error processing libgfortran3:amd64 (--configure):
  package libgfortran3:amd64 is not ready for configuration
  cannot configure (current status `half-installed')
Errors were encountered while processing:
  libgfortran3:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

Non sembra bloccare l'installazione / aggiornare altre applicazioni. Credo che questo problema sia sorto a causa dell'arresto diretto del mio PC durante l'aggiornamento dell'applicazione.

Come posso risolvere questo problema?


Risposte:


38
sudo dpkg --remove --force-remove-reinstreq --dry-run libgfortran3:amd64

È solo una corsa a secco. Non sono sicuro di cosa libgfortran3ci vorrà per rimuoverlo , ma eseguilo e vedi. Supponendo che non inghiottirà l'intero sistema, eseguirlo di nuovo senza il --dry-rune quindi è possibile sudo apt-get install ...restituire i pacchetti necessari.


4
Ha funzionato, grazie! Per la cronaca, l'ho eseguito e ha detto che dpkg: warning: package is in a very bad inconsistent state; you should reinstall it before attempting a removalquindi ho scaricato il pacchetto manualmente da packages.ubuntu.com ed eseguito sudo dpkg -i WHERE/THE/DOWNLOADED/PACKAGE/IS. Poi è diventato tutto buono.
Bora M. Alper,

1
Nel mio caso, dopo aver seguito queste istruzioni, semplicemente eseguendo 'apt-get install -f' ho reinstallato il pacchetto e risolto anche molti altri con dipendenze interrotte. Questo era per il pacchetto libx11-data su debian 7.
bchurchill,

Senza --dry-run, come hai detto, ha funzionato per me. Grazie!
forvas

70

Per l'errore del pacchetto installato per metà, --reinstall ha funzionato per me:

sudo apt-get install --reinstall packagename 

1
Sì, ma un avvertimento che dopo aver reinstallato nomepacchetto, apt-get procederà quindi alla configurazione di tutti i pacchetti metà configurati.
Cedric Knight,

5
questo è più sicuro della risposta accettata imho.
Zanna,

sudo apt-get install --reinstal ncurses-base e successivamente ho eseguito l'aggiornamento sudo apt-get usando l'utente root (sudo -s), ha funzionato proprio così ...
ArifMustafa

grande. solo quella soluzione ha risolto il mio problema
iWizard il

questo ha fatto per me. php-pear mi faceva venire il mal di testa. Grazie!
pcarvalho,

6
sudo apt install --reinstall packagename

Funziona a meraviglia. Ha risolto un problema che avevo riscontrato per mesi. Il mio caso riguardava il pacchettolibmysqlcppconn7v5

Non ho fatto altro che correre sudo apt install --reinstall libmysqlcppconn7v5


3

Ho avuto lo stesso problema "pacchetto installato a metà" con un pacchetto kibana. Ho ricevuto il seguente errore:

dpkg: error processing kibana (--configure):
package kibana is not ready for configuration
cannot configure (current status 'half-installed')
Errors were encountered while processing:
  kibana
E: Sub-process /usr/bin/dpkg returned an error code (1)

Se qualcuno sta ancora affrontando questo tipo di problema, puoi provare questo:

sudo rm /var/lib/dpkg/info/kibana*
cd /var/cache/apt/archives
sudo rm kibana*
apt-get --reinstall install kibana

Questo funziona per me. Devi solo sostituire la parola 'kibana' con il nome del pacchetto installato per metà.


2

Se si desidera risolvere questo problema tramite la GUI, è possibile utilizzare Synaptic. Synaptic è un eccellente strumento di gestione dei pacchetti che era incluso nelle versioni precedenti di Ubuntu. Per installarlo:

sudo apt-get install synaptic

fai clic su correggi pacchetti rotti.


synaptic non elenca il pacchetto nella categoria non funzionante :(
Barun

2

Questo dovrebbe risolvere il tuo problema senza reinstallare il pacchetto.

sudo dpkg --force-remove-reinstreq --remove <package_name here>

Seguito da: sudo apt-get update


Perché --force-remove-reinstreq? Il gestore pacchetti non afferma che è necessaria una reinstallazione. In generale, una rimozione regolare funziona bene per i pacchetti non configurati. -1
David Foerster,

È proprio quello che faccio quando sudo apt-get remove <packageè fuori opzione e non voglio reinstallare quel pacchetto installato per metà. Quindi, uso --force-remove-reinstreqper rimuovere quei file inutili .. PS: È su Linux Mint .. Dubito che lo farà sia diverso dato che Linux si basa su Ubuntu ..
CodeGeass

1
Il gestore dei pacchetti funziona allo stesso modo in tutte le distribuzioni basate su Debian (questo è ciò che dpkgsignifica dopotutto), ma non dovresti usare --force-*"solo nel caso". I messaggi di errore sono lì per un motivo e non dovrebbero essere presi alla leggera dagli utenti inesperti, motivo per cui non dovresti suggerire --force-*loro opzioni non necessarie . Altrimenti potremmo semplicemente raccomandare di usare sempre --force-all, o meglio, rimuovere del tutto le --force-*opzioni dpkge farle diventare il comportamento predefinito perché sarebbe più facile e conveniente.
David Foerster,

Va bene, ammettilo ... Ero più preoccupato di portare a termine il lavoro che di sapere cosa e esattamente come è fatto .. Scuse ..
CodeGeass,

Hm ... sto solo vedendo che la risposta accettata suggerisce lo stesso. Quindi potrei sbagliarmi a --force-remove-reinstreqnon essere necessario. Ma ciò significa anche che la tua risposta è (quasi) un duplicato di essa. La prossima volta sarai più fortunato.
David Foerster,
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.