跳转到主要内容

将 Ubuntu 20 升级到 Ubuntu 22

说明

本文将介绍如何将操作系统从 Ubuntu 20.04 升级到 Ubuntu 22.04

升级

警告

在升级操作系统之前,我们强烈建议对服务器上的所有数据进行完整备份。 这样可以在出现问题时作为保障,使您能够在紧急情况下恢复系统。

重要

OS 升级期间的所有命令都应以 root 用户身份在服务器终端中执行。

拒绝系统替换配置文件的建议(默认操作)。

您操作系统中 /etc/apt/sources.list.d 内的仓库文件名称可能与本说明中使用的名称不同。

  1. 请确保 /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
  1. 将当前所有软件包更新到最新版本
apt update && apt dist-upgrade
  1. 解决可能出现的 proftpd 和 apache2 升级错误
a2dismod php7.4

sed -e 's/^IdentLookups/#IdentLookups/' -i /etc/proftpd/proftpd.conf
  1. 运行升级
do-release-upgrade --allow-third-party

如果由于某种原因该工具未安装,您可以使用以下命令进行修复

apt install update-manager-core
重要

确认之前请仔细阅读该工具的输出,确保在此过程中不会删除任何不必要的内容。

如果系统提示您重启服务器,则表示升级成功。

接受重启

  1. 安装 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
  1. 替换 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/
  1. 移除 PHP 7.4
apt purge php7.4*
  1. 启用 PHP 8.1
a2enmod php8.1
  1. 修正 FASTPANEL 数据库中的 PHP 版本
sqlite3 /usr/local/fastpanel2/app/db/fastpanel2.db "update site set php_version = 81 where mode = 'mpm_itk';"
  1. 安装接收邮件所需的 Dovecot 组件
apt install dovecot-lmtpd
  1. 重新配置服务
mogwai services configure -f
  1. 重启服务器
reboot
  1. 确保重启后所有服务均已启动
systemctl --failed

升级完成。