Ubuntu 18.04更新循环问题及MySQL依赖冲突求助
看起来你现在卡在了Ubuntu 18.04的更新循环里,同时还遇到了MySQL的依赖不匹配问题——这种情况确实挺头疼的,我来帮你一步步梳理解决思路。
先看看你执行命令时遇到的具体错误:
root@odroid2:~# version version: command not found root@odroid2:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.6 LTS Release: 18.04 Codename: bionic root@odroid2:~# apt install update-manager-core Reading package lists... Done Building dependency tree Reading state information... Done You might want to run 'apt --fix-broken install' to correct these. The following packages have unmet dependencies: mysql-server-8.0 : Depends: mysql-server-core-8.0 (= 8.0.32-0ubuntu0.20.04.2) but it is not going to be installed Recommends: mecab-ipadic-utf8 but it is not going to be installed update-manager : Depends: update-manager-core (= 1:18.04.11.13) but 1:20.04.10.11 is to be installed update-manager-core : Depends: python3-update-manager (= 1:20.04.10.11) but 1:18.04.11.13 is to be installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
核心问题其实是版本不匹配:你的系统是18.04(bionic),但update-manager和MySQL相关的包却试图安装20.04(focal)的版本,大概率是软件源里混入了非当前系统版本的源导致的。下面是具体的修复步骤:
第一步:清理软件源,修复update-manager版本冲突
先检查你的软件源里是否有focal(20.04)的配置:
cat /etc/apt/sources.list /etc/apt/sources.list.d/*.list | grep focal如果输出里有focal相关的源,找到对应的配置文件(比如
/etc/apt/sources.list或者/etc/apt/sources.list.d/下的文件),用编辑器打开(比如nano /etc/apt/sources.list),在focal的源行前面加#注释掉,保存退出。更新软件源缓存:
apt update强制安装适配18.04版本的update-manager组件:
apt install update-manager-core=1:18.04.11.13 python3-update-manager=1:18.04.11.13
第二步:修复MySQL的依赖问题
MySQL的问题同样是版本不兼容,我们需要把不匹配的包清理后重新安装对应版本:
先查看当前MySQL相关包的状态:
dpkg -l | grep mysql确认哪些包是破损或者版本不匹配的。
如果
apt --fix-broken install执行失败,先备份MySQL数据(重要!):cp -r /var/lib/mysql /var/lib/mysql_backup卸载有问题的MySQL包:
apt remove --purge mysql-server-8.0 mysql-server-core-8.0重新安装适配18.04的MySQL Server:
apt install mysql-server-8.0这时候系统会自动拉取对应18.04版本的依赖包,不会再出现版本不匹配的问题。
第三步:验证修复结果
完成上面的步骤后,执行以下命令检查是否能正常更新:
apt update && apt upgrade
如果没有报错,说明依赖问题已经解决了。
最后提醒一下:以后尽量不要随意添加非当前系统版本的软件源,这种操作很容易引发版本冲突。如果需要安装特定软件,优先选择适配你系统版本的PPA或者deb包哦。
备注:内容来源于stack exchange,提问作者Tom Jerram

