
Proxmox VE 9.0 解决 apt update 报错与移除订阅弹窗
简介: Proxmox VE (PVE) 9.0 是一款功能强大的开源虚拟化平台。但在初次部署时,很多用户会遇到两个烦人的问题:apt update
更新失败(错误代码 100)和登录 Web 界面时出现的“没有有效订阅”弹窗。本文将详细介绍这两个问题的原因和解决方法,让你的 PVE 环境顺畅运行。
问题一:apt-get update
失败 (错误代码 100)
🔍 错误现象
执行 apt update
或相关操作时,会遇到类似以下错误:
bash
TASK ERROR: command 'apt-get update' failed: exit code 100
在详细日志中,通常能看到核心错误信息:
bash
401 Unauthorized [IP: 66.70.154.82 443]
The repository 'https://enterprise.proxmox.com/... InRelease' is not signed.
⚠ 原因分析
PVE 9.0 默认配置启用了需要付费订阅的企业源 (enterprise.proxmox.com
)。对于没有购买订阅的普通用户,访问该源会被拒绝(401 Unauthorized),导致整个 apt update
过程失败。
✅ 解决方法:切换到免费公共源 (pve-no-subscription
)
只需几个命令即可解决:
移除无效的企业源配置:
bash
rm -f /etc/apt/sources.list.d/*enterprise* rm -f /etc/apt/sources.list.d/*ceph* # 通常也需要移除关联的 Ceph 企业源 rm -f /etc/apt/sources.list.d/*pve*.list # 移除默认的 PVE 源文件(通常包含企业源指向)
配置 Debian Bookworm 官方源:
bash
cat > /etc/apt/sources.list <<'EOF' deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware EOF
添加 Proxmox VE 免费公共源:
bash
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
导入 Proxmox GPG 密钥(验证软件包):
bash
wget -qO - https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
更新软件包列表:
bash
apt update
📌 验证: 执行此命令后应该不再报错,能够正常获取软件包列表。
问题二:Web 界面“没有有效订阅”弹窗
🔍 错误现象
每次登录 PVE Web 管理界面,都会弹出以下提示框:
您没有此服务器的有效订阅。请访问 www.proxmox.com 获取可用选项列表。
虽然这个弹窗不影响 PVE 的核心功能,但每次登录都出现,确实非常影响用户体验。
✅ 解决方法:禁用订阅状态检查弹窗
通过修改前端 JavaScript 文件可以屏蔽这个特定弹窗:
编辑前端 JS 文件:
bash
nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
定位弹窗代码:
在文件中搜索关键字Ext.Msg.show({
。你会找到类似下面的代码块:javascript
Ext.Msg.show({ title: gettext('No valid subscription'), // ... 其他参数和函数 ... });
替换/覆盖弹窗函数:
将找到的 整个Ext.Msg.show({ ... });
函数调用 (包括里面的所有内容) 替换为下面这行简单的空函数定义:javascript
Ext.Msg.show = function() {};
📌 重要提示: 这行代码的作用是将
Ext.Msg.show
这个显示消息框的函数替换成一个什么都不做的空函数。它只会屏蔽掉调用这个函数显示的消息框(即订阅提示),不影响界面其他功能。保存并退出编辑器:
按
Ctrl + O
写入文件。按
Enter
确认文件名。按
Ctrl + X
退出nano
。
刷新浏览器:
在访问 PVE Web 界面的浏览器中,按
Ctrl + Shift + R
(Windows/Linux) 或Cmd + Shift + R
(Mac) 强制刷新页面缓存。或者,使用浏览器的 无痕/隐私模式 访问 PVE。
重新登录后,烦人的订阅弹窗应该就消失了!
📝 总结与注意事项
通过上述步骤,你可以轻松解决 PVE 9.0 部署初期最常遇到的两个障碍:
修复
apt update
失败: 通过移除企业订阅源,切换到免费的pve-no-subscription
公共源和 Debian 官方源,确保系统能够正常更新和安装软件包。移除订阅弹窗: 通过修改前端 JS 文件,屏蔽了登录时的“没有有效订阅”提示,让 Web 管理界面更加清爽。
重要提示:
升级或重装: 如果你将来升级 PVE 主版本 (例如从 9.x 升级到 10.x) 或者重新安装系统,以上两个问题的解决方法都需要重新执行一次。因为升级或安装过程会覆盖你的修改。
自动化: 考虑将解决订阅弹窗的步骤(尤其是编辑
proxmoxlib.js
的命令)保存成一个简单的 Shell 脚本。这样在升级后,运行脚本即可快速恢复清爽界面。apt
源配置通常在升级后需要按新版本要求重新检查或调整。免费使用: Proxmox VE 的核心功能对于个人和测试使用是完全免费的。移除订阅提示只是为了改善体验,不意味着解锁付费功能。
希望这篇指南能帮助你顺利部署和使用 Proxmox VE 9.0!