it-swarm-es.com

Cómo reparar actualizaciones sinápticas rotas: "El paquete está en un estado muy malo e inconsistente"

Tengo un Dell Mini9 con Ubuntu 8.10. Un día tuve la brillante idea de ver si podía instalar una pila LAMP. Tuve problemas para instalar MySQL 5.0. No recuerdo el error, pero desde entonces todos los intentos de ejecutar update-manager, synaptic o apt-get fallan con un error sobre mysql-server-5.0: "El paquete está en un estado muy malo e inconsistente".

He intentado apt-get remove mysql-server-5.0 y también install pero sin suerte. Ambos fallan con el mismo error a continuación. ¿Cómo puedo arreglar esto?

 $ Sudo apt-get remove mysql-server-5.0 
 Leyendo listas de paquetes ... Hecho 
 Construyendo árbol de dependencias 
 Leyendo información de estado ... Hecho 
 Los siguientes paquetes se instalaron automáticamente y ya no son necesarios: 
 Dhcdbd libisc32 
 Use 'apt-get autoremove' para eliminarlos. 
 Los siguientes paquetes serán ELIMINADOS: 
 mysql-server-5.0 
 0 actualizado, 0 recién instalado, 1 para eliminar y 164 no actualizado. 
 1 no está completamente instalado o eliminado. 
 Después de esta operación , Se liberarán 85,4 MB de espacio en disco. 
 ¿Desea continuar [S/n]? 
 dpkg: error al procesar mysql-server-5.0 (--remove): 
 El paquete está en muy mal estado inconsistente - debería 
 reinstalarlo antes de intentar una desinstalación. 
 ____.] Se encontraron errores durante el procesamiento: 
 Mysql-server-5.0 
 E: El subproceso/usr/bin/dpkg devolvió un código de error (1) 
15
spoulson

Ninguna de las otras respuestas me funcionó en Maverick.

En mi caso, encontré que esto funcionó:

Sudo rm /var/lib/dpkg/info/flashplugin-nonfree.prerm

Sudo dpkg --remove --force-remove-reinstreq flashplugin-nonfree

(reemplazando "flashplugin-nonfree" con el nombre del paquete roto y reemplazando "prerm" con el tipo de secuencia de comandos que falló; en mi caso, fue "postrm", la secuencia de comandos posterior a la eliminación).

¡¡Y dicen que Ubuntu es fácil de usar !! gruñir gruñir

19
Robin Green

Tuve exactamente el mismo problema con una instalación de mysql. Necesita purgar el paquete. La simple eliminación de un paquete no elimina los archivos de configuración que lo acompañan.

Además, me referiré a mysql-server-5., pero me doy cuenta de que hay un paquete contenedor mysql-server que siempre apunta a la última versión. es decir, si solicita instalar mysql-server, apt-get debería decirle que depende de mysql -server-5. e instalar ambos. Si tiene el paquete mysql-server en el sistema, debe asegurarse de que se haya ido también antes de intentar reinstalar.

  • Asegúrese de que el servidor mysql (mysqld) no se esté ejecutando. Si es así, bájalo:

    Sudo /etc/init.d/mysqld stop

  • Compruebe si algún paquete depende de mysql-server-5.0:

    Sudo apt-cache rdepends mysql-server-5.0

    Si lo hacen, deberá usar la opción - force para desinstalar.

  • Purgar el paquete (incluir la opción - forzar , dependiendo del # 2)

    Sudo apt-get --purge remove --force mysql-server-5.0

  • Asegúrese de que los archivos del instalador también se borren ejecutando

    Sudo apt-get autoclean
    Sudo apt-get autoremove

  • Instale el paquete del servidor nuevamente

    Sudo apt-get install mysql-server-5.0

Con suerte, esto debería solucionar su problema. Sin embargo, es posible que el paquete aún esté roto, si realizó algún cambio en los archivos que provienen del paquete mysql-common.

mysql-common es el paquete base utilizado por los componentes del cliente y del servidor. Si las cosas aún no funcionan, intente reinstalar este paquete. Definitivamente habrá paquetes que dependan de esto; verifique usando el # 2 anterior. Purgar mysql-server antes de reinstalar mysql-common. Además, no olvide reinstalar mysql-common, de lo contrario su sistema estará muy dañado.

6
user4358

Es posible que desee probar aptitude, que tiene un mejor manejo de las dependencias:

Sudo aptitude remove mysql-server-5.0
1
innaM

Tratar

Sudo dpkg -i reconfigure mysql-server-5.0
Sudo apt-get remove --force mysql-server-5.0

Si es otro paquete que está roto, intente apt-get remove --force ese paquete también.

0
John Oxley

Tuve este problema con el cartero. /Etc/init.d/mailman eliminado con

rm /etc/init.d/mailman

arreglado :)

0
Stéphan Champagne

El error dpkg que tiene allí sugiere que el problema ocurre cuando dpkg está intentando eliminar el paquete. (Al final del día, apt-get y Synaptic y similares entregan el trabajo real a dpkg.)

¿Ha intentado hacer exactamente lo que dice el mensaje y volver a - instalar primero?

apt-get install --reinstall mysql-server-5.0

Por tonto que parezca, si dpkg se está ahogando durante el proceso de eliminación (porque algún archivo que se supone que debe eliminar se ha perdido en el ínterin), reinstale y luego la eliminación a veces puede ayudar. Asegúrese de que mysql no se esté ejecutando antes de intentar instalarlo o eliminarlo, como sugiere nagul .

0
Telemachus

dpkg -r --force-remove-reinstreq <package> elimina un paquete sin comprobar si requiere reinstalación.

Después de eso, debería poder reinstalar el paquete con su administrador de paquetes preferido.

0
Jaime Soriano