Linux系统通过包管理系统(Package Management System)来处理软件安装、更新和卸载。不同发行版使用不同的包管理工具:
# 更新软件包列表(从服务器获取最新软件包信息)
sudo apt update
# 升级已安装的软件包
sudo apt upgrade
# 执行发行版升级(如从Ubuntu 20.04升级到22.04)
sudo apt dist-upgrade
# 自动移除不再需要的依赖包
sudo apt autoremove
# 清理下载的软件包缓存
sudo apt clean
# 更新所有软件包
sudo dnf update
# 或较旧版本使用
sudo yum update
# 检查可用的系统升级
sudo dnf upgrade --refresh
sudo dnf system-upgrade download --releasever=XX # XX为目标版本号
sudo dnf system-upgrade reboot
# 同步软件包数据库并升级所有软件包
sudo pacman -Syu
# 仅更新特定软件包
sudo apt install --only-upgrade <package-name>
# 或
sudo dnf upgrade <package-name>
# Debian/Ubuntu
apt list --upgradable
# RHEL/Fedora
dnf list updates
# Debian/Ubuntu查看历史记录
cat /var/log/apt/history.log
# 回退特定更新
sudo apt install <package-name>=<version-number>
# RHEL/Fedora使用事务历史
sudo dnf history
sudo dnf history undo <ID>
Debian/Ubuntu:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
配置文件位于/etc/apt/apt.conf.d/50unattended-upgrades
RHEL/Fedora:
sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic.timer
# 编辑crontab
sudo crontab -e
# 添加以下内容每天凌晨3点更新
0 3 * * * /usr/bin/apt update && /usr/bin/apt upgrade -y
Linux内核更新需要特别注意,因为错误的更新可能导致系统无法启动。
# Debian/Ubuntu
dpkg --list | grep linux-image
# RHEL/Fedora
rpm -qa | grep kernel
# Debian/Ubuntu
sudo apt autoremove --purge
# 手动删除特定内核版本
sudo apt remove linux-image-x.x.x-xx-generic
# RHEL/Fedora
sudo package-cleanup --oldkernels --count=2
sudo add-apt-repository ppa:user/ppa-name
sudo apt update
# 查看当前启用的源
sudo apt-cache policy
# 编辑源列表
sudo nano /etc/apt/sources.list
# 或
sudo nano /etc/apt/sources.list.d/*.list
依赖问题:
sudo apt --fix-broken install
# 或
sudo dnf autoremove
锁定错误:
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
空间不足:
sudo apt clean
# 或
sudo dnf clean all
签名错误:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <KEY_ID>
通过遵循这些指南,您可以有效地管理Linux系统的软件和系统更新,确保系统安全、稳定且高效运行。