Ubuntu 20.04升级至22.04后执行apt修复操作失败,无法移除ubuntu-advantage-tools (28.1~22.04)
Ubuntu 20.04升级至22.04后执行apt修复操作失败,无法移除ubuntu-advantage-tools (28.1~22.04)
看起来你遇到的是升级过程中Python环境被破坏引发的连锁问题——系统默认的Python3缺失了核心标准库模块,导致ubuntu-advantage-tools的预移除脚本执行失败。别担心,我们可以一步步来修复:
第一步:修复Python3.10的核心依赖包
错误提示里反复提到libpython3.10-stdlib未安装,这个包包含Python3.10的所有标准库(包括报错里找不到的http模块)。我们先手动安装它:
- 如果本地缓存里有这个包,直接强制安装:
sudo dpkg --force-all -i /var/cache/apt/archives/libpython3.10-stdlib_3.10.13-1+focal1_*.deb - 如果缓存里没有,先从Ubuntu仓库下载再安装:
sudo apt download libpython3.10-stdlib=3.10.13-1+focal1 sudo dpkg --force-all -i libpython3.10-stdlib_3.10.13-1+focal1_*.deb
第二步:重新执行apt修复命令
安装完核心依赖后,Python的标准库就恢复正常了,这时再运行:
sudo apt --fix-broken install
这次ubuntu-advantage-tools的预移除脚本应该能正常执行,不会再出现ModuleNotFoundError了。
第三步:如果第二步仍然失败,强制移除问题包
要是还是卡在移除ubuntu-advantage-tools,我们可以跳过预移除脚本强制移除它:
sudo dpkg --remove --force-remove-reinstreq ubuntu-advantage-tools
执行完后再重新运行修复命令:
sudo apt --fix-broken install
第四步:完成剩余升级并验证Python环境
修复完依赖后,记得完成系统的完整升级:
sudo apt update && sudo apt full-upgrade
最后确认Python3指向正确的版本(应该是3.10):
sudo update-alternatives --config python3
在弹出的选项里选择Python3.10对应的编号即可。
备注:内容来源于stack exchange,提问作者APaul31




