如何解决本地镜像上的“发布文件已过期”问题

tsh*_*ang 86 apt

我有一个本地镜像(用 debmirror 创建),apt-get update几天后运行时,我得到了这个:

E: Release file expired, ignoring file:/home/wena/.repo_bin/dists/sid/Release (invalid since 14h 31min 45s)
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

小智 138

将此添加到命令中:

-o Acquire::Check-Valid-Until=false
Run Code Online (Sandbox Code Playgroud)

例如:

sudo apt-get -o Acquire::Check-Valid-Until=false update
Run Code Online (Sandbox Code Playgroud)

  • 这行得通,但解释一下为什么这样做会很有用。 (14认同)
  • 安全警告:此答案是一种解决方法(按要求)。然而,最好是固定镜子或指向工作的镜子。我改为指向 http://httpredir.debian.org/debian,它又开始工作了。 (8认同)
  • 这会停用验证过期数字签名的检查,因此 apt 也将接受旧的和过期的发布密钥。 (4认同)
  • 对于已经弃用的版本,您无法轻松切换,例如 debian 6,您现在需要使用 archives.debian.org 来获取任何软件包 (4认同)

Jal*_*eks 52

如果你不关心这个检查,不管是哪个镜像,只需在其中创建一个文件/etc/apt/apt.conf.d/(例如命名它10no--check-valid-until)并将选项直接放在那里:

Acquire::Check-Valid-Until "0";
Run Code Online (Sandbox Code Playgroud)

在此之后,您将再也不会被上述警告所困扰。

  • 一个命令:`echo "Acquire::Check-Valid-Until false;" | tee -a /etc/apt/apt.conf.d/10-nocheckvalid ` (3认同)
  • 这对于遗留 Dockerfile 来说非常有用。将此作为 Dockerfile 中的第一行,所有问题都会消失。谢谢 (2认同)

ech*_*hox 12

发布文件有一个有效直到条目,例如 Valid-Until: Thu, 07 Oct 2010 08:17:56 UTC

如果发布文件不再有效,您应该再次运行 debmirror 以检查存储库中是否有任何更改。一个更改将是发布文件,您将获得新的有效性。

您可以使用 crontab 条目轻松自动执行此操作。


小智 8

如果您的系统日期/时间错误,也会发生这种情况。我在更新之前通过更正我的本地时间来修复它。


小智 6

不确定它是否与 Jessie 当前问题(https://lists.debian.org/debian-devel-announce/2019/03/msg00006.html)有关。但对于那些甚至已经使用过的人也有同样的错误

sudo apt-get -o Acquire::Check-Valid-Until=false update
Run Code Online (Sandbox Code Playgroud)

仍然出现同样的问题,可以试试这个

echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
Run Code Online (Sandbox Code Playgroud)

这个对我有用 :)