domingo, 24 de octubre de 2010

Reparar paquetes rotos o mal instalados en Ubuntu

Si tenemos problemas con la instalación de algún paquete que no termina de instalarse correctamente, lo primero que deberíamos intentar es usar Synaptic para solucionarlo desde el entorno gráfico, puede que sea un paquete Roto que podemos eliminar y si esto no funciona solo nos queda ejecutar algunas ordenes en la terminal para reparar los problemas de dependencias. Explico las ordenes a ejecutar en la terminal para reparar estos paquetes rotos o mal instalados:

Primero lo mas simple, estas son las ordenes que utiliza synaptic para reparar en modo gráfico, sino conseguiste nada, yo pasaría estas ordenes por ver los que detalles te da al lanzar los mismos en la terminal o shell.
sudo dpkg --configure -a
sudo apt-get -f install

Podemos intentar también forzar la instalacion del paquete con el flag force-overwrite, por ejemplo:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libcupsys2-dev_1.1.23-3_i386.deb

Podemos limpiar la cache de apt de todos aquellos paquetes, que ya no pueden descargarse:

sudo apt-get autoclean

Intentar borrar el paquete si sabemos el nombre concreto con:

sudo apt-get autoremove paquete
o,

sudo apt-get --purge remove paquete

Y si todo ello no resulta, ya solo nos queda probar la eliminacion del paquete seriamente dañado con:

1) Forzamos
sudo dpkg --purge --force-remove-reinstreq
y si aun asi, no funciona, entonces probaríamos:

a.- Ejecutamos 
dpkg --listfiles
y buscamos cada fichero que se instalo, de los que dan problemas, para a continuación buscarlos y eliminarlos.

b.- Editar el archivo:
sudo nano /var/lib/dpkg/status
Eliminar la sección del paquete seriamente dañado. Hacer una copia de seguridad antes de editar el archivo:
cp  /directorio/archivo  /home/tu_usuario/copias_archivos
c.- Editar el archivo:
sudo nano /var/lib/dpkg/available
Eliminar la sección del paquete seriamente dañado. Hacer una copia de seguridad antes de editar el archivo.

Recordad que, usar diferentes fuentes de repositorios a veces, puede causarnos problemas de este tipo y que lo mas recomendable es siempre usar fuentes oficiales para evitarnos estos problemas.

Extraido de | Reparar la base de datos de apt-get

8 comentarios:

Luis dijo...

José:

Excelente Blog ¿conoces algún procedimiento para dar mantenimiento a las dependencias?
algún comando que detecte dependencias rotas o restos de aplicaciones que ya no están en uso ?

Saludos desde Chile

Luis

arriero dijo...

TE aconsejo que abras una terminal y leas un poco el man apt-get o man aptitude es el lugar donde encontraras todas las ordenes referentes a la utilización de estas ordenes.

Sandra dijo...

Muchisimas gracias exelente blog ,muy buena la informacion

JEHIEL Marin Marin dijo...

Hola necesito que alguien me pueda colaborar si son tan amables porque mi sistema operativo me indica que tengo 4 paquetes rotos estuve viendo synaptic package pero la verdad no tengo idea de como eliminar o restaurar los elementos rotos del sistema me pueden informar al correo jezisay1725@hotmail.com les agradecería con el alma. Gracias

arriero dijo...

utiliza el editor para abrir el archivo que te especifica, eso tendrás que hacerlo como sudo en una terminal llamas al editor una vez estés en el directorio y utilizas las opciones del editor que te marca las líneas buscas la 45 y puedes hacer varias cosas o la borras, la vuelves invisible al sistema colocando esto "#" delante de la linea o buscas y modificas el error.Saludos.

Anónimo dijo...

Excelente, muchas gracias por los concejos. Me ayudó bastante. Tenía serios problemas para borrar paquetes que no se instalaron por falta de espacio y bloqueó el equipo. Solo podía acceder a la terminal de consola.
Muy buen blog. Felicidades.

Anónimo dijo...

Te felicito por tu exelente Blog, a me salen 4 archivos rotos y no puedo actualizar el sistema, al usar:sudo dpkg --configure -a, me da lo siguien
module-init-tools
libc6-dev
libc6-i386
linux-image-3.2.0-70-generic
linux-image-generic
linux-generic
Después de esto no se que hacer, uso maya 13 lts de 64bist, de antemano muchas gracias...

Unknown dijo...

La Solucíon Forzar Me Fucionó