14.04 根据区域 apt 存储库的不同结果不同

14.04 根据区域 apt 存储库的不同结果不同

突然apt-get update开始失败,在调查时我发现了一个奇怪的行为:

$ cat /etc/apt/sources.list
deb http://il.archive.ubuntu.com/ubuntu/ trusty main restricted

$ apt-get update
Ign http://il.archive.ubuntu.com trusty InRelease
Hit http://il.archive.ubuntu.com trusty Release.gpg
Hit http://il.archive.ubuntu.com trusty Release
Hit http://il.archive.ubuntu.com trusty/main amd64 Packages
Hit http://il.archive.ubuntu.com trusty/restricted amd64 Packages
Hit http://il.archive.ubuntu.com trusty/main Translation-en
Hit http://il.archive.ubuntu.com trusty/restricted Translation-en
Ign http://il.archive.ubuntu.com trusty/main Translation-en_US
Ign http://il.archive.ubuntu.com trusty/restricted Translation-en_US
Reading package lists... Done

$ sed -i 's/il/us/g' /etc/apt/sources.list
$ cat /etc/apt/sources.list
deb http://us.archive.ubuntu.com/ubuntu/ trusty main restricted

$ apt-get update
Ign http://us.archive.ubuntu.com trusty InRelease
Get:1 http://us.archive.ubuntu.com trusty Release.gpg [72 B]
Get:2 http://us.archive.ubuntu.com trusty Release [11.9 kB]
Get:3 http://us.archive.ubuntu.com trusty/main amd64 Packages [14 B]
Fetched 12.0 kB in 0s (20.6 kB/s)
W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/trusty/Release  Unable to find expected entry 'restricted/binary-amd64/Packages' in Release file (Wrong sources.list entry or malformed file)

E: Some index files failed to download. They have been ignored, or old ones used instead.

我认为前缀(ilus)仅表示使用哪个官方 ubuntu 存储库的 cdn。难道是官方的 ubuntu apt 存储库之间存在差异?

更新:

我前往ubuntu 源列表生成器重新生成 ubuntu 源列表(不包含“受限”分支),以验证 URL 是否正确——如下所示,唯一不同的是区域后缀,它与上面的代码片段相匹配。

$ curl -s https://repogen.simplylinux.ch/txt/sources_abed64b7b6ab23d5c4ffe668bbe70d3c37144a3a.txt | grep ^deb && curl -s https://repogen.simplylinux.ch/txt/sources_99dc7e2a260ff96dbe49910f005d2ab82862458e.txt | grep ^deb
deb http://il.archive.ubuntu.com/ubuntu/ trusty main 
deb http://us.archive.ubuntu.com/ubuntu/ trusty main 

更新2:

对我来说它是可重复的。应该告知谁?

更新 3:

以下是更多详细信息:

$ dpkg --print-architecture
amd64

$ wget -q -O- http://us.archive.ubuntu.com/ubuntu/dists/trusty/Release | grep 'restricted/binary-amd64/Packages'
$ echo $?
1

$ dig us.archive.ubuntu.com | grep IN
;us.archive.ubuntu.com.     IN  A
us.archive.ubuntu.com.  57  IN  A   91.189.91.15
us.archive.ubuntu.com.  57  IN  A   91.189.91.24
us.archive.ubuntu.com.  57  IN  A   91.189.91.23
us.archive.ubuntu.com.  57  IN  A   91.189.91.13
us.archive.ubuntu.com.  57  IN  A   91.189.91.14

答案1

https://askubuntu.com/a/37754解决了我的问题。附上原始答案的一小段摘录:

文件顶部的内容/etc/apt/sources.list应该是让它根据您的地理位置自动为您选择镜像所需的全部内容。

deb mirror://mirrors.ubuntu.com/mirrors.txt trusty main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-updates main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-backports main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-security main restricted universe multiverse

相关内容