如何清理`apt policy nvidia-driver-470`显示的多余NVIDIA驱动版本?
apt policy nvidia-driver-470显示的多余NVIDIA驱动版本? 嘿,我完全懂你现在的烦躁——折腾NVIDIA驱动和CUDA的时候不小心搞出一堆候选版本,看着apt policy里长长的列表头都大了。别慌,咱们一步步把这些多余版本清理掉,顺便把你的驱动和CUDA版本理顺:
第一步:先搞定多余版本的来源
你看apt policy里的版本,大部分都针对Ubuntu20.04的CUDA仓库(但你用的是22.04),还有几个额外的PPA。这些就是导致可选版本泛滥的根源,咱们先把不需要的源删掉:
移除错误的CUDA仓库:
先看看系统里有哪些CUDA相关的源文件:ls /etc/apt/sources.list.d/ | grep cuda找到类似
cuda-ubuntu2004.list这类针对20.04的源文件,连带可能的.save后缀文件一起删掉:sudo rm /etc/apt/sources.list.d/cuda-ubuntu2004.list sudo rm /etc/apt/sources.list.d/cuda-ubuntu2004.list.save移除不需要的PPA:
如果你不需要graphics-drivers/ppa或者system76-dev/stable这两个PPA(非System76机器的话,后者可以放心删),用下面的命令移除:# 移除graphics-drivers PPA sudo add-apt-repository --remove ppa:graphics-drivers/ppa # 移除system76-dev PPA(非System76机器可选) sudo add-apt-repository --remove ppa:system76-dev/stable
第二步:清理缓存并刷新源列表
删掉多余源后,得让apt更新一下它的版本数据库:
sudo apt clean sudo apt update
这时候再运行apt policy nvidia-driver-470,你会发现那些来自错误源的多余版本已经消失了!
第三步:理顺驱动和CUDA版本(可选但推荐)
看你的输出,当前nvidia-smi显示驱动是470.223.02(对应CUDA 11.4),但nvcc -V显示的是CUDA 11.8,版本不匹配可能会导致后续开发出问题。这里给你两个方案:
方案A:保留CUDA 11.8,确保驱动兼容
CUDA 11.8支持的最低驱动是450.80.02,你的470.223.02是兼容的,但如果想让apt管理驱动,可以先卸载runfile安装的驱动:sudo nvidia-uninstall然后用apt安装对应版本的驱动,或者重新用CUDA runfile安装时选择只装toolkit不装驱动。
方案B:回到CUDA 11.4,匹配当前驱动
卸载CUDA 11.8的 toolkit:sudo apt remove --purge nvidia-cuda-toolkit然后安装CUDA 11.4版本的toolkit(推荐用.run安装包,避免自动替换驱动)。
小提醒
之后再装CUDA的话,尽量用.run格式的安装包,这样你可以手动选择是否安装驱动,既避免apt源的版本冲突,也更容易管理。
备注:内容来源于stack exchange,提问作者jun

