Ubuntu环境下nvidia-container-toolkit.list的正确配置方法咨询
Ubuntu环境下nvidia-container-toolkit.list的正确配置方法咨询
我来帮你解决这个NVIDIA容器工具源的配置问题,你遇到的Malformed line错误和$(ARCH)的疑惑其实是Ubuntu环境下的常见小坑,我之前也踩过类似的,给你梳理下正确的做法:
先搞懂$(ARCH)是什么
NVIDIA源里的$(ARCH)是APT自身支持的变量,不是Shell的环境变量,所以你在终端敲echo $(ARCH)会报错是正常的——APT会在解析源文件时自动替换这个变量为当前系统的架构(比如amd64),完全不需要你手动替换!
你手动修改出错的原因
你之前的两种手动修改方式都有问题:
- 签名文件路径写错了:官方要求的是
/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg,而你写成了nvidia.gpg,路径不匹配会触发格式验证错误; - 架构路径格式错误:你把
$(ARCH)换成amd64时多了个空格(deb/ amd64),正确路径应该是deb/amd64,不过其实根本没必要手动替换。
正确的nvidia-container-toolkit.list内容
直接用下面的内容替换你当前的文件即可,保证格式合规:
deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/deb/$(ARCH) / #deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/experimental/deb/$(ARCH) /
更稳妥的方式:用官方命令自动配置
如果你不想手动编辑文件,直接执行下面的完整命令(亲测Ubuntu上有效),它会自动生成正确的源文件并导入签名密钥:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
执行完命令后,再跑sudo apt-get update,应该就不会再出现源文件格式错误的提示了。
备注:内容来源于stack exchange,提问作者stackbiz




