Correction du paquet à moitié installé

42

Je reçois une erreur en utilisant sudo apt-get upgradeindiquant:

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)

Il ne semble pas bloquer l’installation / la mise à niveau d’autres applications. Je crois que ce problème est dû à l’arrêt direct de mon PC pendant la mise à niveau de l’application.

Comment puis-je réparer cela?

Barun
la source

Réponses:

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

C'est juste une piste sèche. Je ne suis pas sûr de ce que l'enlèvement libgfortran3prendra, mais lancez-le et voyez. En supposant que cela ne va pas engloutir tout le système, lancez-le à nouveau sans le --dry-runet vous pourrez alors sudo apt-get install ...récupérer les paquets dont vous avez besoin.

Oli
la source
4
Travaillé, merci! Pour mémoire, je l'ai exécuté et il a été dit dpkg: warning: package is in a very bad inconsistent state; you should reinstall it before attempting a removal, j'ai donc téléchargé le package manuellement à partir de packages.ubuntu.com et l' ai exécuté sudo dpkg -i WHERE/THE/DOWNLOADED/PACKAGE/IS. Ensuite, tout est devenu bon.
Bora M. Alper
1
Dans mon cas, après avoir suivi ces instructions, juste exécuter 'apt-get install -f' a réinstallé le paquet et en a également corrigé plusieurs autres avec des dépendances endommagées. C'était pour le paquetage libx11-data sur debian 7.
bchurchill le
Sans --dry-run, comme vous l'avez dit, cela a fonctionné pour moi. Merci!
Forvas
70

Pour l'erreur de paquet à moitié installé, --reinstall a fonctionné pour moi:

sudo apt-get install --reinstall packagename 
Eric Olson
la source
1
Oui, mais un avertissement qu'après avoir réinstallé packagename, apt-get procédera ensuite à la configuration de packages à moitié configurés.
Cedric Knight
5
c'est plus sûr que la réponse acceptée à mon humble avis.
Zanna
Sudo apt-get install --reinstal ncurses-base et plus tard , je courais le sudo apt-get update en utilisant l'utilisateur root (sudo -s), il a travaillé comme ça ...
ArifMustafa
génial. seule cette solution a résolu mon problème
iWizard
cela l'a fait pour moi. php-pear me donnait mal à la tête. Merci!
pcarvalho
6
sudo apt install --reinstall packagename

Cela fonctionne comme un charme. Cela a résolu un problème que je rencontrais depuis des mois. Mon cas était avec le paquetlibmysqlcppconn7v5

Tout ce que j'ai fait a été couru sudo apt install --reinstall libmysqlcppconn7v5

Siech Ben
la source
3

J'ai eu le même problème de "paquet à moitié installé" avec un paquet kibana. J'ai eu l'erreur suivante:

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)

Si quelqu'un est toujours confronté à ce genre de problème, vous pouvez essayer ceci:

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

Cela fonctionne pour moi. Il vous suffit de remplacer le mot "kibana" par le nom de votre paquet à moitié installé.

Anower Perves
la source
2

Si vous souhaitez résoudre ce problème via l'interface graphique, vous pouvez utiliser synaptic. Synaptic est un excellent outil de gestion de paquets qui était inclus dans les anciennes versions d’ubuntu. Pour l'installer:

sudo apt-get install synaptic

cliquez sur réparer les paquets cassés.

Mijo
la source
synaptic ne liste pas le paquet dans la catégorie cassée :(
Barun
2

Cela devrait résoudre votre problème sans réinstaller le paquet.

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

Suivi par: sudo apt-get update

Code Geass
la source
Pourquoi --force-remove-reinstreq? Le gestionnaire de packages n'indique pas qu'une réinstallation est requise. Généralement, une suppression régulière fonctionne très bien pour les paquets non configurés. -1
David Foerster
C’est ce que je fais quand je n’ai sudo apt-get remove <packageplus d’option et que je ne veux pas réinstaller ce paquet à moitié installé. Ensuite, j’utilise --force-remove-reinstreqpour supprimer ces jonques .. PS: C’est sous Linux Mint .. Je ne sais pas si ça va soyez différent car Linux est basé sur Ubuntu ..
CodeGeass 13/09/2016
1
Le gestionnaire de paquets fonctionne de la même manière dans toutes les distributions basées sur Debian (c’est ce qu’il faut dire dpkgaprès tout), mais vous ne devriez pas utiliser --force-*"au cas où". Les messages d'erreur sont là pour une raison et ne doivent pas être pris à la légère par des utilisateurs inexpérimentés. C'est pourquoi vous ne devriez pas leur suggérer d' --force-*options inutiles . Sinon, nous pourrions simplement recommander de toujours utiliser --force-allou, mieux encore, de supprimer complètement les --force-*options dpkget d’avoir le comportement par défaut, car ce serait plus facile et plus pratique.
David Foerster le
D'accord, admettez-le ... J'étais plus soucieux de faire le travail que de savoir quoi et comment exactement il est fait .. Excuses ..
CodeGeass 13/09/16
Hm… je vois juste que la réponse acceptée suggère la même chose. Donc, je peux me tromper d' --force-remove-reinstreqêtre inutile. Mais cela signifie également que votre réponse en est (presque) une copie. Plus de chance la prochaine fois.
David Foerster le