¿Cómo solucionar este problema de apt en ubuntu 18.04 LTS?

¿Cómo solucionar este problema de apt en ubuntu 18.04 LTS?

Mensaje de error de actualización del sistema: el sistema de paquetes está roto Compruebe si está utilizando repositorios de terceros. Si es así, desactívelos, ya que son una fuente común de problemas. Además, ejecute el siguiente comando en una Terminal: apt-get install -f cuando lo intento, sudo apt-get istall -faparece un mensaje de error:

(Reading database ... 172407 files and directories currently installed.)
Preparing to unpack .../libnvidia-gl-390_390.59-0ubuntu0~gpu18.04.1_i386.deb ...
diversion of /usr/lib/i386-linux-gnu/libGL.so.1 to /usr/lib/i386-linux-gnu/libGL.so.1.distrib by nvidia-340
dpkg-divert: error: mismatch on package
  when removing 'diversion of /usr/lib/i386-linux-gnu/libGL.so.1 by libnvidia-gl-390'
  found 'diversion of /usr/lib/i386-linux-gnu/libGL.so.1 to /usr/lib/i386-linux-gnu/libGL.so.1.distrib by nvidia-340'
dpkg: error processing archive /var/cache/apt/archives/libnvidia-gl-390_390.59-0ubuntu0~gpu18.04.1_i386.deb (--unpack):
 new libnvidia-gl-390:i386 package pre-installation script subprocess returned error exit status 2
Preparing to unpack .../libnvidia-gl-390_390.59-0ubuntu0~gpu18.04.1_amd64.deb ...
diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1 to /usr/lib/x86_64-linux-gnu/libGL.so.1.distrib by nvidia-340
dpkg-divert: error: mismatch on package
  when removing 'diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1 by libnvidia-gl-390'
  found 'diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1 to /usr/lib/x86_64-linux-gnu/libGL.so.1.distrib by nvidia-340'
dpkg: error processing archive /var/cache/apt/archives/libnvidia-gl-390_390.59-0ubuntu0~gpu18.04.1_amd64.deb (--unpack):
 new libnvidia-gl-390:amd64 package pre-installation script subprocess returned error exit status 2
Errors were encountered while processing:
 /var/cache/apt/archives/libnvidia-gl-390_390.59-0ubuntu0~gpu18.04.1_i386.deb
 /var/cache/apt/archives/libnvidia-gl-390_390.59-0ubuntu0~gpu18.04.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Cómo puedo arreglar esto ?

Respuesta1

Primero elimine el .deb usando

sudo rm /var/cache/apt/archives/libnvidia-gl-390_390.59-0ubuntu0~gpu18.04.1_i386.deb

sudo rm /var/cache/apt/archives/libnvidia-gl-390_390.59-0ubuntu0~gpu18.04.1_amd64.deb

luego borre todos los archivos descargados en su caché.

sudo apt-get clean
sudo apt-get autoremove && sudo apt-get autoclean
sudo apt-get install -f
sudo apt-get update

Finalmente intente instalar una copia nueva de su aplicación usando sudo apt-get install

Respuesta2

La parte relevante del mensaje de error es esta:

when removing 'diversion of /usr/lib/i386-linux-gnu/libGL.so.1 by libnvidia-gl-390'
  found 'diversion of /usr/lib/i386-linux-gnu/libGL.so.1 to /usr/lib/i386-linux-gnu/libGL.so.1.distrib by nvidia-340'

Las "desviaciones" son cosa de dpkg. El paquete Nvidia-340 debe haber creado estos desvíos y nunca los eliminó. Para comprobarlo, haga

dpkg-divert --list nvidia-340

y enumerará cada desvío especificado.

diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1 to /usr/lib/x86_64-linux-gnu/libGL.so.1.distrib by nvidia-340
...

Puede eliminar estos desvíos pasando el nombre del archivo desviado a (necesita root)

dpkg-divert --remove /usr/lib/x86_64-linux-gnu/libGL.so.1

Una vez que haya limpiado los desvíos antiguos, la instalación de los paquetes de controladores Nvidia más nuevos aptdebería realizarse correctamente.

información relacionada