解决 Ubuntu 中 apt-get update 因架构配置混乱导致的更新失败问题

使用sudo apt-get update更新索引失败

ubuntu当前的系统架构配置出现了混乱,导致 apt update 无法正确完成,进而使得 apt install 试图下载过期的或不存在的软件包版本

核心问题分析:
1、 架构冲突与拼写错误 :

系统是 amd64 (Intel/AMD 64位) 架构(因为安装日志里尝试下载的是 amd64 的 MySQL 包)

但是,系统被配置为同时尝试获取 arm64(ARM 架构)的软件包。由于使用的清华源(/ubuntu)通常只包含 PC 架构,而不包含 ARM 架构(ARM 通常在 /ubuntu-ports),所以会出现大量 404 Not Found 错误。
关键细节:日志中出现了 不支持 'arem64' 体系结构。这说明你可能不小心把 arm64 拼写成了 arem64 并添加到了系统中。

2、 索引更新失败导致安装失败:

因为 apt-get update 遇到上述错误没有完全成功,本地软件列表是旧的。

当运行 apt install 时,它试图下载旧列表里记录的 MySQL 版本(8.0.42-0ubuntu0.22.04.1),但服务器上可能已经更新到了新版本,旧文件被移除了,所以也会报 404 Not Found。

解决方案

1、第一步:需要移除错误的 arm64 和拼写错误的 arem64 架构设置

bash 复制代码
# 查看当前添加的额外架构(会看到 arm64 和 arem64)
dpkg --print-foreign-architectures

# 移除错误的架构
sudo dpkg --remove-architecture arm64
sudo dpkg --remove-architecture arem64

注意:如果执行移除命令时提示"cannot remove architecture... currently in use by the database",说明安装了这些架构的某个残余包。如果是这种情况,先运行 sudo apt-get purge ".:arm64" 和 sudo apt-get purge ".:arem64",然后再试上面的命令。

2、 第二步:清理并重新更新软件源,移除错误架构后,清理缓存并重新获取软件列表

bash 复制代码
# 清理缓存
sudo apt-get clean

# 重新更新索引(这一步必须成功,不能有 Error)
sudo apt-get update

3、第三步:重新安装软件

bash 复制代码
sudo apt install nginx php php-fpm mysql-server php-mysqlnd --fix-missing

总结:问题在于系统尝试去下载"不存在的架构(拼写错误的 arem64)"和"错误的源路径(arm64)"。只要移除了这两种多余的架构设置,apt update 就能拉取到最新的 amd64 软件列表,后续的 MySQL 安装也就不会报 404 错误

相关推荐
雪落漂泊15 小时前
Liunux进程(七):程序控制篇(中)
linux·运维·windows
俊俊几年的15 小时前
动态规划(Dynamic Programming)详解:从入门到 LeetCode Hot 100
linux·c++·算法·leetcode·嵌入式·动态规划·c
浪遏21 小时前
recruitment-cli:让 AI 接手求职招聘,从架构到一次发送超时
架构·typescript·node.js
星恒随风1 天前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql
小雉系统1 天前
BcoreOS安全通信架构:FsSession 抗算法后门安全设计
算法·安全·架构
JAVA前线1 天前
用《实践论》分析前沿部署工程师:AI时代听见炮声的人
架构·ai编程
深入云栈1 天前
Netty 4.2.x 源码深度解析 (二十三):ByteBuf 核心设计 —— 索引、类型与零拷贝
java·后端·架构
唐墨1231 天前
linux kernel 比较数据大小的宏定义
linux·算法
JackJiang1 天前
IM踩坑:聊天消息ID怎么设计?一个UUID搞不定,我用双ID解决
后端·架构
程序开发阿元1 天前
密码不进工具:一个独立开发者的服务器凭据管理办法
linux·ssh