Linux入门教程:从Fedora 21升级到Fedora 22


阅读目录

  • 引言
  • 先将Fedora 21的所有软件包更新到最新状态
  • 安装fedup软件包
  • 升级系统
  • 解决系统升级过程出错的问题
  • 重启系统
  • 新系统的变化

引言

  Fedora 22于5月26日发布,带有不少新特性。yum 包管理系统被完全淘汰,全面使用 dnf 进行替代。Wayland 的应用更进一步,gdm 已经默认使用 wayland 了,但是 gnome-session 依然默认使用 Xorg 。以前每次升级新版本都是从头开始安装,但这一次,我使用了从 Fedora 21 升级到 Fedora 22 的策略,没有从头进行安装。升级过程很顺利,升级完成后,我的所有系统配置和美化方案都还在,而且我感觉 Fedora 22 比 Fedora 21 漂亮了很多。下面展示我的升级过程。

先将Fedora 21的所有软件包更新到最新状态

  第一步是先将Fedora 21的所有软件包更新到最新状态。使用一条 sudo dnf update 命令即可:

sudo dnf update

  其实在 Fedora 21 中就可以使用 dnf 进行软件包的管理了,只不过在 21 中是 dnf 和 yum 并存,而在 Fedora 22 中是完全抛弃了 yum 。dnf 命令和 yum 命令几乎是完全兼容的,切换起来没有难度。

安装fedup软件包

  此次升级的工具是 fedup 。该软件包需要自己安装,命令如下:

sudo dnf install fedup

升级系统

  第三步就是升级系统了。直接使用如下命令:

sudo fedup --network 22

解决系统升级过程出错的问题

  本以为一切升级过程会一切顺利,结果升级过程中出现了意外。错误提示为“UnicodeEncodeError: 'ascii' codec can't encode characters in position 32-34: ordinal not in range(128)”。意思很清楚,说的是 python 语言对 ascii 字符的解析错误。在网上使用该错误信息进行搜索,发现这是 python 脚本编写的问题,在 Python 脚本中加入如下代码可解决问题:

import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

  这说明 fedup 软件包还存在一点点缺陷,这个 Bug 我已经提交了。但是我自己不可能去修改 fedup 的脚本。我是如何解决这个问题的呢?很简单,将系统语言改成英文即可。升级完成后再修改成中文。也就是说,中文系统在升级的过程中会出错,而英文的不会。

重启系统

  重启系统,在 Grub 的启动界面中选择第一项,如下图:

  然后等待升级的完成,这个需要点时间。

新系统的变化

  升级过程很顺利,升级后的系统也很稳定。升级的系统和新安装的系统的区别就是尽量保持了用户的配置。比如我升级后的系统连壁纸都没有变,而新安装的系统则是有另外一套壁纸。但是 Fedora 22 和 Fedora 21 相比还是有点小变化,窗口主题没有了, gnome-tweak-tool 里也没办法设置窗口主题了,只能设置 GTK+ 主题。因此,我告别了 clearlooks ,选择了默认的主题。而 Fedora 22 的默认主题和之前的版本相比,确实漂亮很多。如下图,左侧是 gnome-terminal 的界面,黑色的,右边是 firefox 的界面,白色的,窗口边缘都有淡淡的光晕,看着很舒服:

相关内容