升级步骤
备份
备份你的数据,备份你的数据,备份你的数据。重要的事情说三遍!!!
升级当前系统安装的包1
Ubuntu 18.04 Bionic 2018年4月推出
Ubuntu 20.04 Focal 2020年4月推出
Ubuntu 22.04 Jammy 2022年4月推出
在进行系统升级前,把所有安装包升级到当前版本所支持的最新版,缩小与升级后版本的差异。
# 更新包信息
sudo apt update
# 更新包
sudo apt upgrade
# 更新包依赖项
sudo apt dist-upgrade
sudo apt autoclean
sudo apt autoremove -y
# 有时上面的命令会更新内核版本,因此强烈建议重启系统让新版本内核生效
sudo reboot
上面的命令执行完,就是当前版本下的最新安装了。之后开始系统升级。
升级系统平台
Traditionally, Debian releases have been upgradeable by changing Apt’s
/etc/apt/sources.list
, which specifies package repositories, and usingapt-get dist-upgrade
to perform the upgrade itself. Ubuntu is still a Debian-derived distribution, so this process would likely still work. Instead, however, we’ll usedo-release-upgrade
, a tool provided by the Ubuntu project, which handles checking for a new release, updating sources.list, and a range of other tasks. This is the officially recommended upgrade path for server upgrades which must be performed over a remote connection.
有两种方法可以升级系统,可以访问外部网络的情况下,推荐使用Ubuntu的升级工具
# 验证系统已经升级到当前apt源里指定的最新版
lsb_release -a
sudo apt install update-manager-core
// -d 允许使用开发版本
sudo do-release-upgrade -d
do-release-upgrade 访问出错的话,把这个文件改一下,推测是因为 do-release-upgrade 不走任何代理,所以下载不到描述文件。手动给 wget 到本地,适合不想整体替换source.list到bionic的强迫症用户。
其他方法,沿用 Debian
的升级方式,即更改apt
的镜像源版本来升级
国内服务器可以替换 archive.ubuntu.com
为 mirrors.tuna.tsinghua.edu.cn
。
# 先改本地的soures.list文件,把源先设置成目标版本对应的源
# 例如 20.04 focal 改为 22.04 jammy
sudo sed -i 's/focal/jammy/g' /etc/apt/sources.list
sudo sed -i 's/focal/jammy/g' /etc/apt/sources.list.d/*.list
# 可以不用公司内部的源,设置成 us.archive.ubuntu.com 源
# 不建议跨版本升级,如直接从16.04 -> 20.04,推荐一步步往上升级,
# 每升级一次都通过前文更新到当前系统的最新版本,然后再做下一个版本的升级动作。
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
升级过程中会弹窗提示是否覆盖当前的一些配置文件,可以按需保留,提示信息很全面。
升级后删除不必要的软件和依赖:
sudo apt autoclean
sudo apt autoremove -y
# 重启
sudo reboot
# 验证下升级结果
uname -a
lsb_release -a
问题2
在运行 sudo do-release-upgrade
后可以下载和解压 bionic.tar.gz
,但是提示下面的错误。这个问题提示信息可能有问题,实际上是 python
的版本有问题,而不是 python3
。
采用下面的命令即可修复。
$ sudo update-alternatives --remove-all python
$ sudo ln -sf /usr/bin/python2.7 /usr/bin/python