问题:
我在ubuntu22:04离线环境安装cuda toolkit,cuda为12.3,已安装cuda-repo-ubuntu2204-12-3-local_12.3.0-545.23.06-1_amd64.deb,在apt install -y cuda时报错如下 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 : Depends: cuda-13-0 (>= 13.0.2) but it is not going to be installed Depends: nvidia-open (>= 580.95.05) but it is not going to be installed libnftables1 : Depends: libnftnl11 (>= 1.2.6) but 1.2.1-1build1 is to be installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
解决:
遇到的核心问题是:安装了 CUDA12.3 的本地 repo 源,但是执行apt install cuda时,系统却去依赖 CUDA13.0 和高版本 NVIDIA 驱动 ,这是因为cuda是元包,默认会安装最新版 CUDA(13.0),而不是你下载的 12.3;同时离线环境缺少依赖包导致冲突。
一、核心原因
cuda元包 = 最新版 CUDA(当前是 13.0),必须指定版本安装cuda-12-3- 离线环境无法自动补全依赖,且系统出现了依赖破损
- 本地 repo 源未正确生效 / 缓存未更新
二、离线环境终极方案
如果还是提示依赖缺失,说明本地 deb 包没有包含完整依赖 ,直接用runfile 安装包(离线 100% 成功,推荐):
下载 CUDA12.3 runfile 离线包(提前下载好拷贝到离线机器)下载地址:https://developer.nvidia.com/cuda-12-3-0-download-archive选择:Linux → x86_64 → Ubuntu → 22.04 → runfile (local)
离线安装命令(无依赖冲突)
sudo chmod +x cuda_12.3.0_545.23.06_linux.run
sudo ./cuda_12.3.0_545.23.06_linux.run --silent --toolkit
安装完成后配置环境变量
# 编辑环境变量
sudo nano ~/.bashrc
在文件末尾添加:
export PATH=/usr/local/cuda-12.3/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存退出(nano:Ctrl+O → 回车 → Ctrl+X)
生效环境变量:
source ~/.bashrc
验证安装
nvcc -V
总结
- 绝对不要用
apt install cuda,CUDA12.3 必须用apt install cuda-12-3 - 离线环境最稳的方案是 runfile 安装,完全规避 apt 依赖问题
- 安装后必须配置环境变量,才能用
nvcc -V验证