系统开启跨架构,导致apt update失败

Scroll Down

1.问题描述

今天要在树莓派里安装git,树莓派是ubuntu系统,执行apt install git,报错显示404,某些文件找不到。到网站上看了一下,发现实际存在更新版本的文件,请求的是旧版本。

于是apt update更新软件包列表,出现以下报错。

E: 无法下载 http://ports.ubuntu.com/ubuntu-ports/dists/focal/main/binary-amd64/Packages 404 Not Found [IP: 2620:2d:4000:1::19 80]
E: 无法下载 http://ports.ubuntu.com/ubuntu-ports/dists/focal-updates/main/binary-amd64/Packages 404 Not Found [IP: 2620:2d:4000:1::19 80]
E: 无法下载 http://ports.ubuntu.com/ubuntu-ports/dists/focal-security/main/binary-amd64/Packages 404 Not Found [IP: 2620:2d:4000:1::19 80]
E: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。

在ubuntu官网上查看,存在binary-arm64目录,应该下载这个。

2.排查解决过程

2.1.查询架构

树莓派是arm64架构的,报错显示是amd64肯定有问题。dpkg --print-architecture确认系统架构是arm64没错。

2.2.检查apt源文件

查看apt源文件,看是否有amd64相关的配置。

grep -r "amd64" /etc/apt/sources.list /etc/apt/sources.list.d/

查询并没有错误配置。

2.3.查询是否开启多架构

dpkg --print-foreign-architectures查询是否启用了多架构,返回amd64,至此找到原因了。
执行dpkg --remove-architecture amd64移除amd64。

2.4.验证

再次apt update更新软件包列表,成功,问题解决!