跳转到内容

配置软件源:企业源与无订阅源 ​

装完 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:

  1. 在列表里找到 pve-enterprise,选中它,点 Disable。
  2. 点 Add,在下拉里选 No-Subscription,确认添加。
  3. 如果你没用 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
EOF

Suites 要对上你的 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 镜像。使用前确认两件事:

  1. 镜像站是否同步了你需要的组件(pve-no-subscription 和 Debian 本体的镜像要配套)。
  2. 镜像站是否及时同步安全更新。落后的镜像会让你错过安全补丁。

镜像站地址会变

本站不列具体镜像地址,因为它们变动频繁且可用性不稳定。请以镜像站官方的帮助页面为准,并在配置后用 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 确认连通性。

能不能同时启用企业源和无订阅源? 技术上可以,但没必要,还会让你搞不清包从哪来。选一个。

延伸阅读 ​

Proxmox VE 非官方中文使用指南,与 Proxmox Server Solutions GmbH 无隶属关系。