尝试卸载 nvidia-390 后依赖关系损坏

尝试卸载 nvidia-390 后依赖关系损坏

我尝试卸载nvidia-390驱动程序,但失败了,现在我遇到了未满足的依赖项。当我尝试卸载时,sudo apt --fix-broken install我看到的是:

The following additional packages will be installed:
libnvidia-gl-390 libnvidia-gl-390:i386
The following NEW packages will be installed:
libnvidia-gl-390 libnvidia-gl-390:i386
0 upgraded, 2 newly installed, 0 to remove and 15 not upgraded.
2 not fully installed or removed.
Need to get 29.1 MB of archives.
After this operation, 147 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.linux.duke.edu/ubuntu bionic/restricted i386 
libnvidia-gl-390 i386 390.48-0ubuntu3 [14.9 MB]
Get:2 http://archive.linux.duke.edu/ubuntu bionic/restricted amd64 
libnvidia-gl-390 amd64 390.48-0ubuntu3 [14.3 MB]
Fetched 29.1 MB in 16s (1,771 kB/s)                                            
(Reading database ... 146918 files and directories currently installed.)
Preparing to unpack .../libnvidia-gl-390_390.48-0ubuntu3_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.48-0ubuntu3_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.48-0ubuntu3_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.48-0ubuntu3_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.48-0ubuntu3_i386.deb
/var/cache/apt/archives/libnvidia-gl-390_390.48-0ubuntu3_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

$ sudo apt-get remove nvidia-390
Package 'nvidia-390' is not installed, so not removed
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 libnvidia-ifr1-390 : Depends: libnvidia-gl-390 but it is not going to be installed
 libnvidia-ifr1-390:i386 : Depends: libnvidia-gl-390:i386 but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

发生了什么事?

答案1

我通过首先运行以下命令解决了类似的依赖关系中断问题:

sudo apt remove nvidia-*

这不起作用,但在失败之前,它给了我一份将要删除的所有软件包的列表。我将其与 dpkg 结合使用:

sudo dpkg -r xxx

用之前列出的名称替换 xxx。一些软件包出现错误,因为它们实际上并未安装,但其他软件包已被删除。然后我做了:

sudo apt install
sudo apt autoremove

一切又恢复正常了。

相关内容