如何将 Debian 从测试版恢复为稳定版?

use*_*se3 4 debian upgrade testing

我有一台不常使用的 PC。就像半年前一样,有人将其存储库从稳定更改为测试和更新/升级。之后没有人更新或升级。我可以/etc/apt/sources.list全部变回稳定状态并做一个

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
Run Code Online (Sandbox Code Playgroud)

或者我会面临一些错误?

Ste*_*itt 5

如果您通过将“testing”替换为“stable”来切换回stable,则不会出现任何错误,但是您几乎会停留在当前拥有的任何版本的软件包中,至少那些升级到“测试”版本:它们都比Debian 9中的相应版本更新,并且apt默认不会降级。

(请注意,您应该在您的 中指定“stretch” sources.list,而不是“stable”;否则您最终会在 Debian 10 发布后立即升级到它,而不是在您选择这样做时。)

如果您想完全恢复到 Debian 9,您需要降级您的软件包。您可以通过调查升级的软件包来手动执行此操作:

apt list --installed | grep /testing
Run Code Online (Sandbox Code Playgroud)

或者

apt list --installed | grep /now
Run Code Online (Sandbox Code Playgroud)

会告诉你它们是什么。(/testing如果您sources.list仍然包含“测试”,该/now变体将起作用,否则该变体将起作用。)

或者你可以“自动”完成,将“拉伸”固定到 1001;将以下内容添加到 中/etc/apt/preferences,必要时创建它:

Package: *
Pin: release n=stretch
Pin-Priority: 1001
Run Code Online (Sandbox Code Playgroud)

然后apt dist-upgrade将尝试将所有合适的软件包降级到它们的 Debian 9 版本。请注意,这是未经测试且不受支持的(通常不支持降级),因此apt请在继续之前密切注意将要执行的操作。

您可以通过添加 Stretch 向后移植来减少所有这些工作所涉及的工作量,因为它具有一些与测试中的软件包更接近的版本;添加

deb http://http.debian.net/debian stretch-backports main
Run Code Online (Sandbox Code Playgroud)

到您的sources.list.