外观
配置软件源:企业源与无订阅源
装完 PVE 第一次执行 apt update,绝大多数人会看到这样一行:
text
E: Failed to fetch https://enterprise.proxmox.com/... 401 Unauthorized这不是坏了,是默认启用了需要订阅的企业软件源。这篇把它配对。
改软件源后不要立刻大版本升级
本文只处理「配好源、能正常更新」。把源改对之后执行的 apt full-upgrade 属于小版本更新,一般安全,但可能更新内核并需要重启。给自己留一个能重启的时间窗口。跨大版本升级(如 8 升 9)是另一回事,见更新与大版本升级。
三个软件源分别是什么
| 源 | 用途 | 谁该用 |
|---|---|---|
pve-enterprise | 企业源,需要有效订阅 | 买了订阅的用户 |
pve-no-subscription | 无订阅源,免费 | 家庭、实验室、自担风险的生产环境 |
pvetest | 测试源 | 不要在你在乎的机器上用 |
无订阅源和企业源提供的是同一套软件,区别在于无订阅源的包推送得更早、经过的测试轮次少一些。家用场景选它完全合理。
同理,PVE 还有 Ceph 的独立软件源,它也分企业版和无订阅版。没用 Ceph 的话不用管。
PVE 9:deb822 格式
PVE 9 基于 Debian 13,APT 源改用 deb822 格式,配置文件是 /etc/apt/sources.list.d/ 下的 .sources 文件。
用 Web UI 配置(推荐)
节点 → Updates → Repositories:
- 在列表里找到
pve-enterprise,选中它,点 Disable。 - 点 Add,在下拉里选
No-Subscription,确认添加。 - 如果你没用 Ceph,同样把
ceph-*-enterprise那条 Disable 掉。
界面会实时显示每条源的状态,比手改文件不容易出错。
用命令行配置
企业源在 /etc/apt/sources.list.d/pve-enterprise.sources。禁用它最干净的方式是给它加一行 Enabled: no:
sh
cp /etc/apt/sources.list.d/pve-enterprise.sources /root/pve-enterprise.sources.bak
echo 'Enabled: no' >> /etc/apt/sources.list.d/pve-enterprise.sources然后添加无订阅源:
sh
cat > /etc/apt/sources.list.d/pve-no-subscription.sources <<'EOF'
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOFSuites 要对上你的 Debian 代号
trixie 是 Debian 13 的代号,对应 PVE 9。写错代号会导致源不可用甚至拉到错误的包。用 cat /etc/os-release 里的 VERSION_CODENAME 确认,别照抄。同样,Signed-By 指向的密钥环文件名也可能随版本变化,以你机器上 /usr/share/keyrings/ 里实际存在的文件为准。
PVE 8:传统 list 格式
PVE 8 基于 Debian 12(bookworm),用传统的 .list 格式。
同样推荐用 Web UI 的 Updates → Repositories 操作。命令行做法是注释掉企业源:
sh
sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/pve-enterprise.list再添加无订阅源:
sh
echo 'deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription' \
> /etc/apt/sources.list.d/pve-no-subscription.list更新并验证
sh
apt update不应再出现 401。接着:
sh
apt full-upgrade用 full-upgrade,不要用 upgrade
PVE 的包依赖关系经常需要安装新包或移除旧包,普通 apt upgrade 会把这些更新「保留」(held back),导致更新不完整。PVE 官方文档一贯推荐 apt full-upgrade(等价于 apt dist-upgrade)。
如果输出里提到更新了 proxmox-kernel-*,需要重启才生效:
sh
reboot国内镜像源
从国内访问 download.proxmox.com 有时较慢。部分高校和云厂商提供 Proxmox 镜像。使用前确认两件事:
- 镜像站是否同步了你需要的组件(
pve-no-subscription和 Debian 本体的镜像要配套)。 - 镜像站是否及时同步安全更新。落后的镜像会让你错过安全补丁。
镜像站地址会变
本站不列具体镜像地址,因为它们变动频繁且可用性不稳定。请以镜像站官方的帮助页面为准,并在配置后用 apt update 验证。遇到 Hash Sum mismatch 之类的错误,通常是镜像同步到一半,换回官方源或等一段时间重试。
检查结果
sh
# 1. 源列表里没有 401
apt update
# 2. 确认当前启用的源
pvesh get /nodes/$(hostname)/apt/repositories --output-format json | head -40或者直接看 Web UI 的 Updates → Repositories,企业源显示为 disabled,无订阅源显示为启用且状态正常。
Web UI 的 Updates 页面点 Refresh 后能列出可更新的包,说明整条链路通了。
常见问题
报 NO_PUBKEY 或签名错误。 通常是密钥环包缺失或过期。先确认 proxmox-archive-keyring(PVE 9)或 proxmox-ve-release-*-keyring(早期版本)这类包已安装,并检查 Signed-By 路径是否指向实际存在的文件。
改完之后 apt update 卡住。 多半是网络问题而非配置问题。先 ping download.proxmox.com 确认连通性。
能不能同时启用企业源和无订阅源? 技术上可以,但没必要,还会让你搞不清包从哪来。选一个。