ローカルミラーで「ファイルの期限が切れた」問題を回避する方法


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

別のミラーに切り替えると、動作します。
パトリックMutwiri

2
「より良い」ものは、​​あなたの目標が何であるかに依存します。Debianから最新のパッケージを入手することが目標であれば、ミラーを変更するのが正しい選択です。ローカルにある古いミラーを使用して、インターネットが利用できない、または高価な場所で作業を続けることが目標である場合、有効期限チェックをオフにすることが適切なソリューションです。バグのトリアージの理由でリポジトリの特定の古いバージョンに更新することが目標である場合、再度有効期限チェックをオフにすることが適切なソリューションです。
プラグウォッシュ

実際、更新できないDebian WheezyシステムにDebian Archiveを使用しているときにこのメッセージに到達しました。
JucaPirama

回答:


99

これをコマンドに追加します。

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

例えば:

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

11
これは機能しましたが、なぜ機能したのかについての説明が役立つでしょう。
ファヒームミタ14

4
これにより、期限切れのデジタル署名を検証するチェックが無効になり、aptは古いリリースキーと期限切れのリリースキーも受け入れます。
笑顔

6
セキュリティ警告:この回答は回避策です(要求されたとおり)。ただし、ミラーを修正するか、動作しているミラーをポイントすることをお勧めします。httpredir.debian.org/debianを指すように変更し、再び動作を開始しました。
ctrl-alt-delor

3
あなたは今、すべてのパッケージを取得するためにarchives.debian.org使用する必要があるのdebian 6が言うように、あなたはすでに廃止予定のリリースのために簡単にそれを切り替えることはできません
マルチンOrlowski

35

このチェックを気にしない場合は、どのミラーに関係なく、ファイルを作成し/etc/apt/apt.conf.d/(例:name 10no--check-valid-until)、そこにオプションを直接配置します:

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

この後、上記の警告が再び表示されることはありません。


1
回避策自体は最適な解決策ではありませんが、私は気にしない開発ボックスを持っているので、この迷惑は単に邪魔になります。ansible_pkg_mgrを使用する場合、アクションモジュールに受け入れられた回答を追加する方法が見つからないため、Ansibleでこの回答を使用できました。
jia103

1
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を再度実行して、リポジトリに変更があるかどうかを確認する必要があります。変更の1つはリリースファイルであり、新しい有効性が得られます。

crontabエントリでこれを簡単に自動化できます。


それをありがとう。尋ねる前に、そのファイルの中を見ておくべきでした。不思議なことに、これは新しいことですか?以前は発生しませんでしたが(一度だけ)。
シェパン

私は現時点ではdebianをあまり頻繁に使用していませんが、リリースファイルのサイクルを短い日付に変更しただけかもしれません...
echox

3

そこにあるミラーのいくつかは、古いファイルを持っているかもしれません。これは最近私に起こりましたが、同じアーカイブのリポジトリを単一のエンティティにリダイレクトすることで帯域幅を節約しようとする(apt-cacher-ng)を使用しているキャッシュサーバー(私の場合はハンガリーの鏡)。たとえば、ドイツのミラーを介した直接更新は正常に機能しました。使用しているミラーを変更してみてください。apt-cacher-ngを使用している場合は、次のファイルの内容を変更する行で何かを行う必要があります。

  • / etc / apt-cacher-ng / backends_debian
  • / etc / apt-cacher-ng / backends_debvol

その後、apt-cacher-ngを再起動して、変更を有効にする必要があります。


なぜこれが起こったのかではなく、回避策を求めていたことに注意してください(ただし、良い答えです)。この場合、意図的に古いリポジトリを所有していました。
シェパン

3

これは、システムの日付/時刻が間違っている場合にも発生する可能性があります。更新を行う前に現地時間を修正して修正しました。


@AnthonyGeogheganそれは私のためにそれを行います。これが最後に機能した唯一のものです。
マーティン・フセティカ

1
@MartinVsetickaその通りです。システムがモデレーションのフラグを立てた後、レビューキューの1つでこの答えに出くわしたときに、そのコメントを作成しました。元の文言(Michaelが編集する前)は、あまり役に立ちませんでした。
アンソニーG-モニカの正義

2

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、動作します!


私は完全に異なるエラーに対してそれを行いますが、それはそのエラーに対して機能します。このエラーは完全に無関係です。
17

0

ミラーの有効期限が切れていない可能性があります。

むしろ、システム上の他の何かが台無しになる可能性があります。これを試して:


1)から/etc/apt/sources.list、またはからの関連行を一時的にコメントアウトし/etc/apt/source.list.d/*ます。たとえば、次の2行をコメントアウトすると、エラーがなくなりました(結果として、これらのアーカイブは一時的にリロードに使用されませんでした)。

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を繰り返します。


これを修正しました。私はaptキャッシュに悪い日付が入っていると推測しています。

/(ルート)および/ 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以来無効です)。このリポジトリの更新は適用されません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.