无法获取 jessie 向后移植存储库

无法获取 jessie 向后移植存储库

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

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

问题是从向后移植存储库获取包现在失败并出现以下错误(这以前可以正常工作):

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

我查看了该服务器,这些路径确实不存在。

我试图在 Debian backports 网站上弄清楚这个特定的存储库是否仍然可用,但我没有发现任何迹象表明它已被弃用或类似的东西。

这是存储库的临时问题,还是 jessie-backports 存储库不再可用?如果这不是一个临时问题,我必须有哪些选项来使用这个或等效的存储库而不升级到较新的 Debian 稳定版本?

答案1

Wheezy 和 Jessie 最近已从镜像网络中删除,所以如果你想继续获取 Jessie 向后移植,你需要使用archive.debian.org

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

(由于存储库不再更新,因此需要禁用有效性检查。Jessie'sapt不支持该check-valid-until标志,请参阅伊诺斯蒂亚的回答有关详细信息,以及本答案中进一步的配置摘要。)

存储jessie-updates库已被删除:所有更新已与主存储库合并,并且不会有进一步的非安全更新。因此,任何对jessie-updatesinsources.list或文件的引用都sources.list.d需要删除。安全更新将继续提供,在 LTS 支持的架构上,在安全存储库中,直到 2020 年 6 月 30 日。

由于您正在构建容器映像,所以我高度建议改为基于 Debian 9 (Stretch)。为了留在 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

(没有jessie-updates存储库)。

您还需要禁用有效性检查/etc/apt/apt.conf(这将适用于所有存储库):

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

答案2

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

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.

我发现可以通过删除该行deb http://deb.debian.org/debian jessie-updates main来解决该问题/etc/apt/sources.list

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

RUN echo "deb [check-valid-until=no] http://cdn-fastly.deb.debian.org/debian jessie main" > /etc/apt/sources.list.d/jessie.list
RUN echo "deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list
RUN sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
RUN apt-get -o Acquire::Check-Valid-Until=false update

答案3

对于那些使用 NodeJS 和较旧的 docker 镜像基础的人。我有一些冻结的图像,其中包含用于编译额外库的旧源代码。

上下文:如果您想在 docker 构建期间安装 python,则在构建映像期间(过去 24 小时内)会遇到此问题,因为它无法在 docker 构建期间获取依赖项。

我尝试了这篇文章中的存档路径建议,但无法通过 404。 (也来自今天的 archive.debian.org 位置)

解决方案:我最终切换到最新的节点容器版本(已经预装了 python 库),并更新了 json 包中的一些库(现在还包括以前需要 pythyon 的二进制库),使问题变得过时。

最后,更新容器堆栈的基础映像(节点:最新)似乎是解决问题的最直接途径。

警惕包含二进制依赖项的陈旧映像堆栈,它们可能需要一段时间才能更新核心操作系统层。

答案4

如果没有任何效果,请使用包含这些错误的面板:

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 身份运行:

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*

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

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFXXXXX2FAB138

您可能会收到一条非常罕见的消息!

A reboot is required to replace the running dbus-daemon.
Please reboot the system when convenient.

您可能会遇到旧内核和 libc 的问题:

Kernel must be upgraded

This version of the GNU libc requires kernel version 3.2 or later.  Please upgrade your kernel 

不要将这些注释应用于公共服务器。始终追求最后的 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

相关内容