Arreglar paquete medio instalado


42

Recibo un error al usar 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)

No parece bloquear la instalación / actualización de otras aplicaciones. Creo que este problema surgió debido al apagado directo de mi PC mientras se actualizaba la aplicación.

¿Cómo puedo arreglar esto?


Respuestas:


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

Eso es solo una carrera en seco. No estoy seguro de qué eliminar libgfortran3llevará, pero ejecute eso y vea. Suponiendo que no va a engullir todo el sistema, ejecútelo nuevamente sin el --dry-runy luego podrá sudo apt-get install ...recuperar los paquetes que necesita.


44
Resuelto, gracias! Para el registro, lo ejecuté y decía dpkg: warning: package is in a very bad inconsistent state; you should reinstall it before attempting a removalque descargué el paquete manualmente desde packages.ubuntu.com y ejecuté sudo dpkg -i WHERE/THE/DOWNLOADED/PACKAGE/IS. Entonces todo se volvió bueno.
Bora M. Alper

1
En mi caso, después de seguir estas instrucciones, simplemente ejecutando 'apt-get install -f' reinstalé el paquete y también reparé varios otros con dependencias rotas debido a ello. Esto fue para el paquete libx11-data en debian 7.
bchurchill

Sin --dry-run, como dijiste, funcionó para mí. ¡Gracias!
forvas

70

Para el error del paquete medio instalado, --reinstall funcionó para mí:

sudo apt-get install --reinstall packagename 

1
Sí, pero una advertencia de que después de reinstalar packagename, apt-get procederá a configurar cualquier paquete medio configurado.
Cedric Knight

55
Esto es más seguro que la respuesta aceptada en mi humilde opinión.
Zanna

sudo apt-get install --reinstal ncurses-base y luego ejecuté la actualización sudo apt-get usando el usuario root (sudo -s), funcionó así ...
ArifMustafa

Excelente. solo esa solución resolvió mi problema
iWizard

Esto lo hizo por mí. php-pear me estaba dando dolor de cabeza. ¡Gracias!
pcarvalho

6
sudo apt install --reinstall packagename

Esto funciona como encanto. Resolvió un problema que había estado experimentando durante meses. Mi caso fue con el paquetelibmysqlcppconn7v5

Todo lo que hice fue correr sudo apt install --reinstall libmysqlcppconn7v5


3

Tengo el mismo problema de "paquete a medio instalar" con un paquete de kibana. Tuve el siguiente error:

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 alguien todavía se enfrenta a este tipo de problema, puede intentar esto:

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

Esto funciona para mi. Solo necesita reemplazar la palabra 'kibana' con el nombre del paquete medio instalado.


2

Si desea arreglar esto a través de la GUI, puede usar synaptic. Synaptic es una excelente herramienta de administración de paquetes que solía incluirse en versiones anteriores de ubuntu. Para instalarlo:

sudo apt-get install synaptic

haga clic en arreglar paquetes rotos.


synaptic no enumera el paquete en categoría rota :(
Barun

2

Esto debería solucionar su problema sin reinstalar el paquete.

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

Seguido por: sudo apt-get update


¿Por qué --force-remove-reinstreq? El administrador de paquetes no indica que se requiera una reinstalación. En general, una eliminación regular funciona bien para paquetes no configurados. -1
David Foerster

Es justo lo que hago cuando no sudo apt-get remove <packageestá disponible y no quiero volver a instalar ese paquete a medio instalar. Luego, lo uso --force-remove-reinstreqpara eliminar esos archivos basura ... PD: Está en Linux Mint ... Dudo si será ser diferente ya que Linux se basa en Ubuntu ..
CodeGeass

1
El administrador de paquetes funciona igual en todas las distribuciones basadas en Debian (eso es lo que dpkgsignifica después de todo), pero no debe usar --force-*"por si acaso". Los mensajes de error están allí por una razón y no deben ser tomados a la ligera por usuarios inexpertos, por lo que no debe sugerirles --force-*opciones innecesarias . De lo contrario, podríamos recomendar siempre usar --force-allo, mejor aún, eliminar las --force-*opciones por dpkgcompleto y hacer que sean el comportamiento predeterminado porque eso sería más fácil y más conveniente.
David Foerster

Está bien, admítelo ... Estaba más preocupado por hacer el trabajo que saber qué y cómo se hace exactamente ... Disculpas ...
CodeGeass

Hm ... solo estoy viendo que la respuesta aceptada sugiere lo mismo. Entonces podría estar equivocado acerca de --force-remove-reinstreqser innecesario. Pero eso también significa que su respuesta es (casi) un duplicado de la misma. Mejor suerte la próxima vez.
David Foerster
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.