将 Ubuntu 20 升级到 Ubuntu 22
说明
本文将介绍如何将操作系统从 Ubuntu 20.04 升级到 Ubuntu 22.04。
升级
警告
在升级操作系统之前,我们强烈建议对服务器上的所有数据进行完整备份。 这样可以在出现问题时作为保障,使您能够在紧急情况下恢复系统。
重要
OS 升级期间的所有命令都应以 root 用户身份在服务器终端中执行。
拒绝系统替换配置文件的建议(默认操作)。
您操作系统中 /etc/apt/sources.list.d 内的仓库文件名称可能与本说明中使用的名称不同。
- 请确保
/etc/apt/sources.list中配置了正确的仓库。 Ubuntu 20.04 的仓库列表见下方。
Ubuntu 20 仓库
### Main repo for Ubuntu focal
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
### Updates repo for Ubuntu focal
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
### Security repo for Ubuntu focal
deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse
### Backports repo for Ubuntu focal
deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
### Proposed repo for Ubuntu focal
deb http://archive.ubuntu.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-proposed main restricted universe multiverse
- 将当前所有软件包更新到最新版本
apt update && apt dist-upgrade
- 解决可能出现的 proftpd 和 apache2 升级错误
a2dismod php7.4
sed -e 's/^IdentLookups/#IdentLookups/' -i /etc/proftpd/proftpd.conf
- 运行升级
do-release-upgrade --allow-third-party
如果由于某种原因该工具未安装,您可以使用以下命令进行修复
apt install update-manager-core
重要
确认之前请仔细阅读该工具的输出,确保在此过程中不会删除任何不必要的内容。
如果系统提示您重启服务器,则表示升级成功。
接受重启
- 安装 PHP 8.1 及基础模块、PHP8.1-FPM 和 Apache2 模块
apt install -f php php-fpm libapache2-mod-php libapache2-mod-php8.1 php-common php8.1-cgi php8.1-cli php8.1-common php8.1-curl php8.1-gd php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-xml php8.1-xmlrpc php-imagick php-memcached
phpenmod calendar ctype curl dom exif fileinfo ftp gd gettext iconv mbstring mysqli mysqlnd pdo pdo_mysql phar posix readline shmop simplexml sockets sysvmsg sysvsem sysvshm tokenizer xml xmlreader xmlrpc xmlwriter xsl opcache imagick memcached
- 替换 PHP-FPM 配置
mv /opt/php81/etc/php-fpm.d/* /etc/php/8.1/fpm/pool.d/
rm /etc/php/7.4/fpm/pool.d/www.conf
mv /etc/php/7.4/fpm/pool.d/* /opt/php74/etc/php-fpm.d/
- 移除 PHP 7.4
apt purge php7.4*
- 启用 PHP 8.1
a2enmod php8.1
- 修正 FASTPANEL 数据库中的 PHP 版本
sqlite3 /usr/local/fastpanel2/app/db/fastpanel2.db "update site set php_version = 81 where mode = 'mpm_itk';"
- 安装接收邮件所需的 Dovecot 组件
apt install dovecot-lmtpd
- 重新配置服务
mogwai services configure -f
- 重启服务器
reboot
- 确保重启后所有服务均已启动
systemctl --failed
升级完成。