Cómo eliminar paquetes rotos en ubuntu


38

No puedo eliminar el paquete roto. Use el siguiente comando: sudo apt-get -f install pero obtengo la siguiente respuesta:

Preparing to unpack .../nodejs_0.10.28-1chl1~trusty1_amd64.deb ...
Unpacking nodejs (0.10.28-1chl1~trusty1) over (0.10.25~dfsg2-2ubuntu1) ...
dpkg: error processing archive /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb (--unpack):
 trying to overwrite '/usr/share/man/man1/node.1.gz', which is also in package nodejs-legacy 0.10.25~dfsg2-2ubuntu1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Processing triggers for man-db (2.6.7.1-1) ...
Errors were encountered while processing:
 /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Intenté varios comandos como

 2015  sudo apt-get clean
 2020  sudo dpkg --configure -a
 2023  sudo apt-get autoremove
 2034  sudo apt-get upgrade && sudo apt-get -f install

Pero no obtuve ningún resultado. No puedo instalar synaptic. ¿Alguna idea de cómo puedo eliminar el paquete roto?


Aquí pocas respuestas han sugerido --force-remove-reinstreqy --force-overwrite. Tenga en cuenta que debe usar estos dos (especialmente el primero) solo si es un experto en Linux, ya que puede dañar su sistema por completo.
— g_p

Respuestas:


55

ejecuta este comando para eliminar paquetes rotos en ubuntu.

sudo dpkg --remove --force-remove-reinstreq package_name 

después de eliminar el paquete, actualice su sistema con el comando

sudo apt-get update

reinicie el sistema después de una actualización exitosa.


55
Este comando siempre debe evitarse ya que rompe su sistema más de lo que repara
— rancho

2
@rancho depende de qué paquete sea.
— Philip

bonito, la forma en que Gus package_name siempre escritura, sin embargo, ver una lista de 900 líneas en un formato loca, por ejemplo: Broken libopencv-highgui2.4v5:amd64 Conflicts on libopencv-highgui2.4 [ amd64 ] < 2.4.8+dfsg1-2ubuntu1 > ( libs ). esperar en LTS realmente me ha hecho este truco loco.
— nyxee

@rancho "te rompe el sistema más de lo que repara" ¿puedes explicarlo? man dpkgno ayuda mucho
— Stéphane Gourichon

Esto fue lo único que funcionó para mí. Rompí mi mysql al actualizar el paquete. Ahora no podía purgar ni reinstalar. Entonces esto me salvó la vida.
— Ankit Singhaniya

11

Abra su terminal y use el siguiente comando

sudo dpkg --purge nodejs-legacy
sudo apt-get install -f

debería resolver tu problema.


11

He encontrado que:

sudo dpkg --remove --force-remove-reinstreq <packagename>

Funciona mejor. Si le da un error de que no eliminará un paquete porque depende de otro paquete, elimine también ese otro paquete. Tendrá que repetir este paso varias veces y luego reinstalar los paquetes eliminados.

Esta force-remove-reinstreqes LA "opción nuclear" de eliminar un paquete. Solo falla si hay otro paquete dependiendo del que está a punto de eliminar. De nuevo, en ese caso, también eliminó el paquete dependiente.


LA opción nuclear funcionó donde las purgas, limpie, reinstala, elimina automáticamente, a través de ambos dpkgy apt-getfalló. Gracias.
— LAFK dice Reinstate a Monica el

Esta es la mejor solución si solo quieres bombardear todo y comenzar de nuevo. ¡Me ahorró mucho tiempo! (También usé --purge after --remove)
— andersevenrud

Por favor, ¿puede dar algunas sugerencias sobre cómo llenar eso package_namecuando tenemos más de 1000 líneas (algunas duplicadas) en los archivos de registro de apt ...
— nyxee

4

Esto solucionó mi problema:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb

Entonces, márquelo como la respuesta correcta.
— jarno

Funciona perfectamente.
— Shubham Patel

3

Abra su terminal y pegue estas líneas tras líneas

sudo rm -rf  /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb
sudo apt-get autoclean
sudo apt-get update
sudo apt-get upgrade

vuelva a intentarlo


2

El mismo error se repite si lo hacemos apt-get cleanya apt-get -f installmenos que eliminemos los datos basura del /var/lib/dpkg/statusarchivo en Ubuntu.

Supongamos que necesitamos eliminar el paquete roto apache. Inicialmente tenemos que abrir el archivo de estado y buscar el paquete apache. Elimine la descripción completa del paquete y guarde el archivo de estado. Luego intente usar apt-get -f instally apt-get clean.


2

nada de lo anterior funcionó para mí. finalmente edité el archivo / var / lib / dpkg / status y eliminé los paquetes de allí.

Aunque no recomendaría hacer esto, solo si algo falla ...


Esto parece ser lo único que funcionó para mí. Incluso la llamada 'opción nuclear' de --force-remove-reinstreq no pudo eliminar el paquete ofensivo. Gracias Señor.
— alex

1

Nada de lo anterior funcionó para mí

He utilizado sudo aptitude.

Encontró el error de inmediato y ofreció opciones. Lo seleccionas y lo arregla.


También me lo arregló en Debian: esta era la única solución que funcionaba para mí. ¡Ninguno de los comentarios anteriores funcionó para mí! ¡Gracias!
— Hirbod

0

Aquí hay uno:

actualice su lista de paquetes de esta manera

 sudo apt-get update

luego limpie cualquier paquete parcial

 sudo apt-get autoclean

Ahora limpia el caché de apt

 sudo apt-get clean

Ahora elimine cualquier dependencia innecesaria

 sudo apt-get autoremove

desde el comando anterior, puede identificar cualquier paquete roto y eliminarlo de manera forzada de esta manera

 sudo dpkg --remove --force-remove-reinstreq package_name

Finalmente limpie cualquier otro paquete con dependencias

 sudo apt-get -f install 

Dime como te va.


Creo que este comando es incorrecto: `sudo dpkg --remove -force --force-remove-reinstreq package_name.
— Juan Simón

Ji ... ¿cuál es el camino correcto?
— Olu Smith

0
  1. consulta todos los paquetes que están instalados hoy o ayer awk -v foo=$(date '+%Y-%m-%d') -v bar=$(date -d "yesterday" '+%Y-%m-%d') '($1==foo || $1==bar) && $3~/^install$/ { print $4 }' /var/log/dpkg.log
  2. wine-qqintl: i386 causó el problema, así que elimino el paquete sudo dpkg -r wine-qqintl:i386

  3. hecho.


1
ok, podemos obtener paquetes así instalados recientemente, pero esto no responde a la pregunta que pregunta cómo eliminar paquetes rotos
— Zanna

0

Tuve un problema con el paquete kodi roto. Abrí el administrador de paquetes sináptico y usé el filtro "roto" para localizar el paquete y lo marqué para eliminarlo por completo. Funcionó como un campeón.

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.