你能帮忙解决这个问题吗?
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 服务器有一个选项,可以根据需要透明地解压文件 - 似乎这里就发生了这种情况。
过了一会儿,我发现了一个bug报告,根据报告,.gz
这个地方的文件名确实是错误的;
但原因却出乎意料:由于目录嵌套比平常更深,URL 的长度达到了某个限制。它不适合某个固定长度的缓冲区。它长了三个字节;因此丢弃了三个字符;URL 没有任何 URL 参数等。因此 URL 的路径被截断;
通过三个字符,删除.gz
。留下一个完全有效的文件名。