无法升级 NVidia 软件包

Posted

技术标签:

【中文标题】无法升级 NVidia 软件包【英文标题】:Can't upgrade NVidia packages 【发布时间】:2020-09-30 03:21:15 【问题描述】:

我想将我的 Ubuntu 从 19.04 升级到 20.04,但在我更新所有软件包之前这是不可能的。

❯ sudo do-release-upgrade
Checking for a new Ubuntu release
Your Ubuntu release is not supported anymore.
For upgrade information, please visit:
http://www.ubuntu.com/releaseendoflife

Please install all available updates for your release before upgrading.

所以,我正在尝试更新我的包:

❯ sudo apt update
Get:1 file:/var/cuda-repo-10-0-local-10.0.130-410.48  InRelease
Ign:1 file:/var/cuda-repo-10-0-local-10.0.130-410.48  InRelease
Get:2 file:/var/cuda-repo-10-0-local-10.0.130-410.48  Release [574 B]
Get:2 file:/var/cuda-repo-10-0-local-10.0.130-410.48  Release [574 B]
Hit:3 http://repo.yandex.ru/yandex-disk/deb stable InRelease                                                                                                                           
Hit:5 http://linux.teamviewer.com/deb stable InRelease                                                                                                                                 
Hit:6 http://old-releases.ubuntu.com/ubuntu disco InRelease                                                                                                                            
Hit:7 http://ppa.launchpad.net/gophers/archive/ubuntu disco InRelease                                                                                                                  
Hit:8 http://old-releases.ubuntu.com/ubuntu disco-updates InRelease                                                                                                                    
Hit:9 http://dl.google.com/linux/chrome/deb stable InRelease                                                                                                                           
Hit:10 https://dl.yarnpkg.com/debian stable InRelease                                                                                                                                  
Hit:11 https://storage.googleapis.com/bazel-apt stable InRelease                                                                                                                       
Hit:12 http://old-releases.ubuntu.com/ubuntu disco-backports InRelease                                                                                                                 
Hit:13 https://download.mono-project.com/repo/ubuntu vs-bionic InRelease                                                                                                               
Hit:14 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu disco InRelease                                                                                                   
Hit:15 http://old-releases.ubuntu.com/ubuntu disco-security InRelease                                                                                                                  
Ign:16 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  InRelease                                                                                            
Hit:17 http://ppa.launchpad.net/linrunner/tlp/ubuntu disco InRelease                                                                                                               
Hit:18 https://packages.microsoft.com/ubuntu/16.04/mssql-server-2019 xenial InRelease                                
Ign:19 http://linux.dropbox.com/ubuntu disco InRelease                                                               
Hit:20 https://packages.microsoft.com/ubuntu/16.04/mssql-server-2017 xenial InRelease          
Hit:21 http://linux.dropbox.com/ubuntu disco Release                                           
Ign:22 http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64  InRelease
Hit:23 http://ppa.launchpad.net/linuxuprising/apps/ubuntu disco InRelease
Hit:24 https://packages.microsoft.com/ubuntu/19.04/prod disco InRelease                        
Hit:25 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  Release      
Hit:26 http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64  Release
Hit:27 http://ppa.launchpad.net/longsleep/golang-backports/ubuntu disco InRelease
Hit:28 http://ppa.launchpad.net/lyzardking/ubuntu-make/ubuntu disco InRelease
Hit:29 http://ppa.launchpad.net/obsproject/obs-studio/ubuntu disco InRelease
Hit:30 http://ppa.launchpad.net/peek-developers/stable/ubuntu disco InRelease
Hit:31 http://ppa.launchpad.net/webupd8team/java/ubuntu disco InRelease
Reading package lists... Done                      
Building dependency tree       
Reading state information... Done
4 packages can be upgraded. Run 'apt list --upgradable' to see them.

它说我可以升级其中的 4 个。让我们看看它们是什么。

❯ apt list --upgradable
Listing... Done
cuda-drivers/unknown 450.36.06-1 amd64 [upgradable from: 418.87.01-1]
cuda/unknown 11.0.1-1 amd64 [upgradable from: 10.1.243-1]
libnvidia-common-450/unknown 450.36.06-0ubuntu1 all [upgradable from: 450.36.06-0ubuntu1]
libxnvctrl0/unknown 450.36.06-0ubuntu1 amd64 [upgradable from: 450.36.06-0ubuntu1]

让我们升级它们。

❯ sudo apt upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  cuda-command-line-tools-11-0 cuda-compiler-11-0 cuda-cudart-11-0 cuda-cudart-dev-11-0 cuda-cuobjdump-11-0 cuda-cupti-11-0 cuda-cupti-dev-11-0 cuda-documentation-11-0
  cuda-driver-dev-11-0 cuda-gdb-11-0 cuda-libraries-11-0 cuda-libraries-dev-11-0 cuda-memcheck-11-0 cuda-nsight-11-0 cuda-nsight-compute-11-0 cuda-nsight-systems-11-0 cuda-nvcc-11-0
  cuda-nvdisasm-11-0 cuda-nvml-dev-11-0 cuda-nvprof-11-0 cuda-nvprune-11-0 cuda-nvrtc-11-0 cuda-nvrtc-dev-11-0 cuda-nvtx-11-0 cuda-nvvp-11-0 cuda-samples-11-0 cuda-sanitizer-11-0
  cuda-toolkit-11-0 cuda-tools-11-0 cuda-visual-tools-11-0 golang-1.13-go golang-1.13-src golang-src libcublas-11-0 libcublas-dev-11-0 libcufft-11-0 libcufft-dev-11-0 libcurand-11-0
  libcurand-dev-11-0 libcusolver-11-0 libcusolver-dev-11-0 libcusparse-11-0 libcusparse-dev-11-0 libnpp-11-0 libnpp-dev-11-0 libnvidia-common-450 libnvjpeg-11-0 libnvjpeg-dev-11-0
Use 'sudo apt autoremove' to remove them.
The following packages have been kept back:
  cuda cuda-drivers
The following packages will be upgraded:
  libnvidia-common-450 libxnvctrl0
2 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Need to get 0 B/31.4 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 354920 files and directories currently installed.)
Preparing to unpack .../libnvidia-common-450_450.36.06-0ubuntu1_all.deb ...
Checking for existing driver runfile install
/var/lib/dpkg/tmp.ci/preinst: 6: /var/lib/dpkg/tmp.ci/preinst: [[: not found
Unpacking libnvidia-common-450 (450.36.06-0ubuntu1) over (450.36.06-0ubuntu1) ...
Preparing to unpack .../libxnvctrl0_450.36.06-0ubuntu1_amd64.deb ...
Unpacking libxnvctrl0:amd64 (450.36.06-0ubuntu1) over (450.36.06-0ubuntu1) ...
Setting up libnvidia-common-450 (450.36.06-0ubuntu1) ...
Setting up libxnvctrl0:amd64 (450.36.06-0ubuntu1) ...
Processing triggers for libc-bin (2.29-0ubuntu2) ...

问题是它们没有升级。

❯ apt list --upgradable
Listing... Done
cuda-drivers/unknown 450.36.06-1 amd64 [upgradable from: 418.87.01-1]
cuda/unknown 11.0.1-1 amd64 [upgradable from: 10.1.243-1]
libnvidia-common-450/unknown 450.36.06-0ubuntu1 all [upgradable from: 450.36.06-0ubuntu1]
libxnvctrl0/unknown 450.36.06-0ubuntu1 amd64 [upgradable from: 450.36.06-0ubuntu1]

我做错了吗?可能是我不明白为什么我不能从 Ubuntu 19.04 迁移到 Ubuntu 20.04 的真正原因。有任何想法吗?

【问题讨论】:

在 unix 和 linux 社区上提问,或者如果您使用 ubunut,然后在 ask ubuntu 上发帖 【参考方案1】:

我在 Ubuntu 20.04 上尝试升级我的 cuda 时遇到了同样的问题。

sudo apt upgrade 只会添加升级/添加包,绝不会删除包。

但是,升级 cuda 通常需要删除一堆旧的 nvidia 驱动程序包并用新的包替换它们。

sudo apt full-upgrade 可以在需要更新包时删除包:

full-upgrade (apt-get(8))

full-upgrade 执行升级功能,但如果需要将当前安装的包作为一个整体升级系统,则会删除。

(来自man apthttps://manpages.ubuntu.com/manpages/focal/man8/apt.8.html

不幸的是,至少对于 apt 版本 2.0.5,sudo apt full-upgrade 仍然不想更新 cuda

Debian buster upgrade notes 建议当apt full-upgrade 不起作用时,您应该在受影响的包上手动运行installsudo apt install cuda,或者使用aptitude 更强大的包解析算法:

我可以确认使用 sudo aptitude full-upgradesudo apt install cuda 都有效,请参阅以下输出(为简洁起见进行了编辑)

使用 apt install cuda

❯ sudo apt install cuda
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
 cuda-11-2 cuda-command-line-tools-11-2 ...
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  cuda-11-3 cuda-command-line-tools-11-3 ...
The following packages will be REMOVED
  cuda-drivers-460 libnvidia-cfg1-460 ...
The following NEW packages will be installed
  cuda-11-3 cuda-command-line-tools-11-3 ...
The following packages will be upgraded:
  cuda cuda-drivers
2 to upgrade, 68 to newly install, 16 to remove and 0 not to upgrade.
Need to get 2,248 MB of archives.
After this operation, 4,603 MB of additional disk space will be used.
Do you want to continue? [Y/n]

使用 aptitude 全面升级

aptitude 默认没有安装,所以你可能需要先运行sudo apt install aptitude 来安装它。请记住,虽然full-upgrade 通常是安全的,但由于它确实会删除软件包,因此它偶尔会破坏系统中的内容。

❯ sudo aptitude full-upgrade
The following NEW packages will be installed:
  cuda-11-3a cuda-command-line-tools-11-3a ...
The following packages will be REMOVED:
  cuda-11-2u cuda-command-line-tools-11-2u ...
The following packages will be upgraded:
  cuda cuda-drivers ...
2 packages upgraded, 68 newly installed, 65 to remove and 0 not upgraded.
Need to get 2,248 MB of archives. After unpacking 16.5 MB will be freed.
The following packages have unmet dependencies:
 libnvidia-compute-460 : Conflicts: libcuda-10.0-1 which is a virtual package, provided by: ...

 libnvidia-compute-465 : Conflicts: libcuda-10.0-1 which is a virtual package, provided by: ...

The following actions will resolve these dependencies:

     Remove the following packages:                            
1)     libnvidia-compute-460 [460.32.03-0ubuntu1 (<NULL>, now)]



Accept this solution? [Y/n/q/?]

【讨论】:

以上是关于无法升级 NVidia 软件包的主要内容,如果未能解决你的问题,请参考以下文章

DJI Manifold 2(在 nvidia jetson tx2 上运行)USB 设备在使用 Ubuntu 的软件更新更新后无法工作

NVIDIA GeForce Experience怎么才能跳过更新

无法使用 Heroku 安装软件包或升级 pip

geforceexperience卸载了显卡驱动还会更新吗

ubuntu samba无法安装 我用的是虚拟机虚拟的ubuntu,配置网络后可以正常打开网页,想升级samba服务

LINux无法使用apt-get install命令来安装软件 我就连输入系统升级命令都一样 的结果