apt update
时出现 404 Not Found
错误,特别是针对 security.debian.org bullseye/updates
当我尝试更新系统软件包列表时,看到类似以下的错误输出:
Ign:1 http://security.debian.org bullseye/updates InRelease
Get:2 http://deb.debian.org/debian bullseye InRelease [116 kB]
Err:3 http://security.debian.org bullseye/updates Release
404 Not Found [IP: 151.101.130.132 80]
...
E: The repository 'http://security.debian.org bullseye/updates Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
http://security.debian.org bullseye/updates Release
返回了 404 Not Found
错误,这表示 apt
Debian 11 (Bullseye) 的常规安全支持已经于 2024 年 8 月 14 日结束。
Debian 的发布周期通常分为几个阶段:
-
常规支持期 (Regular Support):由 Debian 安全团队提供全面的安全更新,通常持续三年。
-
长期支持期 (LTS - Long Term Support):在常规支持期结束后,由 Debian LTS 团队接管,额外提供两年的支持,主要针对关键安全问题和重要错误修复。
-
扩展长期支持期 (ELTS - Extended Long Term Support):这是由第三方公司提供的商业服务,可以进一步延长支持时间。
由于 Debian 11 的常规支持期已经结束,原先指向 http://security.debian.org/bullseye/updates
的安全更新源不再活跃或提供文件。现在,Debian 11 的安全更新已经迁移到 LTS 仓库。而我仍旧尝试从一个不再提供更新的旧地址获取安全补丁,从而导致 404
sources.list
文件,将安全更新的源指向 Debian 11 的 LTS 仓库。但是,由于我的系统是由 cloud-init
管理的,直接修改 /etc/apt/sources.list
可能会在系统重启或重新打包时被覆盖。不过,sources.list
文件开头明确指出了处理 cloud-init
## Note, this file is written by cloud-init on first boot of an instance
## modifications made here will not survive a re-bundle.
## if you wish to make changes you can:
## a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg
## or do the same in user-data
## b.) add sources in /etc/apt/sources.list.d
## c.) make changes to template file /etc/cloud/templates/sources.list.debian.tmpl
我采用的是b方案。
debian-security-lts.list
的新文件,并将其放置在 /etc/apt/sources.list.d/
sudo sh -c 'echo "deb http://security.debian.org/debian-security bullseye-security main contrib non-free" > /etc/apt/sources.list.d/debian-security-lts.list'
sudo sh -c 'echo "deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free" >> /etc/apt/sources.list.d/debian-security-lts.list'
-
: 这是 Debian 11 (Bullseye) LTS 安全更新的官方推荐地址。它包含了主要的、贡献的和非自由的软件包。
deb-src ...
sources.list
/etc/apt/sources.list
中指向旧的 bullseye/updates
sudo sed -i 's/^deb http:\/\/security\.debian\.org\/ bullseye\/updates main/#deb http:\/\/security\.debian\.org\/ bullseye\/updates main/' /etc/apt/sources.list
sudo sed -i 's/^deb-src http:\/\/security\.debian\.org\/ bullseye\/updates main/#deb-src http:\/\/security\.debian\.org\/ bullseye\/updates main/' /etc/apt/sources.list
现在,安全仓库已正确配置,可以刷新软件包列表了。
sudo apt update
404 Not Found
错误,并且 apt
能够成功地从新的 LTS 仓库获取信息。
声明:本文为原创文章,版权归深谋之道所有,欢迎分享本文,转载请保留出处!