12.04 LTS を更新できません - 「404 見つかりません」

12.04 LTS を更新できません - 「404 見つかりません」

問題の解決にご協力いただけますでしょうか?

W: Не удалось получить http://archive.ubuntu.com/ubuntu/dists/precise/restricted/binary-i386/Packages  404  Not Found [IP: 91.189.91.13 80]

W: Не удалось получить http://archive.ubuntu.com/ubuntu/dists/precise/universe/binary-i386/Packages  404  Not Found [IP: 91.189.91.13 80]

W: Не удалось получить http://archive.ubuntu.com/ubuntu/dists/precise/multiverse/binary-i386/Packages  404  Not Found [IP: 91.189.91.13 80]

E: Некоторые индексные файлы не скачались. Они были проигнорированы или вместо них были использованы старые версии.

curl を使用すると、次の URL は正常に機能します。

curl -I http://archive.ubuntu.com/ubuntu/dists/precise/restricted/binary-i386/Packages.gz
HTTP/1.1 200 OK
Date: Tue, 07 Oct 2014 10:29:43 GMT
Server: Apache/2.2.22 (Ubuntu)
Last-Modified: Wed, 25 Apr 2012 22:42:47 GMT
ETag: "ae0aaa-2394-4be88971e07c0"
Accept-Ranges: bytes

答え1

HTTP エラー 404 は、よくある問題のように見えます。
これらは、リポジトリが消えたり、移動されたりすることによって発生します。

しかし、リポジトリが存在しなくなったわけではありません。

wget -q http://archive.ubuntu.com//ubuntu/dists/precise/ -O - | html2text
****** Index of /ubuntu/dists/precise ******
[[ICO]] Name              Last_modified     Size
============================================================================
[[DIR]] Parent_Directory                                                  -
[[   ]] Contents-amd64.gz 26-Apr-2012 05:30                              21M
[[   ]] Contents-i386.gz  26-Apr-2012 06:11                              21M
[[   ]] Release           25-Apr-2012 22:49                              48K
[[   ]] Release.gpg       25-Apr-2012 22:49                              198
[[DIR]] main/             05-Dec-2011 18:03                                -
[[DIR]] multiverse/       14-Oct-2011 00:29                                -
[[DIR]] restricted/       14-Oct-2011 00:29                                -
[[DIR]] universe/         14-Oct-2011 00:29                                -
============================================================================
     Apache/2.2.22 (Ubuntu) Server at archive.ubuntu.com Port 80

よく見ると、いつもと違って にアクセスしようとしていPackagesますPackages.gz

それは特に疑わしいようには見えません。利用できる形式は複数あります。たとえば.bz2、非圧縮は単なる別のエンコードです。

$ wget -q http://archive.ubuntu.com//ubuntu/dists/precise/restricted/binary-i386/ -O - | html2text
****** Index of /ubuntu/dists/precise/restricted/binary-i386 ******
[[ICO]] Name             Last_modified     Size
============================================================================
[[DIR]] Parent_Directory                                                  -
[[   ]] Packages.bz2     25-Apr-2012 22:42                              8.2K
[[   ]] Packages.gz      25-Apr-2012 22:42                              8.9K
[[   ]] Release          25-Apr-2012 22:49                               102
============================================================================
     Apache/2.2.22 (Ubuntu) Server at archive.ubuntu.com Port 80

実際にそれが欠落していることがわかったとしてもPackages、何かが間違っていると疑う理由にはなりません。一般的な Web サーバーには、必要に応じてファイルを透過的に解凍するオプションがあり、ここでもそれが行われているようです。


しばらくして、バグレポートを見つけました。それによると、.gzこの場所のファイル名は明らかに間違っているようです。

しかし、原因は本当に予想外のものです。ディレクトリが通常よりも深くネストされているため、URL の長さが制限に達しました。固定長のバッファに収まりません。3 バイト長すぎます。そのため、3 文字が破棄されます。URL には URL パラメータなどがありません。そのため、URL のパスが切り捨てられます。

3 文字で、.gz. を削除して、完全に有効なファイル名を残します。

Packages.gz が見つかりません。代わりにパッケージのみを検索しています。

関連情報