通过 do-release-upgrade 升级 Ubuntu 版本

最近给我的两台服务器,都升级了 Ubuntu 版本。个人感觉,如果服务器里的东西不多,还不如备份之后,重装系统,直接装个 22.04 可能会比一步一步升级快。

我目前有一台服务器用的是 Ubuntu 18.04 LTS,平时装应用有这样那样的问题,我打算给它升级一下。

平时 ssh 登录上之后,也经常能看到提示升级。

do-release-upgrade

执行这个命令,就可以升级 Ubuntu 的版本。不过在此之前,我们需要先 update 和 upgrade。当我这些做完之后,却发现,执行

do-release-upgrade

后提示这个

Please install all available updates for your release before upgrading

可是我明明已经没东西可以再更新了……

网上搜索后,别人说试试这个

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo do-release-upgrade

结果试了也没用,最终发现,问题出现在第三方软件源上面。

因为之前直接用 apt 安装 nodejs,这样安装的是旧版本的。我现在运行的应用要求使用 node18。

所以之前根据教程,下载了这个脚本,执行后,会添加 node 的软件源。

curl -sL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh

它就在 /etc/apt/sources.list.d 里面,执行下面的命令可以禁用第三方源

cd /etc/apt/sources.list.d 
for i in *.list; do mv ${i} ${i}.disabled; done
apt clean
apt autoclean
sudo do-release-upgrade

不过我不是这么做的,我直接把里面的 node 源给删了,剩下的 docker 源没动它。之后再执行 do-release-upgrade 就可以继续进行了。

升级的过程中,有很多选项,还是挺麻烦的。不过好在最后升级成功了,从 18.04 升级到了 20.04.6。