ubuntu - 修复 nvidia-driver 问题后数据包管理器出错

标签 ubuntu nvidia ubuntu-20.04

所以上周我犯了一个愚蠢的错误,在我的 Ubuntu 20.04 上安装了错误的 Nvidia 驱动程序,基本上 GUI 坏了。但是,我想,我最终能够解决这个问题。
现在,每当我尝试使用数据包管理器(apt-get)时,我都会收到以下错误:
[这是在运行 'sudo apt-get upgrade' 之后]

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 libnvidia-ifr1-460 : Depends: libnvidia-gl-460 but it is not installed
 libnvidia-ifr1-460:i386 : Depends: libnvidia-gl-460:i386 but it is not installed
 nvidia-driver-460 : Depends: libnvidia-gl-460 (= 460.32.03-0ubuntu0.20.04.1) but it is not 
installed
                     Recommends: libnvidia-gl-460:i386 (= 460.32.03-0ubuntu0.20.04.1)
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a 
solution).
所以,我尝试了它的建议并运行了“sudo apt --fix-broken-install”。输出以下错误:
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  libnvidia-gl-460 libnvidia-gl-460:i386
The following NEW packages will be installed:
  libnvidia-gl-460 libnvidia-gl-460:i386
0 upgraded, 2 newly installed, 0 to remove and 8 not upgraded.
25 not fully installed or removed.
Need to get 0 B/99,7 MB of archives.
After this operation, 353 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 249076 files and directories currently installed.)
Preparing to unpack .../libnvidia-gl-460_460.32.03-0ubuntu0.20.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
-460'
  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-460_460.32.0
3-0ubuntu0.20.04.1_i386.deb (--unpack):
 new libnvidia-gl-460:i386 package pre-installation script subprocess returned e
rror exit status 2
Preparing to unpack .../libnvidia-gl-460_460.32.03-0ubuntu0.20.04.1_amd64.deb ..
.
diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1 to /usr/lib/x86_64-linux-gnu/l
ibGL.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-460'
  found 'diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1 to /usr/lib/x86_64-li
nux-gnu/libGL.so.1.distrib by nvidia-340'
dpkg: error processing archive /var/cache/apt/archives/libnvidia-gl-460_460.32.0
3-0ubuntu0.20.04.1_amd64.deb (--unpack):
 new libnvidia-gl-460:amd64 package pre-installation script subprocess returned 
error exit status 2
Errors were encountered while processing:
 /var/cache/apt/archives/libnvidia-gl-460_460.32.03-0ubuntu0.20.04.1_i386.deb
 /var/cache/apt/archives/libnvidia-gl-460_460.32.03-0ubuntu0.20.04.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
所以在我看来,那些旧的 nvidia-340 驱动程序仍然存在问题。有没有人遇到过这个或知道如何解决它?
如果您需要更多信息,请告诉我。
提前致谢!

最佳答案

嗨,你应该删除/usr/lib/i386-linux-gnu/libGL.so.1 的转移

sudo dpkg-divert --remove "/usr/lib/i386-linux-gnu/libGL.so.1"
sudo apt --fix-broken install
如果您在使用不同的库时遇到相同的错误,例如:libGL.so 和 libEGL.so
执行相同的命令:
sudo dpkg-divert --remove "/usr/lib/i386-linux-gnu/libGL.so"
sudo dpkg-divert --remove "/usr/lib/x86_64-linux-gnu/libEGL.so"
sudo apt --fix-broken install

关于ubuntu - 修复 nvidia-driver 问题后数据包管理器出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65697784/

相关文章:

linux - Xargs 不听标准输入

c++ - 为什么从 __global__ 函数中引用外部内存会搞砸一切?

linux - Kubernetes 在容器中隐式使用 Nvidia 文件

opencv - conda python 3.7 opencv 导入错误 libgnutls.so.30 : undefined symbol: mpn_add_1, 版本 HOGWEED_4

docker - 在 Windows 10 + WSL2 上运行 nvidia-docker

email - 如何通过 Digital Ocean 上的外部 SMTP 服务发送电子邮件?

shell - 从一个 Shell 脚本运行多个 Shell 脚本

linux - 在 Ubuntu 上为 CentOS 编译

cuda - : DRAM Throughput vs Global Memory Throughput有什么区别

mpi - 从 MPICH 切换到 OpenMPI