You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04因CUDA包依赖冲突无法完成系统更新的求助

Ubuntu 22.04因CUDA包依赖冲突无法完成系统更新的求助

我是Linux新手,之前为了做机器学习实验在Ubuntu 22.04上安装了CUDA库,但最近几周系统更新一直失败,看起来是CUDA包的依赖和文件冲突问题。以下是我的问题详情:

首先执行sudo apt update,输出正常,提示有117个包可以升级:

Get:1 file:/var/cuda-repo-ubuntu2204-11-8-local  InRelease [1.575 B]
Get:2 file:/var/cuda-repo-ubuntu2204-12-2-local  InRelease [1.572 B]
Get:3 file:/var/cuda-repo-ubuntu2204-12-3-local  InRelease [1.572 B]
Get:1 file:/var/cuda-repo-ubuntu2204-11-8-local  InRelease [1.575 B]
Get:4 file:/var/cudnn-local-repo-ubuntu2204-8.9.6.50  InRelease [1.572 B]
Get:2 file:/var/cuda-repo-ubuntu2204-12-2-local  InRelease [1.572 B]
Get:3 file:/var/cuda-repo-ubuntu2204-12-3-local  InRelease [1.572 B]
Get:4 file:/var/cudnn-local-repo-ubuntu2204-8.9.6.50  InRelease [1.572 B]
Get:5 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Hit:6 https://downloads.plex.tv/repo/deb public InRelease
Hit:7 https://download.docker.com/linux/ubuntu jammy InRelease
Hit:8 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  InRelease
Hit:9 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64  InRelease
Hit:10 http://be.archive.ubuntu.com/ubuntu jammy InRelease
Get:11 http://be.archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Hit:12 https://repo.jellyfin.org/ubuntu jammy InRelease
Hit:13 http://be.archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:14 https://nvidia.github.io/libnvidia-container/stable/deb/amd64  InRelease
Hit:15 https://ppa.launchpadcontent.net/graphics-drivers/ppa/ubuntu jammy InRelease
Fetched 229 kB in 1s (205 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
117 packages can be upgraded. Run 'apt list --upgradable' to see them.

但执行sudo apt install时,提示依赖未满足:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
cuda-command-line-tools-12-3 : Depends: cuda-cupti-dev-12-3 (>= 12.3.101) but 12.3.52-1 is installed
Depends: cuda-nvprof-12-3 (>= 12.3.101) but 12.3.52-1 is installed
Depends: cuda-nvtx-12-3 (>= 12.3.101) but 12.3.52-1 is installed
cuda-compiler-12-3 : Depends: cuda-cuxxfilt-12-3 (>= 12.3.101) but 12.3.52-1 is installed
Depends: cuda-nvcc-12-3 (>= 12.3.103) but 12.3.52-1 is installed
cuda-libraries-12-3 : Depends: cuda-cudart-12-3 (>= 12.3.101) but 12.3.52-1 is installed
Depends: cuda-nvrtc-12-3 (>= 12.3.103) but 12.3.52-1 is installed
Depends: cuda-opencl-12-3 (>= 12.3.101) but 12.3.52-1 is installed
Depends: libcublas-12-3 (>= 12.3.4.1) but 12.3.2.9-1 is installed
Depends: libcufft-12-3 (>= 11.0.12.1) but 11.0.11.19-1 is installed
Depends: libcurand-12-3 (>= 10.3.4.101) but 10.3.4.52-1 is installed
Depends: libcusolver-12-3 (>= 11.5.4.101) but 11.5.3.52-1 is installed
Depends: libcusparse-12-3 (>= 12.2.0.103) but 12.1.3.153-1 is installed
Depends: libnpp-12-3 (>= 12.2.3.2) but 12.2.2.32-1 is installed
Depends: libnvjitlink-12-3 (>= 12.3.101) but 12.3.52-1 is installed
Depends: libnvjpeg-12-3 (>= 12.3.0.81) but 12.2.3.32-1 is installed
cuda-libraries-dev-12-3 : Depends: cuda-cudart-dev-12-3 (>= 12.3.101) but 12.3.52-1 is installed
Depends: cuda-cccl-12-3 (>= 12.3.101) but 12.3.52-1 is installed
Depends: cuda-profiler-api-12-3 (>= 12.3.101) but 12.3.52-1 is installed
Depends: cuda-driver-dev-12-3 (>= 12.3.101) but 12.3.52-1 is installed
Depends: cuda-nvrtc-dev-12-3 (>= 12.3.103) but 12.3.52-1 is installed
Depends: cuda-opencl-dev-12-3 (>= 12.3.101) but 12.3.52-1 is installed
Depends: libcublas-dev-12-3 (>= 12.3.4.1) but 12.3.2.9-1 is installed
Depends: libcufft-dev-12-3 (>= 11.0.12.1) but 11.0.11.19-1 is installed
Depends: libcurand-dev-12-3 (>= 10.3.4.101) but 10.3.4.52-1 is installed
Depends: libcusolver-dev-12-3 (>= 11.5.4.101) but 11.5.3.52-1 is installed
Depends: libcusparse-dev-12-3 (>= 12.2.0.103) but 12.1.3.153-1 is installed
Depends: libnpp-dev-12-3 (>= 12.2.3.2) but 12.2.2.32-1 is installed
Depends: libnvjitlink-dev-12-3 (>= 12.3.101) but 12.3.52-1 is installed
Depends: libnvjpeg-dev-12-3 (>= 12.3.0.81) but 12.2.3.32-1 is installed
cuda-nvcc-12-3 : Depends: cuda-nvvm-12-3 (= 12.3.52-1) but 12.3.103-1 is installed
Depends: cuda-crt-12-3 (= 12.3.52-1) but 12.3.103-1 is installed
cuda-toolkit-12-3 : Depends: cuda-nvml-dev-12-3 (>= 12.3.101) but 12.3.52-1 is installed
cuda-visual-tools-12-3 : Depends: cuda-nvml-dev-12-3 (>= 12.3.101) but 12.3.52-1 is installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

尝试执行sudo apt --fix-broken install时,出现文件覆盖冲突错误:

...*long code paragraphs*
101-1_amd64.deb ...
Unpacking cuda-nvml-dev-12-3 (12.3.101-1) over (12.3.52-1) ...
dpkg: error processing archive /tmp/apt-dpkg-install-VjvbGI/31-cuda-nvml-dev-12-3_12.3.101-1_amd64.deb (--unpack)
:
trying to overwrite '/usr/local/cuda-12.3/include', which is also in package cuda-cccl-12-3 12.3.52-1
No apport report written because MaxReports is reached already
Errors were encountered while processing:
/tmp/apt-dpkg-install-VjvbGI/00-cuda-cupti-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/01-cuda-cupti-dev-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/02-cuda-nvprof-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/03-cuda-nvtx-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/04-cuda-cuxxfilt-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/05-cuda-cudart-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/06-cuda-cccl-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/07-cuda-driver-dev-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/08-cuda-cudart-dev-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/09-cuda-nvcc-12-3_12.3.103-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/10-cuda-nvrtc-12-3_12.3.103-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/11-cuda-opencl-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/12-libcublas-12-3_12.3.4.1-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/13-libcufft-12-3_11.0.12.1-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/14-libcurand-12-3_10.3.4.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/15-libcusolver-12-3_11.5.4.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/16-libcusparse-12-3_12.2.0.103-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/17-libnpp-12-3_12.2.3.2-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/18-libnvjitlink-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/19-libnvjpeg-12-3_12.3.0.81-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/20-cuda-profiler-api-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/21-cuda-nvrtc-dev-12-3_12.3.103-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/22-cuda-opencl-dev-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/23-libcublas-dev-12-3_12.3.4.1-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/24-libcufft-dev-12-3_11.0.12.1-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/25-libcurand-dev-12-3_10.3.4.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/26-libcusolver-dev-12-3_11.5.4.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/27-libcusparse-dev-12-3_12.2.0.103-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/28-libnpp-dev-12-3_12.2.3.2-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/29-libnvjitlink-dev-12-3_12.3.101-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/30-libnvjpeg-dev-12-3_12.3.0.81-1_amd64.deb
/tmp/apt-dpkg-install-VjvbGI/31-cuda-nvml-dev-12-3_12.3.101-1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

有没有人能告诉我怎么解决这个问题?


解决方案

看起来是CUDA 12.3的不同子包之间出现了版本不匹配和文件所有权冲突,尤其是cuda-cccl-12-3和cuda-nvml-dev-12-3都试图控制/usr/local/cuda-12.3/include目录。我们可以通过强制覆盖冲突文件、清理旧版本CUDA包再重新安装的方式解决:

步骤1:强制处理dpkg的冲突

首先,让dpkg允许覆盖冲突文件,执行以下命令:

sudo dpkg -i --force-overwrite /tmp/apt-dpkg-install-VjvbGI/*.deb

这个命令会强制安装所有待处理的deb包,忽略文件覆盖冲突。

步骤2:修复apt依赖问题

完成上一步后,再运行apt的修复命令来确保所有依赖都正确配置:

sudo apt --fix-broken install

步骤3:清理重复的CUDA仓库(可选但推荐)

从你的apt update输出看,你同时添加了CUDA 11.8、12.2、12.3的本地仓库,这很容易导致版本混乱。可以清理掉不需要的旧版本仓库:

  • 查看所有CUDA相关的仓库文件:
ls /etc/apt
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:54:50