Fedora 更新到高版本
概要: 本文介绍如何从Fedora35升级到Fedora36,执行命令的用户均为root
创建时间: 2022.05.30 22:31:13
更新时间: 2023.08.16 22:32:43
确认当前版本
此处使用 neofetch
工具,可以看到当前系统版本为35

升级准备
按照 DNF System Upgrade :: Fedora Docs 的指引,依次进行如下操作
将系统升至当前版本最新
Bash |
---|
| sudo dnf upgrade --refresh
|

成功升级后,重启Fedora
安装系统升级插件
重启完毕后,执行如下命令安装系统升级插件 dnf-plugin-system-upgrade
Bash |
---|
| sudo dnf install dnf-plugin-system-upgrade
|
开始升级
下载Fedora新版本升级文件
执行如下命令,下载 Fedora 36 升级包
Bash |
---|
| sudo dnf system-upgrade download --releasever=36
|
务必确认已经完整升级过当前版本系统

接着导入GPG密钥

然后是漫长的下载...... 提示导入公钥

至此升级文件下载完毕
升级并重启Fedora
Bash |
---|
| sudo dnf system-upgrade reboot
|

进入升级重启阶段


耐心等待升级完毕,此升级过程大概15分钟。
升级完毕
再次查看系统信息如下

升级后可选操作
更新软件库
升级配置文件
Bash |
---|
| sudo dnf install rpmconf
sudo rpmconf -a
|
清理重试下载的文件
Bash |
---|
| sudo dnf install remove-retired-packages
remove-retired-packages
|
清理已损坏的包
以下命令会列出依赖关系损坏的包
Bash |
---|
| sudo dnf repoquery --unsatisfied
|
以下命令会列出重复的包
Bash |
---|
| sudo dnf repoquery --duplicates
|
使用dnf自带的清理功能移除没有必要的包
清理旧的内核
此处需要使用如下脚本 clean-kernel.sh
来进行内核清理工作
Bash |
---|
| #!/usr/bin/env bash
old_kernels=($(dnf repoquery --installonly --latest-limit=-1 -q))
if [ "${#old_kernels[@]}" -eq 0 ]; then
echo "No old kernels found"
exit 0
fi
if ! dnf remove "${old_kernels[@]}"; then
echo "Failed to remove old kernels"
exit 1
fi
echo "Removed old kernels"
exit 0
|
依次执行如下命令
Bash |
---|
| touch clean-kernel.sh
vim clean-kernel.sh
chmod +x clean-kernel.sh
./clean-kernel.sh
|

此时旧的内核已可以被移除掉。
清理失效的符号链接
首先安装清理工具
Bash |
---|
| sudo dnf install symlinks
|
如果要清理 /usr
目录下的符号链接,使用如下命令找到失效的符号链接
Bash |
---|
| sudo symlinks -r /usr | grep dangling
|
接下来进行自动清理,执行如下命令
参考