🍥
古いDebian GNU/Linuxでapt使用時にsources.listに記載のURLが404 Not Foundと言われる時の解決
これは何?
Dockerで古いPHPを動かさないといけなくて、Debianのバージョンが古い(具体的には、jessie
)コンテナを使用しています。
いつもとは違う環境でdocker imageをpullして、apt update などすると、404 Not Found
となってしまう場合があります。
さっきこうなって、一応解決できたので、備忘録としてメモ
根治対応
そもそもPHPのバージョン上げて、Debianのバージョンも上げるのがよろし
Debianのdebパッケージ配布場所について
Debianのパッケージ管理システムapt
は、/etc/apt/sources.list
に記載されたURLにアクセスし、パッケージを取得します。
デフォルトのURLは、deb.debian.org
もしくは、security.debian.org
になるようです。バージョンがjessieの話をしているので、最新版だと違うかも(未確認)
どうも負荷分散のためか、古いバージョンは、上記URLのサーバーには置かれなくなるらしく、archive.debian.org
に移るようです。(Debian使いには常識なのかな...)
上記を踏まえた対応
なので、/etc/apt/sources.list
に記載のURLドメインを変更すれば良いというだけでした。
Dockerfileであれば、下記のような記載をapt実行前に加えます(テキトーですが)
RUN sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list
RUN sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list
まとめ
パッとしらべて、パッとやっちゃったので、不正確なことや誤りがあるかもしれません。何かあれば、コメントかなにかでツッコんでくれたら嬉しいです。
Discussion