ubuntu修复"W:某些索引文件无法下载。" 错误

时间:2020-03-21 11:48:54  来源:igfitidea点击:

它似乎是Ubuntu镜像今天下降,我无法在Ubuntu 20.04 LTS服务器中安装任何新包。
当我尝试更新软件源列表时,我收到此错误"W:某些索引文件无法下载。
他们已被忽略,或者旧的。
我尝试了更新的存储库列表耦合时间,重新启动服务器,但仍然我得到相同的错误。
我检查了互联网连接,它正好正常!

我运行以下命令更新我的Ubuntu服务器:

$sudo apt update

我遇到了这个错误:

Err:1 http://in.archive.ubuntu.com/ubuntu focal InRelease
  Could not connect to in.archive.ubuntu.com:80 (2403:8940:ffff::f), connection timed out Could not connect to in.archive.ubuntu.com:80 (103.97.84.254), connection timed out
Err:2 http://in.archive.ubuntu.com/ubuntu focal-updates InRelease
  Unable to connect to in.archive.ubuntu.com:http:
Err:3 http://in.archive.ubuntu.com/ubuntu focal-backports InRelease
  Unable to connect to in.archive.ubuntu.com:http:
Err:4 http://in.archive.ubuntu.com/ubuntu focal-security InRelease
  Unable to connect to in.archive.ubuntu.com:http:
Reading package lists... Done                           
Building dependency tree       
Reading state information... Done
All packages are up to date.
W: Failed to fetch http://in.archive.ubuntu.com/ubuntu/dists/focal/InRelease  Could not connect to in.archive.ubuntu.com:80 (2403:8940:ffff::f), connection timed out Could not connect to in.archive.ubuntu.com:80 (103.97.84.254), connection timed out
W: Failed to fetch http://in.archive.ubuntu.com/ubuntu/dists/focal-updates/InRelease  Unable to connect to in.archive.ubuntu.com:http:
W: Failed to fetch http://in.archive.ubuntu.com/ubuntu/dists/focal-backports/InRelease  Unable to connect to in.archive.ubuntu.com:http:
W: Failed to fetch http://in.archive.ubuntu.com/ubuntu/dists/focal-security/InRelease  Unable to connect to in.archive.ubuntu.com:http:
W: Some index files failed to download. They have been ignored, or old ones used instead.

正如我们在上面的输出中看到的那样,其中一个镜像已关闭,我们必须禁用或者用工作方式替换它以修复此错误。

修复"W:某些索引文件无法下载。" ubuntu错误

一旦Ubuntu镜子在线回来,此错误通常会自行解决。
在镜子下降几个小时的情况下,请遵循以下任何一种方法以修复它。

方法1 - 查找最佳Ubuntu APT存储库镜像

修复此问题的推荐方法是为位置找到最佳工作APT存档镜像,并相应地更新/etc/apt/sources.list文件。
以下教程提供了基于下载速度找到最佳Ubuntu APT存储库镜像的所有可能方法。

方法2 - 切换回原始镜像

在修改源列表之前,强烈建议首先备份它们:

$sudo mv /etc/apt/sources.list{,.backup}
$sudo mv /etc/apt/sources.list.d{,.backup}

Ubuntu在/usr/share/doc/apt/examples/sources.list文件中有一个示例源列表。
让我们看看这个文件的内容:

$cat /usr/share/doc/apt/examples/sources.list

示例输出:

# See sources.list(5) manpage for more information
# Remember that CD-ROMs, DVDs and such are managed through the apt-cdrom tool.
deb http://us.archive.ubuntu.com/ubuntu focal main restricted
deb-src http://us.archive.ubuntu.com/ubuntu focal main restricted
deb http://security.ubuntu.com/ubuntu focal-security main restricted
deb-src http://security.ubuntu.com/ubuntu focal-security main restricted
deb http://us.archive.ubuntu.com/ubuntu focal-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu focal-updates main restricted

现在从如下所示的示例文件创建一个新的源列表:

$sudo mkdir /etc/apt/sources.list.d
$sudo cp /usr/share/doc/apt/examples/sources.list /etc/apt/sources.list
$sudo apt update

这将将所有镜像恢复为主服务器,通常是我们的镜像站点。

添加其他存储库

我们已启用[Main]存储库。
此存储库包含Canonical支持的免费和开源软件。

如果我们想安装社区支持的免费和开源包,不含免费软件包,在完全免费的许可证等中不可用的软件,我们需要启用以下存储库:

  • Restricted - 设备的专有驱动因素。
  • Multiverse - 版权或者法律问题限制的软件。
  • Universe - 社区维护的免费和开源软件。

要启用这些存储库,请运行:

$sudo add-apt-repository restricted
$sudo add-apt-repository multiverse
$sudo add-apt-repository universe
$sudo apt update

我们可以检查以下所有已启用的存储库:

$grep ^deb /etc/apt/sources.list

禁用源存储库

如果我们调查该新源.List文件,还启用了源存储库。
线条以"DEB-SRC"开头表示包含源包的源存储库。
这对开发人员来说很有用。
如果你是普通用户,你不是他们。

要禁用源存储库,请打开/etc/apt/sources.list文件,只需使用deb-src突出行的前面的哈希符号(#)。
注释后,该行应如下所示:

#deb-src http://us.archive.ubuntu.com/ubuntu focal-updates main restricted
[...]

现在更新源列表,看看它是否已修复。

如果你住在我们之外,主要镜子可能会慢。
在这种情况下,我们可以如下一节所述切换到最近的镜像位置。

方法3 - 从官方Ubuntu镜子中选择最近的镜子

世界各地都有数百个社区驱动的镜子。
这些镜像为Ubuntu分发提供了所有软件的存储库和档案。

从此链接中,选择我们所在的国家/地区或者我们选择的任何最近的位置。
例如,我在荷兰选择镜子。

在下一个屏幕中,选择Ubuntu分发版本。
现在,我们将获得源.List条目,如下图所示。

复制这些行并将其添加到/etc/apt/sources.list文件中。
如果我们不想要源存储库,只需注释它即可。

添加其他存储库

我们只添加了[Main]存储库。
要启用其他有用的存储库,如受限制,安全性,更新等,运行:

$sudo add-apt-repository restricted
$sudo add-apt-repository multiverse
$sudo add-apt-repository universe
$sudo apt update

方法4 - 从另一个工作系统复制源列表

如果我们已经有另一台运行相同的Ubuntu版本的机器,只需复制Sources.List文件的内容并在系统中使用它们。
这是最简单和最简单的方法。

如果另外的存储库(例如受限制,多层和Universe),则尚未启用:

$sudo add-apt-repository restricted
$sudo add-apt-repository multiverse
$sudo add-apt-repository universe
$sudo apt update