Linux 系统升级是系统维护的核心任务之一,旨在保持系统安全、稳定并获取最新功能。升级过程涉及更新软件包、内核、系统组件甚至整个发行版。正确的升级操作可以修复漏洞、提升性能,而错误的步骤可能导致系统不稳定甚至崩溃。
Linux 系统升级的必要性包括:
nginx
、python
)。备份数据:备份关键文件(如 /etc
、/home
)到外部存储。
sudo rsync -av /etc /home /backup
检查磁盘空间:
df -h
确保根分区 (/
) 和 /boot
有足够空间(建议 5GB 以上)。
验证网络:确保连接稳定,建议切换到国内镜像源(如清华、阿里云)。
检查当前版本:
cat /etc/centos-release
lsb_release -a
cat /etc/debian_version
更新现有软件包:升级前确保当前系统为最新状态。
dnf
(或旧版 yum
),管理 .rpm
包。apt
,管理 .deb
包。CentOS 8 是基于 Red Hat Enterprise Linux (RHEL) 的服务器发行版,升级主要涉及软件包和次版本更新。注:CentOS 8 已于 2021 年 12 月 31 日停止官方支持,推荐迁移至 CentOS Stream 或 Rocky Linux。
确保使用国内镜像源(如清华):
sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/centos/8/BaseOS/x86_64/os/CentOS-Base.repo
sudo dnf makecache
sudo dnf update -y
-y
:自动确认,适合脚本执行。
检查更新日志:
sudo dnf history
sudo dnf autoremove
sudo dnf clean all
CentOS 8 默认内核可能较旧,可手动安装新内核。
uname -r
输出示例:4.18.0-305.el8.x86_64
启用 ELRepo 仓库:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
安装最新稳定内核:
sudo dnf --enablerepo=elrepo-kernel install kernel-ml
更新 GRUB:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
重启并选择新内核:
sudo reboot
uname -r
CentOS 8 的次版本升级(如 8.4 到 8.5)通过 dnf update
完成:
sudo dnf update --refresh
检查版本:
cat /etc/centos-release
CentOS 8 停止支持后,可迁移到 CentOS Stream:
安装 CentOS Stream 仓库:
sudo dnf install centos-release-stream
切换仓库:
sudo dnf swap centos-linux-repos centos-stream-repos
同步软件包:
sudo dnf distro-sync
验证:
cat /etc/centos-release
/boot/grub2/grub.cfg
。Ubuntu 提供完善的升级机制,支持软件包、次版本和主版本升级。
确保使用国内镜像(如阿里云):
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
sudo apt update
sudo apt update
sudo apt upgrade -y
apt upgrade
:更新软件包,保持现有配置。
升级内核和系统组件:
sudo apt dist-upgrade
sudo apt autoremove
sudo apt autoclean
Ubuntu 支持从 20.04 升级到 22.04(LTS 版本)。
sudo apt install update-manager-core
编辑 /etc/update-manager/release-upgrades
:
Prompt=lts
确保仅升级到 LTS 版本。
sudo do-release-upgrade
lsb_release -a
Ubuntu 默认通过 apt dist-upgrade
更新内核。若需特定版本:
查找可用内核:
apt search linux-image
安装新内核:
sudo apt install linux-image-5.15.0-73-generic
更新 GRUB:
sudo update-grub
重启:
sudo reboot
第三方 PPA:升级前禁用第三方源:
sudo add-apt-repository --remove ppa:<name>
空间要求:主版本升级需 10GB 以上磁盘空间。
中断恢复:若升级中断,运行:
sudo dpkg --configure -a
sudo apt install -f
Debian 以稳定性著称,升级过程较为保守。
编辑 /etc/apt/sources.list
:
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
更新缓存:
sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade
sudo apt autoremove
sudo apt autoclean
从 Debian 11(Bullseye)升级到 Debian 12(Bookworm):
备份系统:
sudo tar -czvf /backup/debian-backup.tar.gz /etc /home
更新当前系统:
sudo apt update && sudo apt full-upgrade
修改软件源为 Bookworm:
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
执行升级:
sudo apt update
sudo apt upgrade --without-new-pkgs
sudo apt full-upgrade
验证:
cat /etc/debian_version
查找新内核:
apt search linux-image
安装:
sudo apt install linux-image-6.1.0-9-amd64
更新 GRUB:
sudo update-grub
重启:
sudo reboot
稳定性优先:Debian 升级需谨慎,建议在测试环境验证。
日志检查:查看 /var/log/apt
下的日志。
回滚准备:保留旧内核以便回滚:
sudo apt install linux-image-<旧版本>
系统快照:在虚拟机或 LVM 环境中创建快照。
关键服务:升级前停止关键服务(如 nginx
、mysql
):
sudo systemctl stop nginx
CentOS:
sudo dnf install --best --allowerasing <包名>
Ubuntu/Debian:
sudo apt install -f
升级后可能安装多个内核,GRUB 菜单允许选择:
编辑 /etc/default/grub
,设置 GRUB_DEFAULT=0
(默认最新内核)。
更新:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg # CentOS
sudo update-grub # Ubuntu/Debian
第三方软件可能不兼容新版本,升级前检查兼容性或重新安装。
CentOS:
sudo dnf history rollback <事务ID>
Ubuntu/Debian:
sudo dpkg --configure -a
sudo apt install -f
检查 GRUB 菜单,选择旧内核启动。
查看日志:
sudo journalctl -b
验证网络:
ping mirrors.tuna.tsinghua.edu.cn
恢复备份源:
sudo cp /etc/yum.repos.d.bak/* /etc/yum.repos.d/ # CentOS
sudo cp /etc/apt/sources.list.bak /etc/apt/sources.list # Ubuntu/Debian
清理临时文件:
sudo rm -rf /var/cache/dnf/* # CentOS
sudo apt autoclean # Ubuntu/Debian
CentOS:
sudo dnf update --refresh
Ubuntu/Debian:
sudo apt update && sudo apt upgrade
使用 htop
监控资源:
sudo dnf install htop # CentOS
sudo apt install htop # Ubuntu/Debian
htop
检查磁盘:
df -h
使用脚本定期检查更新:
#!/bin/bash
# CentOS
sudo dnf update -y
# Ubuntu/Debian
# sudo apt update && sudo apt upgrade -y
运行:
chmod +x update.sh
./update.sh
优先安装安全更新:
CentOS:
sudo dnf update --security
Ubuntu/Debian:
sudo apt install --only-upgrade <包名>
CentOS Stream 提供持续更新:
sudo dnf update --refresh
使用 Ansible 批量升级:
安装 Ansible:
sudo dnf install ansible # CentOS
sudo apt install ansible # Ubuntu/Debian
创建 playbook(upgrade.yml
):
- hosts: all
tasks:
- name: Update all packages
dnf:
name: "*"
state: latest
become: yes
运行:
ansible-playbook upgrade.yml
检查加载的内核模块:
lsmod
加载新模块:
sudo modprobe <模块名>
Linux 系统升级是确保系统安全、稳定和高效的重要步骤。本文以 CentOS 8、Ubuntu 20.04 和 Debian 11 为例,详细介绍了软件包升级、内核升级、次版本和主版本升级的流程,以及备份、故障排查和优化技巧。无论是服务器管理、开发环境维护还是桌面使用,掌握升级流程都能显著提升系统管理能力。