无法更新 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

仔细观察,它尝试访问PackagesPackages.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 服务器有一个选项,可以根据需要透明地解压文件 - 似乎这里就发生了这种情况。


过了一会儿,我发现了一个bug报告,根据报告,.gz这个地方的文件名确实是错误的;

但原因却出乎意料:由于目录嵌套比平常更深,URL 的长度达到了某个限制。它不适合某个固定长度的缓冲区。它长了三个字节;因此丢弃了三个字符;URL 没有任何 URL 参数等。因此 URL 的路径被截断;

通过三个字符,删除.gz。留下一个完全有效的文件名。

未找到 Packages.gz,因为仅搜索 Packages

相关内容