ubuntu 18.04 "nvidia-340 导致 /usr/lib/x86_64-linux-gnu/libGL.so.1 转移到 /usr/lib/x86_64-linux-gnu/libGL.so.1.distrib"

$ sudo apt-get install cuda
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
cuda 已经是最新版 (10.1.243-1)。
您也许需要运行“apt --fix-broken install”来修正上面的错误。
下列软件包有未满足的依赖关系:
cuda-drivers : 依赖: libnvidia-gl-418 (>= 418.87.00) 但是它将不会被安装
libnvidia-ifr1-418 : 依赖: libnvidia-gl-418 但是它将不会被安装
nvidia-driver-418 : 依赖: libnvidia-gl-418 (= 418.87.00-0ubuntu1) 但是它将不会被安装
推荐: libnvidia-compute-418:i386 (= 418.87.00-0ubuntu1)
推荐: libnvidia-decode-418:i386 (= 418.87.00-0ubuntu1)
推荐: libnvidia-encode-418:i386 (= 418.87.00-0ubuntu1)
推荐: libnvidia-ifr1-418:i386 (= 418.87.00-0ubuntu1)
推荐: libnvidia-fbc1-418:i386 (= 418.87.00-0ubuntu1)
推荐: libnvidia-gl-418:i386 (= 418.87.00-0ubuntu1)
E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。

$ sudo apt --fix-broken install
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
正在修复依赖关系... 完成
下列软件包是自动安装的并且现在不需要了:
lib32gcc1 libc6-i386
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
libnvidia-gl-418
下列【新】软件包将被安装:
libnvidia-gl-418
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
有 68 个软件包没有被完全安装或卸载。
需要下载 0 B/32.2 MB 的归档。
解压缩后会消耗 164 MB 的额外空间。
您希望继续执行吗? [Y/n]
获取:1 file:/var/cuda-repo-10-1-local-10.1.243-418.87.00 libnvidia-gl-418 418.87.00-0ubuntu1 [32.2 MB]
(正在读取数据库 ... 系统当前共安装有 293566 个文件和目录。)
正准备解包 .../libnvidia-gl-418_418.87.00-0ubuntu1_amd64.deb ...
dpkg-query: 没有找到与 libnvidia-gl-410 相匹配的软件包
nvidia-340 导致 /usr/lib/x86_64-linux-gnu/libGL.so.1 转移到 /usr/lib/x86_64-linux-gnu/libGL.so.1.distrib
dpkg-divert: 错误: 删除 被 libnvidia-gl-418 转移的 /usr/lib/x86_64-linux-gnu/libGL.so.1 时
软件包名不匹配
发现了 nvidia-340 导致 /usr/lib/x86_64-linux-gnu/libGL.so.1 转移到 /usr/lib/x86_64-linux-gnu/libGL.so.1.distrib
dpkg: 处理归档 /var/cuda-repo-10-1-local-10.1.243-418.87.00/./libnvidia-gl-418_418.87.00-0ubuntu1_amd64.deb (--unpack)时出错:
new libnvidia-gl-418:amd64 package pre-installation script subprocess returned error exit status 2
在处理时有错误发生:
/var/cuda-repo-10-1-local-10.1.243-418.87.00/./libnvidia-gl-418_418.87.00-0ubuntu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

解决方案如下:

# 解除nvidia 340全部依赖

$ LC_MESSAGES=C dpkg-divert --list '*nvidia-340*' | sed -nre 's/^diversion of (.*) to .*/\1/p' | xargs -rd'\n' -n1 -- sudo dpkg-divert --remove

$ dpkg-divert --package nvidia-340 --remove /usr/lib/i386-linux-gnu/libGL.so.1

参考链接


发现了 nvidia-340 导致 /usr/lib/i386-linux-gnu/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so.1.distrib...

ubuntu 18.04 systemd-udevd进程CPU占用特别高,CUDA Toolkit 10.1 Update 2安装之后出现

最近在T440笔记本的ubuntu 18.04系统上安装最新的`CUDA Toolkit 10.1 Update 2`之后,发现 `systemd-udevd` 进程CPU占用特别高,执行 `sudo /lib/systemd/systemd-udevd -D` ,会发现持续输出如下信息:

RUN '/bin/systemctl start --no-block nvidia-persistenced.service' /lib/udev/rules.d/71-nvidia.rules:12
RUN '/sbin/modprobe nvidia-modeset' /lib/udev/rules.d/71-nvidia.rules:16
RUN '/sbin/modprobe nvidia-drm' /lib/udev/rules.d/71-nvidia.rules:20
RUN '/sbin/modprobe nvidia-uvm' /lib/udev/rules.d/71-nvidia.rules:24
RUN '/usr/bin/nvidia-smi' /lib/udev/rules.d/71-nvidia.rules:28
starting '/bin/systemctl start --no-block nvidia-persistenced.service'
Process '/bin/systemctl start --no-block nvidia-persistenced.service' succeeded.
starting '/sbin/modprobe nvidia-modeset'
seq 115679 queued, 'remove' 'module'
seq 115680 queued, 'add' 'module'
seq 115681 queued, 'add' 'slab'
seq 115682 queued, 'add' 'drivers'
seq 115681 running
seq 115682 running
seq 115681 processed
seq 115683 queued, 'remove' 'slab'
seq 115684 queued, 'remove' 'drivers'
seq 115683 running
seq 115683 processed
seq 115682 processed
seq 115684 running
seq 115684 processed
seq 115685 queued, 'remove' 'module'
'/sbin/modprobe nvidia-modeset'(err) 'modprobe: ERROR: could not insert 'nvidia_modeset': No such device'
Process '/sbin/modprobe nvidia-modeset' failed with exit code 1.

解决方法如下:

$ sudo rm -rf /lib/udev/rules.d/71-nvidia.rules

参考链接