Як вирішити проблему "Випуск файлу минув" на локальному дзеркалі


59

У мене є місцеве дзеркало (створене за допомогою 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, то зміна дзеркала - це правильне рішення. Якщо ваша мета - скористатися старішим дзеркалом, яке у вас є на місцевому рівні, щоб ви могли продовжувати свою роботу там, де Інтернет недоступний чи дорогий, то вимкнення перевірки на термін дії є правильним рішенням. Якщо ваша мета - оновити конкретну старішу версію репо з причин триаги помилок, то знову вимкнення перевірки терміну дії є правильним рішенням.
підключення

Дійсно, я дійшов до цього повідомлення під час використання архіву Debian для системи Debian Wheezy, яку неможливо оновити.
JucaPirama

Відповіді:


98

Додайте це до команди:

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

Наприклад:

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

11
Це спрацювало, але деякі пояснення, чому це було, було б корисним.
Faheem Mitha

4
Це вимикає чек, який підтверджує термін дії цифрових підписів, що минув, тому apt також приймає старі та закінчені терміни випуску.
посмішка

6
Попередження про безпеку: ця відповідь є вирішенням проблеми (за запитом). Однак краще зафіксувати дзеркало або вказати на робоче. Я змінив на httpredir.debian.org/debian, і він знову почав працювати.
ctrl-alt-delor

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

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 ще раз, щоб перевірити, чи є зміни в сховищі. Однією із змін буде файл випуску, і ви отримаєте нову дійсність для нього.

Ви можете легко автоматизувати це за допомогою запису "Кронтаб".


Дякую за це. Я повинен був заглянути в цей файл, перш ніж запитати. Цікаво, але це нова річ? Це не було раніше (але одного разу).
thepang

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

3

Деякі з дзеркал там можуть мати застарілі файли. Це трапилось зі мною недавно, і він також був пов'язаний із сервером кешування, який я використовую (apt-cacher-ng), який намагається зберегти пропускну здатність, перенаправляючи сховища для одного архіву до однієї сутності (у моєму випадку, якщо це було Угорське дзеркало). Наприклад, прямі оновлення через німецьке дзеркало спрацювали нормально. Спробуйте змінити дзеркало, яке ви використовуєте. Якщо ви використовуєте apt-cacher-ng, вам потрібно буде зробити щось у рядку зміни вмісту наступного файлу:

  • / etc / apt-cacher-ng / backends_debian
  • / і т.д. / apt-cacher-ng / backends_debvol

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


Зауважте, що я просив вирішити питання, а не чому це сталося (хоча гарна відповідь). У цьому випадку я, свідомо, мав чергове сховище.
thepang

3

Це також може статися, якщо дата / час вашої системи неправильні. Я виправив це, виправляючи місцевий час перед оновленням.


@AnthonyGeoghegan Це для мене. Це єдине, що працювало врешті-решт.
Мартін Всетічка

1
@MartinVseticka Ви маєте рацію. Я зробив цей коментар, коли натрапив на цю відповідь в одній із черг оглядів після того, як система позначила її для модерації. Оригінальне формулювання (до того, як його редагував Майкл) було набагато менш корисним.
Ентоні Г - справедливість для Моніки

1

Не впевнений, пов’язаний він із поточним випуском Jessie ( 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

Це працює для мене :)


0

Я зняв /var/lib/apt/*і повторно apt-get update, і це працює!


Я роблю це для зовсім іншої помилки, і вона працює для цієї. Ця помилка абсолютно не має значення.
січ

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.