在 debian(或 raspbian)上,有时“测试”缺少软件包或依赖项,因为它仍在开发中,这与“稳定”不同,通常一切都是超级兼容/稳定的。
作为过去的解决方法,我短暂地切换回“稳定”以安装“测试”下不可用的某些缺失的东西,然后切换回源。
为什么不一直启用它们(两者)?安装/升级时除了可能不兼容之外还有其他缺点吗?
Debian 示例:
deb https://deb.debian.org/debian/ stable main contrib non-free non-free-firmware
deb https://deb.debian.org/debian/ stable-updates main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security stable-security/updates main contrib non-free non-free-firmware
deb https://deb.debian.org/debian/ testing main contrib non-free non-free-firmware
deb https://deb.debian.org/debian/ testing-updates main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security testing-security/updates main contrib non-free non-free-firmware
树莓派示例:
deb [ arch=armhf ] https://raspbian.raspberrypi.com/raspbian/ bookworm main contrib non-free rpi
deb [ arch=armhf ] https://raspbian.raspberrypi.com/raspbian/ testing main contrib non-free rpi
附:
通常全新安装的功能是不带 tls 的“http”,因此不是“https”。为什么是这样?
答案1
如果您正在跟踪测试,那么始终启用以前的稳定存储库与根据需要启用它之间没有太大的实际区别:
- 默认情况下禁用降级,因此稳定包永远不会成为测试包的“升级”候选者(换句话说,
apt upgrade
是安全的); - 如果测试中不存在该软件包,则软件包安装可能会从稳定版中选择一个软件包;因为无论如何在这种情况下您都会启用 stable,所以最终结果是相同的,只是您在安装之前可能没有注意到正在从 stable 安装软件包。
真正的问题就变成了是否建议运行一个混合了稳定版和测试版软件包的系统。这是皱起眉头(但混合测试和不稳定不是)。特别是,您面临安装来自稳定版本的软件包的风险,该软件包已从测试中删除,因为已知它会导致当前测试状态出现问题;有时会发生这种情况,尤其是在重大过渡期间,并且由不稳定的软件包的较新版本修复。然而,由于您正在跟踪测试,所以理想情况下您也关注 Debian 下一版本的开发(通过遵循debian-devel
,现在不是很忙);通常会在那里讨论此类转变(有时不是提前,而是在有人注意到出现问题后不久)。
最终,当测试中缺少软件包时,是否从稳定版安装软件包取决于您。如果软件包仍在积极维护中,等待几天通常意味着修复版本可用。如果不是,或者它已被删除,您需要弄清楚为什么它不在测试中,并确定这是否对稳定的包有任何影响。你可以看看包裹追踪器来查找相关信息。
(我使用混合存储库,但我不是一个很好的例子,因为我比大多数人更熟悉 Debian 依赖问题。)
就纯文本 HTTP 与 TLS 而言,Debian 默认配置为不是使用 TLS 的原因是它没有添加任何特别有价值的东西:通过其他方式保证包的完整性(带外),并且 TLS 在与存储库交互时不提供机密性(每次下载的大小足以准确地确定您正在下载的内容)。 TLS 具有不可忽略的成本,无论是在镜像上的 CPU 方面,还是因为它限制了缓存的使用。
1 这可能看起来不公平,但是虽然稳定版本确实应该可以使用,而无需关注软件包安装和升级(IEDebian 试图不辜负用户可以盲目信任其稳定版本的期望),测试主要是下一个版本的开发,并且希望用户更加关注。