apt-get update 无法找到某些镜像

apt-get update 无法找到某些镜像

我已经将我的源配置为使用mirrors://“协议”来查找离我近的服务器,主要是因为我经常四处走动。

但是,由于某种原因,它并不适用于所有的存储库 - 当我运行时,sudo apt-get update我收到一堆错误(大约 45 个),如下所示:

W: Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt/dists/raring/main/source/Sources  404  Not Found [Mirror: http://giano.com.dist.unige.it/ubuntu/]

W: Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt/dists/raring/universe/source/Sources  404  Not Found [Mirror: http://giano.com.dist.unige.it/ubuntu/]

如果我没记错的话,我是通过 GUI 配置的,但我仍然去查看了与这些 repos 相对应的行的内容/etc/apt/sources.list- 这是我所发现的:

deb-src mirror://mirrors.ubuntu.com/mirrors.txt raring main restricted
deb-src mirror://mirrors.ubuntu.com/mirrors.txt raring universe

(我无法将所有错误映射到行sources.list,但我猜这只是因为我不能 100% 确定我在寻找什么......)

我认为像这样配置源的全部目的是确保mirrors.ubuntu.com选择一个具有所需存储库的镜像。为什么我在这里收到 404 错误,我该怎么办?

如果可能的话,我宁愿仍然使用镜像设置,而不是硬编码特定服务器来获取所有内容。

更新:
感谢前几个答案中的有益评论,我已经能够排除服务器维护和防火墙问题 - 使用镜像协议,我可以从同一台服务器获取其他内容。问题是我指向的镜像上没有可用的源换句话说,所有包都在那里,因此以sources.list开头的行deb没有问题,但deb-src其他行会失败。

我也通过打开例如进行了验证http://giano.com.dist.unige.it/ubuntu/dists/raring/main/在我的浏览器中。根据错误消息,apt-get查找此目录中名为的子目录source,但该子目录不存在。因此问题不是连接到服务器,而是服务器没有我要查找的资源。

我认为镜像应该由其决定是否同时提供源代码或仅提供软件包,但令我惊讶的是,mirrors.ubuntu.com镜像中没有我想要的东西。我看到了三个选项,但我都不喜欢:

  • 将资源源硬编码deb-src到我知道可用的服务器,即mirror在这些情况下牺牲协议。
  • 取消选中软件源中的源包,即牺牲包的下载源。
  • 忽略来自的错误消息apt-get并希望mirrors.ubuntu.com将来能将我引导到其他服务器。

是否有第四种选择可以真正解决问题?=)

答案1

镜像协议选择了最近的镜像服务器,即http://giano.com.dist.unige.it/ubuntu/。但在这种情况下,http://giano.com.dist.unige.it/ubuntu/失败并返回有效响应。(可能是他们正在进行维护)

截至撰写本文时,它看起来已启动并运行。

请重试。您的问题可能已得到解决。:)

这是我从浏览器打开该 URL 时得到的结果。

在此处输入图片描述

如果您看到,有两个项目是今天最后修改的。

答案2

如果只有deb-src软件包出现故障,则这不是问题。它们deb-src只包含源代码,因此除非您自己破解源代码,否则您实际上并不需要它们(一般而言。偶尔也有例外)。

尽管如此,我还是看到过这种情况在由于各种原因转移到不同网络时发生。请尝试以下方法,看看是否有帮助:

  1. 清除下载的软件包,以防镜像因版本不匹配而失败: sudo apt-get clean。这解决了一次问题,但这可能是巧合。不过很容易尝试。
  2. 检查防火墙是否阻止了您的出站数据包。通常,apt 使用出站端口 80(用于 HTTP)和 21(用于 FTP)。如果出口防火墙阻止了这些端口,则可能会给您带来麻烦。我不知道 miirrors 协议使用哪个端口,但它也需要通过防火墙。有几种不同的方法可以找出端口。如果您需要指导,请告诉我。还要确保防火墙也没有阻止入站数据包。这通常不是问题,因为大多数防火墙都是有状态的,它们期望响应返回到网络内部的连接。
  3. 检查您的代理设置。通常将代理设置为“自动”就足够了,但有时并非如此。请咨询网络管理员,看看您是否需要特殊的代理设置。有些代理对待 apt 流量的方式与常规 HTTP 不同。

答案3

我在 Raspbian 上也遇到了这个问题,因为某个包被重定向到托管在 pdx.edu 上的镜像/存档。pdx.edu 上的存档服务器没有响应,无法访问...该怎么办?

在我的示例中,我尝试安装软件包“pptp-linux”。我需要找到一个包含此软件包的 Raspbian 镜像。您可能需要找到适合您的发行版风格的镜像,我的示例列在此处:http://www.raspbian.org/RaspbianMirrors

我在美国选了一个,并把它添加到我的/etc/apt/sources.list在文件顶部:

deb http://distribution-us.hexxeh.net/raspbian/archive/raspbian wheezy main contrib non-free rpi

保存更改然后更新 apt-get:

apt-get update

大量更新,zoom zoom ...然后尝试安装我的软件包并从新镜像下载。完成!

相关内容