升级Ubuntu 19.10至20.04将移除Node.js、MySQL Workbench?原因与解决办法
嘿,这个情况我升级Ubuntu的时候也碰到过,特别闹心,来给你详细捋捋原因和解决办法~
为什么升级时会移除Node.js、MySQL Workbench这些软件?
主要有这几个核心原因:
- 软件不在新版本的官方仓库中:Ubuntu 20.04(Focal Fossa)的官方软件仓库和19.10相比有不少调整,有些旧版本的软件包要么被移除了,要么更换了包名,系统找不到对应的新版本,就会标记为需要移除。
- 依赖冲突问题:大版本升级会更新系统核心库的版本,这些软件的旧版本依赖的库在20.04里可能已经被淘汰或者不兼容了。系统为了保证升级能顺利完成,会自动移除那些无法解决依赖冲突的软件。
- 第三方PPA的锅:很多人装Node.js、MySQL Workbench这类软件都是用第三方PPA,而Ubuntu升级大版本时会默认禁用所有非官方PPA。如果这些PPA还没适配20.04,系统找不到对应的包,自然就会把这些软件列在移除清单里。
怎么阻止这些软件被移除?
分两种场景来处理,提前预防和已经触发移除提示时的补救:
升级前的预防操作
- 先备份软件列表:把当前已安装的软件导出来,就算不小心被移除了,之后也能快速重装:
dpkg --get-selections > installed-software-list.txt - 更新第三方PPA到适配版本:
- 比如Node.js,如果你用的是NodeSource的PPA,先换成支持20.04的版本:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - sudo apt install nodejs - 对于MySQL Workbench,去官方确认适配20.04的安装源,添加官方的MySQL APT仓库后再更新包列表。
- 比如Node.js,如果你用的是NodeSource的PPA,先换成支持20.04的版本:
- 提前模拟升级排查问题:用
apt的模拟升级功能,提前看看哪些软件会被移除,针对性处理:
输出里会明确显示哪些软件要被移除,你可以提前解决它们的依赖问题。sudo apt update && sudo apt dist-upgrade --simulate
已经看到移除提示时的处理
如果已经在升级流程里看到了移除提示,别着急确认:
- 要是还没执行移除操作,直接终止升级,按照上面的步骤先修复软件的依赖或更新PPA,然后再重新启动升级流程。
- 要是已经开始移除了也没关系,升级完成后,用之前导出的软件列表,重新添加适配的仓库后重装这些软件就行。
另外还有个应急技巧:可以用apt-mark hold暂时锁定不想被移除的软件,但这个要谨慎使用——如果软件和新版本系统有严重的依赖冲突,强行锁定可能导致升级失败或者系统不稳定。命令如下:
sudo apt-mark hold nodejs mysql-workbench
优先还是建议解决依赖问题,而不是强行锁定。
内容的提问来源于stack exchange,提问作者Abhilash S S
相关产品推荐
相关产品推荐

