我使用了两者testing
,buster
我猜sid
在我的/etc/apt/sources.list
文件中出于过去的原因,我把我的 Debian 变成了弗兰肯德比安。据我在网上搜索,没有办法恢复它,所以我从头开始重新安装了Debian。
有没有一种行之有效的方法可以防止我将来再犯这样的错误(!)?例如,sources.list
在更新或安装之前首先检查以确保不存在混合版本条目的触发器?
答案1
sources.list
只能手动修改。
曾几何时buster
是该套件的代号testing
。如果您是buster
在这段时间安装的,您可能会将testing
/buster
视为等效项并任意使用其中之一。然而,当buster
成为stable
、 和testing
成为时bullseye
,你就会看到它们的分歧。
我见过人们犯过同样的错误,混淆了stable
套件和stretch
代号。只要stretch
是,此功能就有效stable
,但一旦转换发生,任何带有 的源都会stable
自动升级到buster
,而任何带有 的源stretch
仍保持相同版本。
以下是有关何时使用代号和套件的一些建议:
- 始终使用代号(即
buster
)而不是stable
。使用稳定分布的要点是apt upgrade
没有风险。如果你使用stable
,那么每隔大约 2 年你就会得到一个惊喜。 - 如果您想要滚动分发,请使用
testing
.有一些每次你都会冒风险apt upgrade
,但你不会受到发布周期的影响(一些更新可能会在冻结期间延迟)。 - 如果您正在预览下一个版本(即 Debian 11 bullseye),请使用代号
bullseye
。您将处于滚动周期(如测试),直到该代号发布。那你就稳定了。在我的组织中,我们使用稳定版,但我总是有一些机器与下一个版本挂钩,这样我们升级时就不会感到意外。
如果你真的想保护自己(也许你的sudoers
机器上有几个),有几个选择:
- apt.conf:
/etc/apt.conf.d/00local
添加:
APT::Default-Release "buster";
man apt.conf
将此描述为:
如果有多个版本可用,则安装软件包的默认版本。包含发行名称、代号或发行版本。示例:“稳定”、“测试”、“不稳定”、“破坏者”、“靶心”、“4.0”、“5.0*”。
- 固定:我不会在这里详细介绍,但固定是强制特定包的特定版本的一种非常明确的方法。它真的会搞乱系统。
man apt_preferences
详情请参阅。
答案2
虽然没有设置可以阻止更新,具体取决于sources.list
.您可以使用易于固定控制如何从多个源选择包的行为,包括强制不从特定源安装包。
Apt 固定允许您根据包的名称、源包名称、版本或要从中安装包的源存储库的属性来设置包的优先级。查看当前全局的优先运行情况apt-cache policy
。
例如,当放入以下内容时,/etc/apt/prefereneces/00default-release
将导致来自buster、buster-updates 和buster-security 的软件包成为首选,来自buster-backports 和非Debian 源的软件包将具有其正常行为。最后,如果 Debian 源中的任何其他软件包已安装且无法从其他源获取,则这些软件包将是可卸载和删除的。
Package: *
Pin: release n=buster,o=Debian
Pin-Priority: 990
Package: *
Pin: release n=buster-updates,o=Debian
Pin-Priority: 990
Package: *
Pin: release o=Debian
Pin-Priority: -10
当 Bullseye 发布时,您将编辑源代码,然后编辑该文件以在升级之前buster
更改为该文件。bullseye
我目前正在使用 bullseye 并配置了以下 apt pinning。它优先考虑来自 Debian 的 bullseye 软件包,其次是来自第三方来源的 bullseye 软件包,然后是来自 Debian 的除实验性软件包之外的任何其他软件包。最后,所有其他包的默认优先级为 500,随后是实验性的,默认优先级为 1。
Package: *
Pin: release n=bullseye,o=Debian
Pin-Priority: 990
Package: *
Pin: release n=bullseye
Pin-Priority: 900
Package: *
Pin: release a=experimental
Pin-Priority: 1
Package: *
Pin: release o=Debian
Pin-Priority: 600
最后,我不使用 APT::Default-Release 的原因是因为固定可以提供更多控制。APT::Default-Release "buster";
只是以下 apt pinning 条目的快捷方式。
Package: *
Pin: release n=buster
Pin-Priority: 990