简介
在Ubuntu系统中,do-release-upgrade
命令可以实现升级系统版本的功能,(这个命令我每次ssh登录到服务器时都会看到。。。
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.4.0-28-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
New release '22.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
本来我是不大喜欢Ubuntu 22.04
的,因为我几乎每次我用apt
安装依赖时都会问我要重启哪些服务,光这点就让我掉不少好感。这次升级是因为我不小心执行autoremove
命令把给系统整炸了(我怎么也想不到这玩意破坏力居然这么大),因此想着也许可以用升级系统的方法补救一下。
更新系统
本次我演示的是从Ubuntu 20.04
更新到Ubuntu 22.04
。
准备工作
数据备份
数据无价,执行这种操作前一定要备份一下数据,(虽然我觉得既然官方给的这种升级方式应该是不会轻易翻车的。
我的家里云
里的数据虽然都有经常备份,但要是升级把服务器升炸了的话手动恢复起来还是比较麻烦的,而快照还原起来就方便多了。
更新软件包
我觉得更新系统前应该让系统上的软件包是最新的(直觉
apt update&&apt upgrade -y
更新系统
执行这个命令
do-release-upgrade
当我忐忑地在控制台敲下这个命令并按下回车后,直接给我返回了个这个:
root@ubuntu:~# do-release-upgrade
-bash: do-release-upgrade: command not found
我。。。
解决找不到do-release-upgrade
命令的问题
解决方法:
sudo apt update
sudo apt install update-manager-core
相关问题链接:https://askubuntu.com/questions/1318223/do-release-upgrade-command-failing
继续更新
再次在命令行中敲下这个命令,终于开始正常工作了:
在开始升级之前,系统会告诉你当前正在通过SSH操作,并表示不推荐这样做,因为当系统升级失败后会难以恢复,最后问是否继续。
我当然是yes了,反正有快照,有VNC,啥都不怕。
下一个提示:第三方源将会被禁用,你可以在升级后再次启用
最后一次升级前的确认:
然后就会开始下载一堆东西。
在安装和配置新系统时,会时不时像下面这样问你关于新配置文件覆盖的问题,如果你不确定该怎么做,我认为你应该选择默认的N
,即保留原先配置,除非你确定覆盖某软件包的原配置文件没什么问题。
在所有软件包升级完成后会告诉你有90个软件包将被移除,我肯定是无脑YES了。(逃
最后系统升级完成,需要重启
重启后再次登录,好像没什么问题,升级很顺利。
进入系统执行一下apt更新命令,会告诉你这些Python包已经不需要了,可以用xxx命令移除
这时你可不要听了它的鬼话!千万不要手贱在命令行执行apt autoremove
命令,特别是当它跟你提到和Python有关的东西时,不要问我是怎么知道的,这玩意可能会把你系统里几乎所有的软件包都给扬了