jessie backportsリポジトリを取得できませんでした


158

Dockerfileにjessie backportsリポジトリを追加し、それを使用して依存関係をインストールする、独自の開発のベースとしてdockerイメージを使用しています。このイメージでは、次のコマンドを使用してリポジトリを追加します。

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バックポートサイトで、この特定のリポジトリを引き続き使用できるかどうかを確認しようとしましたが、これが非推奨またはそのようなものであるという兆候は見当たりませんでした。

これはリポジトリの一時的な問題ですか、それともjessie-backportsリポジトリはもう利用できませんか?そして、これが一時的な問題でない場合、新しいDebian安定版にアップグレードせずにこれまたは同等のリポジトリを使用する必要があるオプションは何ですか?



これは、Super Userのdebianapt-get updateが失敗するのと本質的に同じ質問です。
CVn

回答:


183

WheezyとJessieは最近ミラーネットワークから削除されたため、Jessieバックポートの取得を続けたい場合は、archive.debian.org代わりに以下を使用する必要があります。

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

(リポジトリは更新されなくなっているため、有効性チェックを無効にする必要があります。Jessieaptcheck-valid-untilフラグをサポートしていません。詳細についてはinostiaの回答を参照してください。

jessie-updatesリポジトリは削除されました:すべての更新がメインリポジトリにマージされており、それ以上の非セキュリティアップデートはありません。したがって、jessie-updatesin sources.listまたはsources.list.dfiles への参照は削除する必要があります。セキュリティ更新プログラム、2020年6月30日まで、セキュリティリポジトリでLTSがサポートされているアーキテクチャ上で提供され続けます。

コンテナイメージを構築しているので、代わりにDebian 9(ストレッチ)をベースにすることを強くお勧めします。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";

1
申し訳ありませんが、私の答えはおそらくそれほど明確ではありませんでした。私が与えた回線はバックポート専用です。jessie-updates存在しないため、完全に削除する必要があります。Jessieのセキュリティ更新プログラムはまだ有効ですsecurity.debian.org
スティーブンキット

2
@Ianいいえ、セキュリティ更新プログラムはsecurity.debian.org、バックポートまたは更新プログラムではなく、で提供されます。LTS以外の安定版の更新jessie-updatesはもうないので、メインミラーネットワークではもう役に立ちませんjessie-backports。また、バックポートももうないので、同じことが言えます。
スティーブンキット

5
私のために働いていません: `` `E:archive.debian.org/debian/dists/jessie-backports/InReleaseのリリースファイルは期限切れです(34d 20h 7min 12s以降無効です)。このリポジトリの更新は適用されません。`` `
Avi Kivity

2
期限切れエラーを回避するために、後続のaptコマンドにも-o Acquire::Check-Valid-Until=falseunix.stackexchange.com/a/45973/186565ごとに)必要と思われることがわかりました。
スミツ

2
@sumitsu感謝、設定も機能するapt.confはずです(私の更新を参照)。
スティーブンキット

43

@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

1
私はあなたと同じ問題があり、あなたのスニペットは私のために働いた!
カフェマイク

1
私の場合、dockerイメージ(postgres)はdeb.debian.orgではなくhttpredir.debian.orgを使用していたため、sed部分をチークする必要がありました。
harrybvp

1
ありがとうございました!!!Debian jessieの変更後、Dockerfileの修正に2日間苦労しました。スニペットを貼り付けましたが、すべて正常に機能しています。
wpjmurray

申し訳ありませんが、それでも同じ問題....
user1722245

5
ここにあなたの更新されたバージョンであるsed私のためのトリックをしたコマンドは:sed -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
speedplane

26

これは、Debianの「Jessie」を使用していたVagrantボックスをプロビジョニングすることで起こりました。

Stephen Kittの答えに続いて、archive.debian.orgへの切り替えはうまくいきましたが/etc/apt/sources.list.d/jessie-backports.list、にではなくに追加する必要がありました/etc/apt/sources.list

に次の行を追加しましたprovision.sh

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

その後、セキュリティエラーが発生しましたapt-get update

ローカルミラーでの「ファイルの有効期限が切れた」問題の回避方法に従って、このエラーを修正しました。

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

または、チェックを永続的に無効にするには、これを次に追加しprovision.shます。

echo "Acquire::Check-Valid-Until \"false\";" > /etc/apt/apt.conf.d/100disablechecks

その後apt-oフラグなしですべてのコマンドを実行できます。


1
すべてのリポジトリに適用される有効性チェックを無効にすることは危険ではありませんか?
マキシムラファリー

4

NodeJSを古いdockerイメージの基盤で使用している場合。追加のライブラリをコンパイルするためのこれらの古いソースを含むいくつかのフリーズ画像がありました。

コンテキスト:Dockerビルド中にPythonをインストールしたい場合、Dockerビルド中に依存関係をソースできなかったため、イメージのビルド中(過去24時間以内)にこの問題に遭遇しました。

この投稿でアーカイブパスの推奨事項を試しましたが、404を超えることはできませんでした。(また、今日のarchive.debian.orgの場所から来ています)

解決策:ノードの最新のコンテナバージョン(既にPythonライブラリがプリインストールされている)に切り替え、パッケージjson(現在pythyonが必要だったバイナリライブラリも含まれています)のいくつかのライブラリを更新することで問題が廃止されました。

最終的に、コンテナスタック(node:latest)の基盤イメージを更新することが、解決への最も簡単なパスであると思われました。

バイナリ依存関係が含まれる古いイメージスタックには注意してください。コアOSレイヤーの更新にはおそらく時間がかかるでしょう。


こんにちはグレン、投稿してくれてありがとう。「RUN apt-get update -y && apt-get install Supervisor python python-dev curl -y --force-yes」と同じ問題がdockerfileで発生していると思います。FROM node:6.11.2を使用していますが、これを通過するにはどうすればよいですか?
アーロン

1
ドッカーノードの画像については、代替が使用することです-stretch:画像node:<version>-stretch
lukeaus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.