我将docker映像用作自己开发的基础,该开发在其Dockerfile中添加了jessie backports存储库,并使用该存储库安装依赖项。此图像使用以下命令添加存储库:

echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list


问题是,现在从backports存储库中获取软件包失败,并出现以下错误(以前可以正常工作) ):

W: Failed to fetch
http://ftp.debian.org/debian/dists/jessie-backports/main/binary-amd64/Packages
404  Not Found

W: Failed to fetch
http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages
 404  Not Found


我查看了该服务器,但那里确实没有这些路径。 backports网站是否仍然可以使用该特定存储库,并且我没有发现任何迹象表明已弃用该存储库或类似的东西。 backports存储库不再可用?如果这不是暂时的问题,那么在不升级到较新的Debian稳定版的情况下,我必须使用哪些选项来使用此版本或等效的存储库?

评论

另请参见unix.stackexchange.com/questions/2544/…

这与超级用户的debian中的apt-get更新失败基本相同。

我无法在此处添加答案。对我来说,我必须更改“ /etc/apt/sources.list.d/backports.list”文件。将“ deb cloudfront.debian.net/debian jessie-backports main”行更改为“ deb archive.debian.org/debian jessie-backports main”

#1 楼

Wheezy和Jessie最近从镜像网络中删除,因此,如果要继续获取Jessie反向端口,则需要改用archive.debian.org

deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main


(有效性检查被禁用,因为该存储库不再更新。Jessie的apt不支持check-valid-until标志,有关详细信息,请参见inostia的答案,并且在此答案中进一步进行配置摘要。)

已删除:所有更新已与主存储库合并,并且不会再有其他非安全更新。因此,需要删除对jessie-updatesjessie-updates文件中的sources.list的所有引用。在2020年6月30日之前,将继续在LTS支持的体系结构上的安全性存储库中提供安全更新。

由于您正在构建容器映像,因此我强烈建议在Debian 9的基础上构建它。 (拉伸)。要继续使用Debian 8(Jessie),您的存储库应该看起来像

deb http://cdn-fastly.deb.debian.org/debian/ jessie main
deb-src http://cdn-fastly.deb.debian.org/debian/ jessie main

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

deb http://archive.debian.org/debian jessie-backports main
deb-src http://archive.debian.org/debian jessie-backports main


(没有sources.list.d存储库)。

ll还需要在jessie-updates中禁用有效性检查(这将适用于所有存储库):

Acquire::Check-Valid-Until "false";


评论


抱歉,我的回答可能还不是很清楚。我给的那条线只用于反向移植。 jessie-updates不再存在,因此您应该将其全部删除,并且Jessie安全更新仍在security.debian.org上。

–斯蒂芬·基特(Stephen Kitt)
19 Mar 26 '19在15:15

@不,安全更新是在security.debian.org上提供的,而不是通过反向移植或更新提供的。不会再有非LTS稳定的更新,因此jessie-updates在主镜像网络上不再有用,并且也将不再有任何反向端口,因此jessie-backport也是如此。

–斯蒂芬·基特(Stephen Kitt)
19 Mar 26 '19在15:57

不适合我:```E:archive.debian.org/debian/dists/jessie-backports/InRelease的发行文件已过期(自34d 20h 7min 12s起无效)。此存储库的更新将不会应用。 ```

– Avi Kivity
19 Mar 26 '19在16:34

已经发现,后续的apt命令似乎也需要-o Acquire :: Check-Valid-Until = false(每个unix.stackexchange.com/a/45973/186565),以避免到期错误。

–住光
19 Mar 26 '19 at 21:01

@sumitsu谢谢,在apt.conf中设置也应该起作用(请参阅我的更新)。

–斯蒂芬·基特(Stephen Kitt)
19年3月26日在22:39

#2 楼

在尝试了@inostia和@Stephen Kitt建议的解决方案之后,我仍然遇到以下错误:

deb http://deb.debian.org/debian jessie-updates main

我在Dockerfile中得到了以下代码片段:

W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages  404  Not Found

E: Some index files failed to download. They have been ignored, or old ones used instead.


评论


我不得不柚木sed部分,因为在我的情况下,docker映像(postgres)使用的是httpredir.debian.org而不是deb.debian.org。

–harrybvp
19 Mar 27 '19在22:19



这是您的sed命令的更新版本,它为我解决了问题:sed -i'/ deb http:\ / \ / \(deb \ | httpredir \)。debian.org \ / debian jessie。* main / d' /etc/apt/sources.list

–speedplane
19 Mar 29 '19在0:26



有没有秒杀解决方案?如果不建议使用存储库,那么在哪里可以获取必要扩展的新存储库?

– zhartaunik
19 Mar 30 '19在5:29

这是对我有用的最后一句话:RUN echo“ deb [check-valid-until = no] cdn-fastly.deb.debian.org/debian jessie main”> /etc/apt/sources.list.d/jessie .list RUN echo“ deb [check-valid-until = no] archive.debian.org/debian jessie-backports main”> /etc/apt/sources.list.d/jessie-backports.list RUN sed -i'/ deb http:\ / \ /(deb \ | httpredir).debian.org \ / debian jessie。* main / d'/etc/apt/sources.list运行apt-get -o Acquire :: Check-Valid-Until =错误的更新RUN echo'Acquire :: Check-Valid-Until“ false”;' > /etc/apt/apt.conf

– Yehor
19年4月12日在14:04

这对我有用,任何后续的apt-get更新都应具有-o Acquire :: Check-Valid-Until = false选项。在我的情况下,我正在使用RUN dpkg -i couchbase-release-1.0-4-amd64.deb然后再运行apt-get -o Acquire :: Check-Valid-Until = false update && \ apt-get -y install libcouchbase-dev && \ rm -rf / var / lib / apt / lists / *

–拉文·比姆辛格(Raveen Beemsingh)
19年4月19日在8:18



#3 楼

这发生在我预配使用Debian“ Jessie”的Vagrant盒中。

按照斯蒂芬·基特(Stephen Kitt)的回答,切换到archive.debian.org为我工作,但我必须将其添加到/etc/apt/sources.list.d/jessie-backports.list而不是/etc/apt/sources.list

我添加了以下内容行到provision.sh

echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list


然后我也遇到了运行apt-get update的安全错误。在本地镜像上,此错误已修复:

apt-get -o Acquire::Check-Valid-Until=false update


或者,要永久禁用检查,请将其添加到provision.sh

echo "Acquire::Check-Valid-Until \"false\";" > /etc/apt/apt.conf.d/100disablechecks


然后您可以运行所有不带apt标志的-o命令。

评论


禁用适用于所有存储库的有效性检查是否危险?

–马克西姆·拉法里(Maxime Lafarie)
19年8月13日在14:33

更好的解决方案:更新您的VM

–inostia
19年11月11日在9:55

另外,请勿在生产中使用此功能。我只是在开发环境中这样做。

–inostia
19年11月11日上午10:05

#4 楼

对于那些使用带有较旧docker镜像基础的NodeJS的用户。我有一些冻结的映像,这些映像具有这些较旧的源,用于编译额外的库。最近24小时),因为它在docker构建期间无法提供依赖关系。 (同样来自今天的archive.debian.org位置)

解决方案:我最终切换到该节点的最新容器版本(已预先安装了python库),并进行了更新包json中的一些库(现在也包括以前想要pythyon的二进制库)使问题变得过时了。成为解决问题的最直接方法。

注意带有二进制依赖性的陈旧图像栈,它们可能需要一段时间来更新核心OS层。

评论


嗨,格伦,感谢您的发帖。我认为我在dockerfile中遇到了同样的问题,因为我有“运行apt-get更新-y && apt-get安装主管python python-dev curl -y --force-yes”。我正在使用FROM节点:6.11.2,该怎么办才能克服这个问题?

–亚伦
19年4月2日在9:07

对于Docker Node映像,替代方法是使用-stretch映像:node: -stretch

–lukeaus
19年4月9日在5:15



#5 楼

如果仍然无法解决任何问题,请显示以下错误消息:

Unable to correct missing packages.
WARNING: The following packages cannot be authenticated!
W: GPG error
W: An error occurred during the signature verification.
Updates for this repository will not be applied.
E: Failed to fetch
E: Aborting install 


请考虑进行全面发行升级并清理源列表以保存计算机。这些笔记只需几分钟,但最糟糕的是。

首先访问/etc/apt/sources.list.d/,然后删除所有内容。 (执行备份)。

编辑/etc/apt/sources.list,仅保留以下行:

deb http://ftp.us.debian.org/debian stable main contrib 


然后以root身份运行: br />
aptitude update
aptitude full-upgrade


确认各种消息。然后尝试:

sudo apt update


应该不会出现任何错误,只需确认:在这些情况下,如果一次使用某些冲突,则可以解决各种冲突:

Reading package lists... Done


其他可能的错误:

要解决此问题,请导入指定的公钥:

sudo aptitude -y install packagename otherpackagename


您可能会遇到一条非常罕见的消息! >
W: There is no public key available for the following key IDs:
*648ACFXXXXX2FAB138*


您可能会遇到旧内核和libc的问题: 。始终使用最新的LTS。


https://www.debian.org/doc/manuals/debian-faq/ch-uptodate.en.html

https://askubuntu.com/questions/364404/e-unable-to-fetch-some-archives-maybe-run-apt-get-update-or-try-with-fix-mis

https://askubuntu.com/questions/766883/there-is-no-public-key-available-for-the-following-key-ids-1397bc53640db551