Debian stretch软件库 404 未找到
今天,当我运行apt-get update
时,我开始收到这些错误信息。
404 Not Found
E: The repository 'http://security.debian.org stretch/updates Release' does no longer have a Release file.
你知道什么可能是它的原因吗?
我已经更新了来源:
deb http://security.debian.org/ stretch/updates main
为
deb http://security.debian.org/ stretch/updates main contrib non-free
但我一直得到同样的错误
archive.debian.org
lists.debian.org/debian-devel-announce/2023/03/msg00006.html。
- Luis Herrera 2023-04-24
对于docker用户来说,以下是你必须做的事情:
#Update stretch repositories
RUN sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list
RUN sed -i 's|security.debian.org|archive.debian.org/|g' /etc/apt/sources.list
RUN sed -i '/stretch-updates/d' /etc/apt/sources.list
apt-get update
和apt-get upgrade
命令花了大约1.5小时。你也是这么慢吗?
- Jordy 2023-04-26
好了,经过进一步的研究,我发现Debian将stretch 套件导入了archive.debian.org
,根据https://lists.debian.org/debian-devel-announce/2023/03/msg00006.html。
因此,我通过更换来源来解决这个问题:
deb.debian.org
到archive.debian.org
security.debian.org
到archive.debian.org/debian-security/
并删除源码stretch-updates
,因为它在存档的源码中是不可用的:Debian Stretch archive
命令:
我使用了这些bash命令来进行替换:
将 deb.debian.org 替换为 archive.debian.org:
sudo sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list
用archive.debian.org/debian-security/替换security.debian.org:
sudo sed -i 's|security.debian.org|archive.debian.org/debian-security/|g' /etc/apt/sources.list
移除包含源码stretch-updates的行:
sudo sed -i '/stretch-updates/d' /etc/apt/sources.list
在我的案例中,通过在docker文件中使用较新的NodeJS基础镜像,问题已经得到了解决,如下所示。
我们有了:
FROM node:14.18.3-slim
在dockerfile中,但我把它改成了:
FROM node:14-slim
我建议把它提升到最新的版本,Node:18-slim for NodeJs,并为你使用的技术栈找到最新的版本。
你可以添加这个来进行更新:
deb http://archive.debian.org/debian stretch-proposed-updates main
我遇到了同样的问题,导致buildx失败,因为在我的案例中,它试图构建docker镜像。
在我的Docker文件中替换了以下一行,就解决了这个问题:
RUN add-apt-repository "deb http://http.us.debian.org/debian stretch main contrib non-free"
用下面这行:
RUN add-apt-repository "deb http://archive.debian.org/debian/ stretch main contrib non-free"
我必须在我的docker文件中替换下面这一行:
RUN sed -i '/jessie-updates/d' /etc/apt/sources.list
为:
RUN sed -i '/stretch-updates/d' /etc/apt/sources.list
以使其再次运行。
这对我来说是可行的:
RUN sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list
RUN sed -i 's|security.debian.org|archive.debian.org|g' /etc/apt/sources.list
RUN sed -i '/stretch-updates/d' /etc/apt/sources.list