2021-05-12 14:32:11
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 的介面,白色的,視窗邊緣都有淡淡的光暈,看著很舒服:
相關文章