it-swarm-ja.com

jessieバックポートリポジトリの取得に失敗しました

Dockerfileにjessieバックポートリポジトリを追加し、それを使用して依存関係をインストールする、独自の開発のベースとして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安定版にアップグレードせずに、これまたは同等のリポジトリを使用するにはどのようなオプションが必要ですか?

175
user12345

WheezyとJessieは最近ミラーネットワークから削除されました なので、Jessieバックポートのフェッチを続行するには、代わりにarchive.debian.orgを使用する必要があります。

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

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

jessie-updatesリポジトリが削除されました。すべての更新がメインリポジトリにマージされ、セキュリティ以外の更新はありません。したがって、jessie-updatesまたはsources.listファイル内のsources.list.dへの参照はすべて削除する必要があります。セキュリティ更新 今後も提供されます 、LTSがサポートするアーキテクチャでは、セキュリティリポジトリで、2020年6月30日まで。

コンテナーイメージを構築しているので、私はhighly代わりにDebian 9(Stretch)をベースにすることをお勧めします。 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";
206
Stephen Kitt

@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
47
henadzit

これは、Debian "Jessie"を使用するVagrantボックスをプロビジョニングするときに起こりました。

Stephen Kitt's answer に従って、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

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

30
inostia

古いDockerイメージファンデーションでNodeJSを使用しているユーザー向け。追加のlibをコンパイルするためのこれらの古いソースを含むいくつかのフリーズしたイメージがありました。

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

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

解決策:私は最終的にノードの最新のコンテナバージョン(python libsがプリインストールされています)に切り替えて、パッケージjson(これには、 pythyonが必要でした)は問題を廃止しました。

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

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

4
Glen C.

これらのエラーのパネルを使用して、何も動作しない場合:

Unable to correct missing packages.
WARNING: The following packages cannot be authenticated!
W: GPG error
W: An error occurred during the signature verification.
Updates for this repository will not be applied.
E: Failed to fetch
E: Aborting install 

フルディストリビューションアップグレードと、マシンを保存するためのソースリストのクリーンアップを検討してください。これらのメモを使用すると数分で完了しますが、最悪です。

初めての訪問/etc/apt/sources.list.d/、すべて削除します。 (バックアップを実行します)。

編集/etc/apt/sources.list、この行だけを残してください:

deb http://ftp.us.debian.org/debian stable main contrib 

次に、rootとして以下を実行します。

aptitude update
aptitude full-upgrade

さまざまなメッセージを確認します。次に試してください:

Sudo apt update

エラーは発生せず、確認するだけです。

Reading package lists... Done

いくつかのさまざまなパッケージは、いくつかのconflictsを引き起こす可能性があり、それらの場合、一度使用すると、さまざまな競合が解決されます。

Sudo aptitude -y install packagename otherpackagename

考えられるその他のエラー:

W: There is no public key available for the following key IDs:
*648ACFXXXXX2FAB138*

解決するには、指定した公開鍵をインポートします。

Sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFXXXXX2FAB138

非常にまれなメッセージが表示される場合があります!

A reboot is required to replace the running dbus-daemon.
Please reboot the system when convenient.

古いカーネルとlibcで問題が発生する可能性があります:

Kernel must be upgraded

This version of the GNU libc requires kernel version 3.2 or later.  Please upgrade your kernel 

これらの注記を公開サーバーに適用しないでください。常に最後のLTSを使用します。


https://www.debian.org/doc/manuals/debian-faq/ch-uptodate.en.html

https://askubuntu.com/questions/364404/e-unable-to-fetch-some-archives-maybe-run-apt-get-update-or-try-with-fix-mis

https://askubuntu.com/questions/766883/there-is-no-public-key-available-for-the-following-key-ids-1397bc53640db551

0
NVRM