将 Debian 11 升级到 Debian 12
说明
本文将介绍将操作系统从 Debian 11 升级到 Debian 12 的过程。
升级
警告
在升级操作系统之前,我们强烈建议对服务器上的所有数据进行完整备份。 这样可以作为出现问题时的保障,使您能够在紧急情况下恢复系统。
重要
OS 升级期间的所有命令都应以 root 用户身份在服务器终端中执行。
当系统建议替换配置文件时,请拒绝(默认操作)。
您操作系统中 /etc/apt/sources.list.d 的仓库文件名称可能与这些说明中使用的名称不同。
- 请确保
/etc/apt/sources.list中的仓库配置正确。 Debian 11 的仓库列表如下所示。
Debian 11 仓库
deb http://deb.debian.org/debian/ bullseye main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye main contrib non-free
deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
- 将当前所有软件包更新到最新版本
apt update && apt dist-upgrade
- 将
/etc/apt/sources.list中的仓库列表替换为 Debian 12 的仓库。 Debian 12 的仓库列表如下所示。
Debian 12 仓库
deb http://deb.debian.org/debian/ bookworm main contrib non-free
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free
deb http://deb.debian.org/debian-security bookworm-security main contrib non-free
deb-src http://deb.debian.org/debian-security bookworm-security main contrib non-free
- 解决潜在的 apache2 升级错误
a2dismod php7.4
- 更新软件包。 依次运行以下命令
apt update
apt upgrade
apt dist-upgrade
- 更新其他仓库
sed -i 's|bullseye|bookworm|g' /etc/apt/sources.list.d/*.list
- 添加 nginx 仓库密钥
wget -q -O - http://nginx.org/keys/nginx_signing.key |apt-key add -
重要
如果服务器上使用了 MariaDB,则需要修正仓库,以指定至少为 10.11 的版本。
您可以通过运行以下命令来查看正在使用的数据库服务器版本
mysql -V
如果使用的是 MySQL,请修正仓库、更新其密钥并添加 Debian 11 安全仓库:
sed -i 's|bookworm|bullseye|g' /etc/apt/sources.list.d/mysql.list
echo "deb http://security.debian.org/debian-security bullseye-security main" > /etc/apt/sources.list.d/bullseye-security.list
wget -q -O - http://repo.mysql.com/RPM-GPG-KEY-mysql |apt-key add -
对于低于 10.5 的 MariaDB,请使用:
sed 's/10.[0-9]/11.1/' /etc/apt/sources.list.d/mariadb.list
- 更新软件包
apt update
apt dist-upgrade
- 安装 PHP 8.2 及基础模块、PHP7.3-FPM 和 Apache2 模块
apt install -f php php-fpm libapache2-mod-php libapache2-mod-php8.2 php-common php8.2-cgi php8.2-cli php8.2-common php8.2-curl php8.2-gd php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-readline php8.2-xml php8.2-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/php82/etc/php-fpm.d/* /etc/php/8.2/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-get purge php7.4*
- 启用 PHP 8.2
a2enmod php8.2
- 修正 FASTPANEL 数据库中的 PHP 版本
sqlite3 /usr/local/fastpanel2/app/db/fastpanel2.db "update site set php_version = 82 where mode = 'mpm_itk';"
- 安装接收邮件所需的 Dovecot 组件
apt install dovecot-lmtpd
- 重新配置服务
mogwai services configure -f
- 根据所使用的数据库服务器进行附加配置
对于 MariaDB - 运行 mysql_upgrade
mysql_upgrade
- 重启服务器
reboot
- 确保重启后所有服务都已启动
systemctl --failed
升级完成。