Как обойти проблему «Выпуск файла истек» на локальном зеркале


61

У меня есть локальное зеркало (созданное с помощью debmirror), и когда я запускаюсь apt-get updateчерез несколько дней, я получаю это:

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

Как мне обойти это?


4
Предупреждение безопасности: этот вопрос требует обходного пути. Однако лучше починить зеркало или указать на рабочее. Я переключился на httpredir.debian.org/debian, и он снова начал работать.
Ctrl-Alt-Delor

Переключитесь на другое зеркало, и оно будет работать.
Патрик Мутвири

2
Что «лучше», зависит от ваших целей. Если ваша цель - получить последние пакеты от Debian, то замена зеркала - правильное решение. Если ваша цель состоит в том, чтобы использовать старое зеркало, которое у вас есть локально, чтобы вы могли продолжить свою работу, где Интернет недоступен или дорог, тогда отключение проверки истечения срока действия является правильным решением. Если ваша цель состоит в том, чтобы обновить определенную более старую версию репозитория по причинам сортировки ошибок, то снова отключение проверки срока действия является правильным решением.
plugwash

Действительно, я получил это сообщение, когда использовал Debian Archive для системы Debian Wheezy, которую невозможно обновить.
JucaPirama

Ответы:


99

Добавьте это к команде:

-o Acquire::Check-Valid-Until=false

Например:

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

11
Это сработало, но какое-то объяснение, почему это так, было бы полезно.
Фахим Митха

4
Это деактивирует проверку, которая проверяет просроченные цифровые подписи, поэтому apt также будет принимать старые и просроченные ключи выпуска.
усмехается

6
Предупреждение о безопасности: Этот ответ - обходной путь (как и просили). Однако лучше починить зеркало или указать на рабочее. Я переключился на httpredir.debian.org/debian, и он снова начал работать.
Ctrl-Alt-Delor

3
Вы не можете легко переключаться на уже устаревшие выпуски, такие как, скажем, debian 6, где вам нужно использовать archives.debian.org, чтобы получить какие-либо пакеты сейчас
Marcin Orlowski

Не работает с Raspbian 10.
Яник Рошон

35

Если вам не нужна эта проверка, независимо от того, для какого зеркала, просто создайте файл /etc/apt/apt.conf.d/(например, назовите его 10no--check-valid-until) и поместите параметр прямо там:

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

После этого вы никогда больше не будете обеспокоены упомянутым предупреждением.


1
Хотя сам обходной путь не является оптимальным решением, у меня есть блок разработки, который меня не волнует, так что это раздражение просто мешает мне. Я смог использовать этот ответ с Ansible, так как не могу найти способ добавить принятый ответ в модуль действия при использовании ansible_pkg_mgr.
jia103

1
одна команда:echo "Acquire::Check-Valid-Until false;" | tee -a /etc/apt/apt.conf.d/10-nocheckvalid
rubo77

11

Файлы релиза имеют допустимую запись до, например, Valid-Until: Thu, 07 Oct 2010 08:17:56 UTC

Если файл релиза больше не действителен, вы должны снова запустить debmirror, чтобы проверить, есть ли какие-либо изменения в хранилище. Одним из изменений будет файл релиза, и вы получите новый срок его действия.

Вы можете легко автоматизировать это с помощью записи в crontab.


Спасибо за это. Я должен был заглянуть внутрь этого файла, прежде чем спрашивать. Любопытно, хотя, это новая вещь? Это не случилось раньше (но один раз).
Чепанг

В настоящее время я не очень часто использую debian, но, возможно, они просто изменили циклы выпуска файла на более короткую дату ...
echox

3

У некоторых зеркал могут быть устаревшие файлы. Это недавно произошло со мной, и это также было связано с сервером кэширования, который я использую (apt-cacher-ng), который пытается сэкономить пропускную способность, перенаправляя хранилища для одного и того же архива в один объект (в моем случае, если это был Венгерское зеркало). Прямые обновления через немецкое зеркало работали нормально, например. Попробуйте изменить зеркало, которое вы используете. Если вы используете apt-cacher-ng, вам нужно будет что-то сделать в строке изменения содержимого следующего файла:

  • / И т.д. / кв-бинокль-нг / backends_debian
  • / И т.д. / кв-бинокль-нг / backends_debvol

После этого вы должны также перезапустить apt-cacher-ng, чтобы изменения вступили в силу.


Обратите внимание, что я просил обойти, а не почему это происходит (хотя хороший ответ). В этом случае у меня было, сознательно, устаревшее хранилище.
Чепанг

3

Это также может произойти, если ваша системная дата / время неверны. Я исправил это, исправив свое местное время перед обновлением.


@AnthonyGeoghegan Это для меня. Это единственное, что сработало в итоге.
Мартин Всетичка

1
@MartinVseticka Ты прав. Я сделал этот комментарий, когда наткнулся на этот ответ в одной из очередей проверки после того, как система пометила его для модерации. Оригинальная формулировка (до того, как Майкл ее отредактировал) была гораздо менее полезной.
Энтони Дж. - справедливость для Моники

2

Не уверен, связано ли это с текущей проблемой Джесси ( https://lists.debian.org/debian-devel-announce/2019/03/msg00006.html ) или нет. но для тех, кто получил такую ​​же ошибку, даже уже используется

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

и все же произошла та же проблема, можете попробовать это вместо

echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until

Меня устраивает :)


Не работает с Raspbian 10 ....
Яник Рошон

1

Я удалил /var/lib/apt/*и перезапустить apt-get update, и это работает!


Я делаю это для совершенно другой ошибки, и это работает для той. Эта ошибка совершенно не имеет значения.
snetch

Глупая ошибка .... она все еще не работает с Raspbian 10
Yanick Rochon

0

Зеркало не может быть просрочено.

Скорее всего, что-то еще в вашей системе может быть испорчено. Попробуй это:


1) Временно закомментируйте связанные строки из /etc/apt/sources.list, или /etc/apt/source.list.d/*. Например, после того, как я закомментировал следующие две строки, моя ошибка исчезла (вследствие чего эти архивы временно не использовались для перезагрузок):

deb http://security.debian.org/ stretch/updates non-free contrib main
deb http://mirrors.ocf.berkeley.edu/debian/ stretch-updates main contrib non-free

2) Откройте синаптические и перезагрузите, или, возможно sudo apt-get update, также будет работать.

3) Прокомментируйте эти строки обратно.

4) Повторите шаг 2.


Исправлено это для меня. Я предполагаю, что в моем подходящем кеше плохая дата.

Моя проблема возникла после восстановления файловых систем / (root) и / var из снимков btrfs, чтобы помочь устранить возникшую проблему при установке пакета. Точное сообщение об ошибке, которое я получил, было:

Срок действия файла релиза для http://mirrors.ocf.berkeley.edu/debian/dists/stretch-updates/InRelease истек (недействителен с 5d 4h 50min 18s). Обновления для этого хранилища не будут применяться. Срок действия файла релиза для http://security.debian.org/dists/stretch/updates/InRelease истек (недействителен с 2d 2h 52min 43s). Обновления для этого хранилища не будут применяться.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.