我想升级我的 Debian 系统,但被告知我需要先更新现有的存储库 (Stretch),然后再执行此操作。不幸的是,这不起作用,因为拉伸已经存档,所以我的sources.list不起作用。我尝试了各种线路组合,试图使更新工作失败。关于同一主题的其他帖子仅提供有关sources.list 中必要行的零碎信息。有人可以告诉我要使用的确切线路吗?以下是我所拥有的内容和报告的错误:
deb http://security.debian.org/debian-securitystretch/updates main deb-src http://archive.debian.org/debian-securitystretch/updates 主要贡献非免费 deb http://archive.debian.org/debianstretch-updates 主要贡献非免费 deb-src http://archive.debian.org/debianstretch-updates 主要贡献非免费
错误:
W:存储库“http://security.debian.org/debian-securitystretch/updatesRelease”没有发布文件。 N:来自此类存储库的数据无法进行身份验证,因此使用时存在潜在危险。 N:有关存储库创建和用户配置详细信息,请参阅 apt-secure(8) 联机帮助页。 E:存储库“http://deb.debian.org/debianstretchRelease”不再有发布文件。 N:从这样的存储库更新无法安全地完成,因此默认情况下被禁用。
答案1
根据错误信息,问题出在两行不是指的是archive.debian.org
.
第一个问题行:
deb http://security.debian.org/debian-security stretch/updates main
自从对 Debian Stretch 的定期安全支持结束2020 年 7 月 18 日。甚至长期支持也在 2022 年 6 月底结束,你现在应该注释掉这一行:当您仍在运行 Debian Stretch 时,它没有进一步的用途,但是一旦您升级到较新的主要版本(两次),它就可以取消注释并更新以指向该版本的安全更新存储库。
要接收 Stretch 9.13 最新版本中未合并的任何安全更新,您应该添加以下行:
deb [trusted=yes] http://archive.debian.org/debian-security stretch/updates main
您可能需要[trusted=yes]
在 archive.debian.org 中添加任何引用 Stretch 的行,因为用于签署 Stretch 包的 GPG 密钥现在很可能都已过期。添加该内容应该会将有关过期密钥的错误消息更改为警告,并允许您继续更新。
根据错误消息的第二个问题行在您的sources.list
代码片段中不可见,但我可以推断它可能是:
deb http://deb.debian.org/debian stretch main contrib non-free
该行可能位于目录中的文件之一中/etc/apt/sources.list.d/
。你应该将其更改为:
deb [trusted=yes] http://archive.debian.org/debian stretch main contrib non-free
deb
您的代码片段中的行涵盖sources.list
了安全性和其他更新,但不是主要发布内容;这条线将涵盖这一点。
如果您不需要*.deb
从源代码构建任何包,则可以注释掉这些deb-src
行。
请记住,不支持跳过主要版本,因此一旦您完全更新到 Stretch 9.13,您应该对 Debian 10“Buster”进行重大升级,直到今年 6 月底,它仍然具有长期支持年。如果/执行升级时,请记住注意发行说明中的升级说明。
从那时起,下一步应该是 Debian 11“Bullseye”,它是当前版本oldstable
,直到今年 7 月底仍然提供定期安全支持,并在此后两年提供长期支持。
答案2
您需要的线路是
deb http://archive.debian.org/debian stretch main
deb http://archive.debian.org/debian-security stretch/updates main
如果您需要contrib
和non-free
,请将它们添加到两行的末尾。