跳转至

Fedora 更新到高版本

概要: 本文介绍如何从Fedora35升级到Fedora36,执行命令的用户均为root

创建时间: 2022.05.30 22:31:13

更新时间: 2023.08.16 22:32:43

确认当前版本

此处使用 neofetch工具,可以看到当前系统版本为35
image.png

升级准备

按照 DNF System Upgrade :: Fedora Docs 的指引,依次进行如下操作

将系统升至当前版本最新

Bash
sudo dnf upgrade --refresh
image.png
成功升级后,重启Fedora
image.png

安装系统升级插件

重启完毕后,执行如下命令安装系统升级插件 dnf-plugin-system-upgrade

Bash
sudo dnf install dnf-plugin-system-upgrade
image.png

开始升级

下载Fedora新版本升级文件

执行如下命令,下载 Fedora 36 升级包

Bash
sudo dnf system-upgrade download --releasever=36
务必确认已经完整升级过当前版本系统
image.png
接着导入GPG密钥
image.png
然后是漫长的下载...... 提示导入公钥
image.png
至此升级文件下载完毕

升级并重启Fedora

Bash
sudo dnf system-upgrade reboot
image.png
进入升级重启阶段
image.png
image.png
耐心等待升级完毕,此升级过程大概15分钟。

升级完毕

再次查看系统信息如下
image.png

升级后可选操作

更新软件库

Bash
sudo dnf update

升级配置文件

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自带的清理功能移除没有必要的包
Bash
sudo dnf autoremove

清理旧的内核

此处需要使用如下脚本 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
1
2
3
4
touch clean-kernel.sh
vim clean-kernel.sh
chmod +x clean-kernel.sh
./clean-kernel.sh
image.png
此时旧的内核已可以被移除掉。

清理失效的符号链接

首先安装清理工具

Bash
sudo dnf install symlinks
如果要清理 /usr 目录下的符号链接,使用如下命令找到失效的符号链接
Bash
sudo symlinks -r /usr | grep dangling
接下来进行自动清理,执行如下命令
Bash
sudo symlinks -r -d /usr

参考