Fedora版本升级方法及注意事项

Table of Contents

1 一些经验

  1. 尽量在网速较快的情况下做升级操作;
  2. 把系统语言先修改成英文的(可更改系统语言配置文件:/etc/locale.conf),以防出现因中文编码问题打断升级过程;
  3. 系统升级过程中不要中断,被中断可能会出现包冲突的情况,详细请见后面“处理包冲突”一节。
  4. 出现问题多看系统日志。

2 过程

1、 先更新当前系统软件包到最新:

sudo dnf upgrade --refresh

2、下载新版本所需的软件包,–releasever参数指定需要升级至的版本:

sudo dnf system-upgrade download --releasever=24

如果是第一次升级系统大版本,可能需要为DNF单独安装system-upgrade组件才能运行上面的命令:

sudo dnf install dnf-plugin-system-upgrade

3、重启,并进入系统升级阶段:

sudo dnf system-upgrade reboot

3 处理包冲突

在重启后进入升级阶段时,谨记不要轻易中断升级过程,因为系统是先安装新版本软件,再去清理老版本软件,在清理老版本软件之前打断升级过程就会出现包冲突。比如当前系统是Fedora 23,要升级到Fedora 24,在更新Fedora 24软件包阶段时被中断,一些软件就会同时存在Fedora23、24两个版本的包,这种情况叫作包冲突。如果系统关键组件(比如Grub、Systemd等)出现包冲突,系统是无法正常启动的。

发生包冲突后再去重新升级系统,会提示“file [冲突的包] from install of [冲突的包] conflicts with file from package”错误。这种情况可用命令:

rpm -q [冲突的包]

去查看包是否冲突,如:

rpm -q grub2

如果一个包返回了两个已安装的版本,说明发生了冲突。可用命令:

sudo package-cleanup --dupes

扫描系统中所有存在包冲突的软件。

一些网友给的方法是通过以下命令删除老版本的包:

rpm -e [包名] --nodeps # 不删除依赖的情况下删除某个包

但往往出现冲突的包不止一个,手动处理比较繁琐,系统升级中遇到包冲突可直接用DNF将所有包升级到最新版本来解决:

sudo dnf --releaserver=24 distro-sync