NVIDIA: userspace installation fails because exact-version dependencies are not pinned
维护者通常 1 天内回复
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 76/100
调研方向
Start with _setup_nvidia_gpu() in lib/hwaccel.func and trace how it selects the host driver version, pins packages, and handles the failed install. Reproduce the conflict with the listed apt-get --simulate command in a Debian 13 container. Done means installation handles the matching NVIDIA userspace dependencies successfully and validation does not report success when it fails.
由索引模型根据 Issue 内容生成。
描述
Environment
- Proxmox VE: 9.2.3
- Container: Debian 13 (Trixie)
- GPU: NVIDIA RTX 3060
- Host NVIDIA driver: 595.112.07
- Affected installation: vLLM script
- Affected helper:
lib/hwaccel.func,_setup_nvidia_gpu()
Summary
When creating a Debian 13 LXC with the vLLM script, the shared NVIDIA hardware-acceleration helper detects the host driver version correctly (595.112.07) and finds matching 595.112.07-1 userspace packages in the NVIDIA repository.
However, it pins only four packages:
libcuda1libnvcuvid1libnvidia-encode1libnvidia-ml1
It does not pin the exact-version dependencies required by those packages:
libnvidia-ptxjitcompiler1libnvidia-pkcs11-openssl3libnvidia-gpucomp
APT therefore selects newer 620.70.06-1 dependency candidates, while the requested packages must be 595.112.07-1. The installation fails.
How the issue was found
A fresh Debian 13 LXC was created with the vLLM script. During creation, the hardware-acceleration setup reported:
Version-pinned install failed - keeping libcuda1 at 595.112.07-1, the rest unpinned
No underlying APT error was shown because the fallback redirects stderr to /dev/null and ignores the failure with || true.
After creation, the container was inspected with:
pct exec 101 -- bash -c '
apt-cache policy libcuda1 libnvidia-ptxjitcompiler1 libnvidia-pkcs11-openssl3 libnvidia-gpucomp
apt-cache madison libcuda1
'
This showed that the repository contained the host-matching 595.112.07-1 packages, but the default candidates for the dependencies were 620.70.06-1.
Reproduction
The helper selects the host driver version and attempts:
apt-get -y -o Dpkg::Options::="--force-confold" install --no-install-recommends \
libcuda1=595.112.07-1 \
libnvcuvid1=595.112.07-1 \
libnvidia-encode1=595.112.07-1 \
libnvidia-ml1=595.112.07-1
However, it does not pin the exact-version dependencies required by those packages:
libnvidia-ptxjitcompiler1libnvidia-pkcs11-openssl3libnvidia-gpucomp
APT therefore selects newer 620.70.06-1 dependency candidates, while the requested packages must be 595.112.07-1. The installation fails.
Diagnostic tests
The following command reproduced the dependency conflict:
pct exec 101 -- apt-get --simulate --no-install-recommends install \
libcuda1=595.112.07-1 \
libnvcuvid1=595.112.07-1 \
libnvidia-encode1=595.112.07-1 \
libnvidia-ml1=595.112.07-1
APT selected:
libnvidia-ptxjitcompiler1 620.70.06-1
libnvidia-pkcs11-openssl3 620.70.06-1
libnvidia-gpucomp 620.70.06-1
A real installation attempt then failed with a version conflict.
Successful manual simulation
Explicitly selecting the matching dependency versions succeeds:
pct exec 101 -- apt-get --simulate --no-install-recommends install \
libcuda1=595.112.07-1 \
libnvidia-ptxjitcompiler1=595.112.07-1 \
libnvidia-pkcs11-openssl3=595.112.07-1 \
libnvidia-gpucomp=595.112.07-1
The simulation resolved cleanly, confirming that the matching packages are available and that the issue is the incomplete version pinning.
Observed behavior
The helper reports:
Version-pinned install failed - keeping libcuda1 at 595.112.07-1, the rest unpinned
The fallback only pins libcuda1:
"libcuda1=${available_version}" libnvcuvid1 libnvidia-encode1 libnvidia-ml1
It also suppresses APT errors:
2>/dev/null || true
As a result, the actual dependency conflict is hidden.
Expected behavior
The helper should either:
- Install the complete matching NVIDIA userspace package set, including exact-version dependencies; or
- Let APT resolve dependencies naturally instead of pinning only a subset; or
- Surface the failed APT command and its error instead of suppressing it.
Additional issue
setup_hwaccel() prints Setup Hardware Acceleration as successful even when NVIDIA validation fails. It does set HWACCEL_VENDOR="none" in this case, but the final success message is misleading.
- 主要语言
- Shell
- 星标
- 11
- 派生
- 17
- 平均合并
- 7 小时 39 分钟
- 30 天内合并 PR
- 89
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
community-scripts/core 的其他 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 68/100
community-scripts/core#217 ·
维护者通常 1 天内回复
-
Proposal: reusable CTID ranges and CTID-derived MAC/IP defaults可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 5/5 一周以上 新手友好度 30/100
community-scripts/core#142 · 1 条评论 ·
维护者通常 1 天内回复
查看 community-scripts/core 的全部 Issue
相似的 Issue
-
enhancement
难度 2/5 1-3 小时 新手友好度 68/100
Frogging-Family/linux-tkg#1265 ·
-
known-red S3: friction & debt
难度 2/5 1-3 小时 新手友好度 82/100
MedakaLang/medaka#4969 ·
维护者通常 1 天内回复
-
enhancement needs:sonnet ready-for-agent
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
area/tooling contribfest No AI type/cleanup type/feature
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
oracle/vagrant-projects#594 ·