如何使用 CLI 将 Debian 10 升级到 Debian 11 Bullseye
Debian Linux 11“Bullseye”已发布。新版本提供更新的软件包和五年的支持。本页介绍如何使用命令行选项将 Debian 10 Buster 更新到 Debian 11 Bullseye,包括升级所有已安装的软件包。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 包管理器 |
先决条件 | Debian Linux 10 |
操作系统兼容性 | Debian • Linux |
预计阅读时间 | 8 分钟 |
Debian 11 有什么新功能?
- Apache 2.4.48
- Bash 5.1.4
- BIND DNS 服务器 9.16
- Emacs 27.1
- GNOME 桌面 3.68
- KDE 桌面 5.20
- Libreoffice 7.0
- Lighttpd 1.4.59
- Linux 内核 5.10.0-8
- 11 号
- 0.16
- MariaDB 10.5
- MATE 1.24
- Nginx 1.18
- OpenSSH 8.4p1
- Perl 5.32.1
- PHP 7.4
- PostgreSQL 13
- Python 3.9.2(默认,但如果需要也可以安装 Python 2.7.18)
- Rustc 1.48
- Vi 改进版 (VIM) 8.2
- Xfce 4.16。
将 Debian 10 升级到 Debian 11 Bullseye
流程如下:
- 备份系统。
- 更新现有软件包并重新启动 Debian 10 系统。
- /etc/apt/sources.list使用文本编辑器编辑文件,并将每个实例替换buster为bullseye。接下来找到 security 行,将 keyword 替换buster/updates为bullseye-security。
- 更新 Debian Linux 上的软件包索引,运行:
sudo apt update - 准备操作系统最小系统升级,运行:
sudo apt upgrade --without-new-pkgs - 最后,通过运行以下命令将 Debian 10 更新至 Debian 11 bullseye:
sudo apt full-upgrade - 重新启动 Linux 系统,以便可以启动 Debian 11 Bullseye
- 验证一切是否正常工作。
让我们逐步查看将Debian 10 Buster 升级到在云或裸机环境中安全运行的 Debian 11 Bullseye 的所有命令。
步骤 1. 备份您的系统
$ lsb_release -a
: 这是我看到的:
No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 10 (buster) Release: 10 Codename: buster
记下Linux 内核版本:
$ uname -mrs
我的 Linux 内核版本:
Linux 4.19.0-18-amd64 x86_64
另外记下 Debian 版本:
$ cat /etc/debian_version
Outputs:
10.11
第 2 步:更新所有现有安装的软件包
任何处于保留状态的软件包都会对升级过程造成问题。因此,使用 apt-mark 命令列出所有不升级的软件包:
然后使用以下命令逐个删除所有列出软件包的主机状态:有关更多信息,
请参阅“ Ubuntu / Debian Linux 上的 apt-get 保留软件包”。在将 Debian 版本升级到 11 之前,必须将所有安全补丁和待处理的升级应用到 Debian 10 本身。因此,请键入以下apt 命令或apt-get 命令:
或者重新启动 Debian 10.x buster以应用内核和其他更新:
$ sudo apt-mark showhold | more
# OR #
$ sudo dpkg --get-selections | grep 'hold$' | more
$ sudo apt-mark unhold package_name
## OR ##
$ echo 'package_name install' | sudo dpkg --set-selections
$ sudo apt update
$ sudo apt upgrade
$ sudo apt full-upgrade
$ sudo apt --purge autoremove
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get full-upgrade
$ sudo apt-get --purge autoremove
$ sudo systemctl reboot
步骤 3. 更新 /etc/apt/sources.list 文件
$ more /etc/apt/sources.list
旧 Debian 10 APT 配置文件:
deb http://deb.debian.org/debian buster main
deb-src http://deb.debian.org/debian buster main
deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main
# buster-updates, previously known as 'volatile'
deb http://deb.debian.org/debian buster-updates main
deb-src http://deb.debian.org/debian buster-updates main
关键字buster表示我们正在使用旧版本 10。因此,我们必须使用文本编辑器(如 vim)将此文件中的所有引用从 更改Buster为: 我更喜欢使用 sed 工具,但首先使用cp 命令备份所有配置文件: 编辑 /etc/apt/sources.list 文件: 找到Buster 的行: 替换为: 或者以下语法也有效: 然后在 /etc/apt/sources.list 和 /etc/apt/sources.list.d/* 目录中用 bullseye 替换其他 buster 行。例如,查找: 替换为: 立即查看更新的文件:Bullseye
$ sudo vi /etc/apt/sources.list
$ sudo cp -v /etc/apt/sources.list /root/
$ sudo cp -rv /etc/apt/sources.list.d/ /root/
$ sudo vim /etc/apt/sources.list
debian-security
deb http://mirrors.linode.com/debian-security buster/updates main
deb http://mirrors.linode.com/debian-security bullseye-security main
deb http://mirrors.linode.com/debian-security bullseye-security/updates main
deb http://mirrors.linode.com/debian buster main
deb http://mirrors.linode.com/debian bullseye main
$ cat /etc/apt/sources.list
更新 APT 源列表文件以使用 Bullseye 版本
deb http://mirrors.linode.com/debian bullseye main
deb-src http://mirrors.linode.com/debian bullseye main
deb http://mirrors.linode.com/debian-security bullseye-security/updates main
deb-src http://mirrors.linode.com/debian-security bullseye-security/updates main
# bullseye-updates, previously known as 'volatile'
deb http://mirrors.linode.com/debian bullseye-updates main
deb-src http://mirrors.linode.com/debian bullseye-updates main
这是我更新的 APT 配置文件 AWS Lightsail/EC2 服务器:
deb http://cdn-aws.deb.debian.org/debian bullseye main deb http://security.debian.org/debian-security bullseye-security main deb http://cdn-aws.deb.debian.org/debian bullseye-updates main
更新软件包列表
然后运行:
$ sudo apt update
步骤 4. 最小系统升级
为避免删除大量要保留的软件包,需要进行两部分操作。因此,首先运行以下命令进行应用:
$ sudo apt upgrade --without-new-pkgs
只需按照屏幕上的说明进行操作即可。在升级过程中,您可能会收到各种问题,例如“要重新启动服务吗?”或“保留或删除配置选项”等。例如,我得到了如下屏幕,显示新的更改:
APT 列出更改并显示有关软件包更新的新闻。请务必阅读它们。
确保选择“是”选项
为什么升级系统时会出现这样的提示?
您的系统上安装了某些服务,在升级特定库(如 libpam、libc 和 libssl)时需要重新启动这些服务。由于这些重新启动可能会导致系统服务中断,因此每次升级时系统通常会提示您要重新启动的服务列表。您可以选择此选项以避免被提示;相反,所有必要的重新启动都将自动为您完成,这样您就可以避免在每次库升级时都被询问问题。
步骤 5.将 Debian 10 升级到 Debian 11
此外,最低限度的升级我们需要进行全面升级才能完成整个 Debian 10 到 Debian 11 的更新过程。这是升级的主要部分。换句话说,执行以下命令对系统进行完整升级,安装所有软件包的最新可用版本,并解决所有可能的依赖关系:
$ sudo apt full-upgrade
您可能会看到有关重新启动服务或更新现有配置选项的其他提示。仔细检查这些。例如,我有机会更新或保留 OpenSSH 配置文件,如下所示:
您想对修改后的配置文件做什么?
$ sudo systemctl reboot
输出:
Connection to 45.xx.zzz.yyy closed by remote host. Connection to 45.xx.zzz.yyy closed.
尝试运行ping 命令以在服务器恢复在线时获取通知:
$ ping -a server_IP_here
ping -a 45.xx.zzz.yyy
步骤6.验证
现在是确认升级的时候了。运行:
我收到更新成功确认:
$ uname -r
$ lsb_release -a
No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye
升级后,请留意所有应用和服务。因此,请使用 tail 命令或 ss 命令或grep 命令/ egrep 命令验证所有 TCP/UDP 端口是否已打开且服务是否正在运行:
sudo ss -tulpn sudo tail -f /var/log/mail.log sudo tail -f /var/log/nginx/access_log # look for errors if any sudo grep 'error' /var/log/my_app/app1.log sudo egrep -i 'err|fail|warn|crit' /var/log/nginx/python_app.log # Check for service status sudo systemctl status nginx.service sudo systemctl status mariadb.service # Use journalctl to query the contents of the systemd(1) journal sudo journalctl sudo journalctl -u sshd.service
关于删除不需要的软件包的说明
$ sudo apt --purge autoremove
关于缺少驱动程序或固件 blob 的说明
当您将系统从 Debian 10 更新到 11 时,系统上存储的特定固件将被禁用。查看 /lib/ 下的内核模块目录以查找已禁用的固件。例如,您可能会看到上次升级后名为 firmware-6.bin.disabled 的 Qualcomm 固件文件。这些文件需要再次安装或升级,然后重新启动系统。对于 NVidia 等专有驱动程序也是如此。因此,备份和不要惊慌是至关重要的。
总结
就这样,我们成功升级到了 Debian Linux 11。更新的 Debian 11 版本总是通过 Linux 内核带来新功能和硬件支持。因此,必须评估需求,然后进行升级。Debian Linux 项目还发布了一份深入指南,解释了安装过程中可能遇到的其他问题。确保使用 man 命令阅读手册页:
$ man apt
$ man apt-get