Ubuntu使用apt install报Failed to fetch
刚装了个 Ubuntu 系统,使用 apt install 安装要用的工具时,会报 Failed to fetch 这个错误,如下:
E: Failed to fetch http://ports.ubuntu.com/ubuntu-ports/pool/universe/o/openjdk-8/openjdk-8-jre-headless_8u312-b07-0ubuntu1~20.04_arm64.deb 404 Not Found [IP: 185.125.190.39 80]
E: Unable to fetch some archives, maybe run apt-get update or try with –fix-missing?
一般这种情况,我们配置一个国内的镜像即可。这里我们使用清华大学的镜像,使用帮助地址:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
解决该问题的本质
解决该问题的本质,其实就是将 Ubuntu 的软件源配置文件(路径/etc/apt/sources.list)中的数据源替换为清华的镜像地址。
清华的帮助文档给出了两个方案:
直接替换掉配置文件
通过命令替换掉文件中的域名信息
因为/etc/apt下的文件都是只读的,通过 vim 修改或者替换都挺麻烦的。所以这里建议直接用第二种方案解决,执行以下命令:
sudo sed -i “s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g” /etc/apt/sources.list
sudo sed -i “s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g” /etc/apt/sources.list
注意踩坑!
sources.list文件中配置的信息,和 Ubuntu 的版本以及架构有关。
如果你是 32/64 位 x86 架构处理器,直接执行就好。如果是 ARM 架构(比如用 M 系列芯片的 MacBook 虚拟机安装的 Ubuntu),官方源为ports.ubuntu.com,因此需要执行以下命令:
sudo sed -i “s@http://ports.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g” /etc/apt/sources.list
最后更新
执行命令sudo apt-get update刷新数据源即可。