You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

apt-get仓库移除旧版本包文件引发404是否属于常见操作?

apt-get仓库移除旧版本包文件引发404是否属于常见操作?

嘿,这个问题其实挺常见的,尤其是针对那些已经停止维护的旧发行版或者第三方软件源!

首先得说清楚,你提到的npm、PyPI和Debian/apt这类Linux发行版仓库的维护策略完全不一样:

  • npm和PyPI确实会尽可能永久保留旧版本包,毕竟开发者生态里经常需要固定依赖特定旧版本,历史版本的可获取性是很重要的。
  • 但Debian这类发行版的仓库逻辑不同,当一个发行版进入**EOL(End of Life,停止支持)**状态后,官方会把对应的软件源迁移到归档仓库,不再在原地址提供服务;第三方源(比如你遇到的PostgreSQL官方源)更是如此,他们通常只维护当前和几个最近的发行版,对于已经EOL的旧发行版,会直接移除对应的源目录,不再提供包索引更新。

回到你的具体案例:你用的docker run --rm -it postgres:10 bash这个镜像基于Debian 9(Stretch),而Debian 9早就已经完全停止支持了。PostgreSQL的官方源也不再为Stretch版本提供服务,所以当你执行apt-get update时,请求相关路径就会返回404。

如果还需要继续使用这个旧镜像,有几个临时解决办法:

  • 替换Debian官方源:把/etc/apt/sources.list里的deb.debian.org替换成archive.debian.org,这样能从归档仓库获取旧版本的包索引。
  • 调整PostgreSQL源:要么直接移除这个源(编辑/etc/apt/sources.list.d/pgdg.list删除对应条目),要么如果确实需要PostgreSQL的旧版本包,可以找找有没有第三方归档的源(不过更推荐升级到受支持的版本)。

总的来说,这种移除旧版本源的操作在Linux发行版生态里是常规操作——维护旧版本的成本很高,而且EOL的系统本身存在安全隐患,官方和第三方都会逐步停止对它们的支持。这和npm/PyPI面向开发者的长期可获取需求的策略完全不同。

备注:内容来源于stack exchange,提问作者Pedro A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:34:28