Fix halb installiertes Paket

42

Ich erhalte eine Fehlermeldung bei der Verwendung von sudo apt-get upgrade:

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)

Es scheint die Installation / Aktualisierung anderer Anwendungen nicht zu blockieren. Ich glaube, dieses Problem ist auf das direkte Herunterfahren meines PCs während des Upgrades der Anwendung zurückzuführen.

Wie kann ich das beheben?

Barun
quelle

Antworten:

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

Das ist nur ein Trockenlauf. Ich bin mir nicht sicher, was das Entfernen mit sich libgfortran3bringt, aber starte das und schau. Angenommen, es wird nicht das gesamte System verschlingen, führen Sie es erneut ohne das aus, --dry-runund Sie können dann sudo apt-get install ...die Pakete, die Sie benötigen, zurückgeben.

Oli
quelle
4
Hat geklappt, danke! Für die Aufzeichnung, ich habe es ausgeführt und es heißt dpkg: warning: package is in a very bad inconsistent state; you should reinstall it before attempting a removal, ich habe das Paket manuell von packages.ubuntu.com heruntergeladen und ausgeführt sudo dpkg -i WHERE/THE/DOWNLOADED/PACKAGE/IS. Dann wurde alles gut.
Bora M. Alper
1
In meinem Fall wurde das Paket nach dem Befolgen dieser Anweisungen durch einfaches Ausführen von 'apt-get install -f' neu installiert und mehrere andere Probleme mit beschädigten Abhängigkeiten behoben. Dies war für das libx11-Datenpaket unter Debian 7.
bchurchill
Ohne --dry-run, wie Sie sagten, hat es bei mir geklappt. Danke!
Forvas
69

Für den halb installierten Paketfehler hat --reinstall bei mir funktioniert:

sudo apt-get install --reinstall packagename 
Eric Olson
quelle
1
Ja, aber eine Warnung, dass apt-get nach der Neuinstallation von Paketname alle halbkonfigurierten Pakete konfiguriert.
Cedric Knight
5
Dies ist sicherer als die akzeptierte Antwort imho.
Zanna
sudo apt-get install --reinstal ncurses-base und später habe ich das sudo apt-get update unter Verwendung des root-Benutzers (sudo -s) ausgeführt, es hat einfach so funktioniert ...
ArifMustafa
groß. Nur diese Lösung löste mein Problem
iWizard
das hat es für mich getan. PHP-Birne gab mir Kopfschmerzen. Vielen Dank!
pcarvalho
6
sudo apt install --reinstall packagename

Das funktioniert wie Charme. Es löste ein Problem, das ich seit Monaten hatte. Mein Fall war mit dem Paketlibmysqlcppconn7v5

Ich bin nur weggelaufen sudo apt install --reinstall libmysqlcppconn7v5

Siech Ben
quelle
2

Wenn Sie dies über die grafische Benutzeroberfläche beheben möchten, können Sie synaptic verwenden. Synaptic ist ein hervorragendes Paketverwaltungstool, das früher in älteren Ubuntu-Versionen enthalten war. So installieren Sie es:

sudo apt-get install synaptic

Klicken Sie auf Fix broken packages.

Mijo
quelle
synaptic listet das Paket nicht in defekter Kategorie auf :(
Barun
2

Ich habe das gleiche Problem mit einem "halb installierten Paket" mit einem Paket kibana. Ich habe folgende Fehlermeldung erhalten:

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)

Wenn noch jemand mit solchen Problemen konfrontiert ist, können Sie Folgendes versuchen:

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

Das funktioniert bei mir. Sie müssen nur das Wort "kibana" durch Ihren halb installierten Paketnamen ersetzen.

Anower Perves
quelle
2

Dies sollte Ihr Problem beheben, ohne das Paket erneut zu installieren.

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

Gefolgt von: sudo apt-get update

CodeGeass
quelle
Warum --force-remove-reinstreq? Der Paketmanager gibt nicht an, dass eine Neuinstallation erforderlich ist. Im Allgemeinen funktioniert eine regelmäßige Entfernung für nicht konfigurierte Pakete einwandfrei. -1
David Foerster
Es ist nur das, was ich mache, wenn sudo apt-get remove <packagees keine Option gibt und ich das halb installierte Paket nicht erneut installieren möchte. Dann --force-remove-reinstreqentferne ich diese Junks. PS: Es läuft unter Linux Mint
Seien Sie
1
Der Paketmanager funktioniert in allen Debian-basierten Distributionen gleich (das ist dpkgimmerhin das, wofür steht), aber Sie sollten nicht --force-*"nur für den Fall" verwenden. Die Fehlermeldungen sind nicht ohne Grund vorhanden und sollten von unerfahrenen Benutzern nicht leicht genommen werden, weshalb Sie ihnen keine unnötigen --force-*Optionen vorschlagen sollten. Andernfalls könnten wir nur empfehlen --force-all, die --force-*Optionen immer zu verwenden oder, noch besser, ganz zu entfernen dpkgund sie als Standardverhalten festzulegen, da dies einfacher und bequemer wäre.
David Foerster
Okay, Gib es zu ... ich wurde mehr Sorgen um den Job als getan bekommen, zu wissen , was und wie genau es gemacht wird .. Apologies ..
CodeGeass
Hm ... ich sehe nur, dass die akzeptierte Antwort dasselbe nahelegt. Ich könnte mich also irren --force-remove-reinstreq, unnötig zu sein. Das bedeutet aber auch, dass Ihre Antwort (fast) ein Duplikat davon ist. Viel Glück beim nächsten Mal.
David Foerster