Napraw w połowie zainstalowany pakiet


42

Podczas używania sudo apt-get upgradestwierdzenia pojawia się błąd :

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)

Nie wydaje się, aby blokowało instalację / aktualizację innych aplikacji. Wierzę, że ten problem powstał z powodu bezpośredniego wyłączenia komputera podczas aktualizacji aplikacji.

Jak mogę to naprawić?


Odpowiedzi:


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

To tylko sucha próba. Nie jestem pewien, co usunie libgfortran3to zabranie, ale uruchom to i zobacz. Zakładając, że nie zajmie to całego systemu, uruchom go ponownie bez, --dry-runa następnie możesz sudo apt-get install ...odzyskać potrzebne pakiety.


4
Wypracowałem, dzięki! Dla przypomnienia uruchomiłem go i powiedziałem, dpkg: warning: package is in a very bad inconsistent state; you should reinstall it before attempting a removalwięc pobrałem pakiet ręcznie z packages.ubuntu.com i uruchomiłem sudo dpkg -i WHERE/THE/DOWNLOADED/PACKAGE/IS. Potem wszystko stało się dobre.
Bora M. Alper

1
W moim przypadku, po wykonaniu tych instrukcji, wystarczy uruchomić komendę „apt-get install -f”, aby ponownie zainstalować pakiet, a także naprawiłem kilka innych z powodu przerwanych zależności. To było dla pakietu libx11-data na
Debianie

Bez --dry-run, jak powiedziałeś, zadziałało to dla mnie. Dziękuję Ci!
forvas

69

W przypadku błędu połowy zainstalowanego pakietu, --reinstall działał dla mnie:

sudo apt-get install --reinstall packagename 

1
Tak, ale ostrzeżenie, że po ponownym zainstalowaniu nazwy pakietu apt-get przystąpi do konfigurowania pakietów w połowie skonfigurowanych.
Cedric Knight

5
jest to bezpieczniejsze niż przyjęta odpowiedź imho.
Zanna

sudo apt-get install --reinstal ncurses-base, a później uruchomiłem aktualizację sudo apt-get przy użyciu użytkownika root (sudo -s), działało to tak ...
ArifMustafa

świetny. tylko to rozwiązanie rozwiązało mój problem
iWizard

to mi zrobiło. php-gruszka sprawiała mi ból głowy. dzięki!
pcarvalho

6
sudo apt install --reinstall packagename

To działa jak urok. Rozwiązało to problem, którego doświadczałem od miesięcy. Moja sprawa była z paczkąlibmysqlcppconn7v5

Wszystko, co zrobiłem, to uciekłem sudo apt install --reinstall libmysqlcppconn7v5


2

Jeśli chcesz to naprawić za pomocą GUI, możesz użyć synaptic. Synaptic to doskonałe narzędzie do zarządzania pakietami, które występowało w starszych wersjach Ubuntu. Aby zainstalować:

sudo apt-get install synaptic

kliknij napraw uszkodzone pakiety.


synaptic nie wyświetla pakietu w zepsutej kategorii :(
Barun

2

Mam taki sam problem z „pakietem częściowo zainstalowanym” z pakietem kibana. Wystąpił następujący błąd:

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)

Jeśli ktoś nadal napotyka tego rodzaju problemy, możesz spróbować:

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

To działa dla mnie. Wystarczy zastąpić słowo „kibana” nazwą na wpół zainstalowanego pakietu.


2

To powinno rozwiązać problem bez ponownej instalacji pakietu.

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

Śledzony przez: sudo apt-get update


Dlaczego --force-remove-reinstreq? Menedżer pakietów nie stwierdza, że ​​wymagana jest ponowna instalacja. Ogólnie rzecz biorąc, regularne usuwanie działa dobrze w przypadku nieskonfigurowanych pakietów. -1
David Foerster

Właśnie to robię, gdy nie sudo apt-get remove <packagema opcji i nie chcę ponownie instalować tego częściowo zainstalowanego pakietu. Następnie używam --force-remove-reinstreqdo usuwania tych śmieci. PS: To jest na Linux Mint .. Wątpię, czy to zrobi być inny, ponieważ Linux jest oparty na Ubuntu ..
CodeGeass,

1
Menedżer pakietów działa tak samo we wszystkich dystrybucjach opartych na Debianie (w końcu to właśnie dpkgoznacza), ale nie powinieneś używać --force-*„na wszelki wypadek”. Komunikaty o błędach istnieją z jakiegoś powodu i nie powinny być lekceważone przez niedoświadczonych użytkowników, dlatego nie powinieneś sugerować im niepotrzebnych --force-*opcji. W przeciwnym razie moglibyśmy po prostu zalecić, aby zawsze używać --force-alllub, co jeszcze lepsze, całkowicie usunąć --force-*opcje dpkgi ustawić je jako domyślne zachowanie, ponieważ byłoby to łatwiejsze i wygodniejsze.
David Foerster,


Hm… Widzę tylko, że zaakceptowana odpowiedź sugeruje to samo. Mogę się mylić, że jestem --force-remove-reinstreqniepotrzebny. Ale oznacza to również, że twoja odpowiedź jest (prawie) jej duplikatem. Więcej szczęścia następnym razem.
David Foerster,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.