How-To : Upgrading Fedora Linux with yum

Last Update - 08 / 05 / 2008 By DarkRanger .


環境 :


Fedora 7 -> 9

Kernel = 2.6.25.11-97.fc9


頗為明顯的,DR 是一位相當長期的 Fedora 使用者,但原因為何並不是這份文件的重點……這裡所要談的是如何利用 yum 來線上升級 Fedora 系統。首先要說明 Fedora 的一個特點是:它有著快速的生命週期,新版的發佈相當快速,平均每半年就釋出一個新版本。然而相對應的麻煩點是:Fedora Project 只會維護兩個最新版本,也就是說,當 Fedora 9 釋出後,Fedora 7 就準備要停止維護了。因此,在 Fedora 7 於 2008 年 6 月 13 日停止維護後,為了能夠保有持續的軟體更新,DR 就得著手計畫作業系統的升級。原本按照之前的作法,是要先花個五、六小時左右下載映像檔並燒錄成安裝光碟,然後把伺服器機殼給拆了裝光碟機(因為這台伺服 器平常連光碟機都沒裝,並且還要接螢幕,因為平常也是連螢幕都沒接……),最後再進行「標準」的升級安裝程序。然而話說 DR 今天正在下載映像檔的時候,突然靈機一動,想說何不就線上升級整個系統版本試試?於是便停止下載映像檔的動作,開始嘗試線上升級、將伺服器的 Fedora 7 升級到 Fedora 9,並且也順利完成了,以下就是一些心得與流程:

1. yum 升級的優點

用 yum 線上升級最容易感受到的優點是「快速」, 若是按一般升級安裝的流程,首先要花幾個小時(最慘可能幾天)下載 5、6 GB 大的光碟映像檔,然後還得把它燒成光碟。以 DR 的系統為例,用 yum 只需要下載五百多 MB 的套件即可完成升級,兩者相較的時程可說是天差地遠,並且不需光碟成本。另外 yum 是直接從線上取得最新的套件版本,若是一般升級安裝後,可能還得從線上進行大量的套件更新。

2. yum 升級的注意事項與可能問題

事實上,用一般升級安裝的方式有個好處是它會先啟動 Linux 的 kernel 再進入安裝程式,由此可以測試該 kernel 能否在目前的硬體配備中順利運作。反之用 yum 的話,得升級完後再重開機測試才能得知該 kernel 能否順利運作。不過幸好 kernel 升級都不會覆蓋舊版,萬一出了狀況可以嘗試用舊 kernel 啟動。然而更積極的方式是先上網做些功課,去瞭解兩個版本之間的 kernel 有哪些差異,有沒有一些已知的問題是需要注意的,這些資訊可以從 Fedora 官方的 Release NotesInstallation Guide 得知:

http://docs.fedoraproject.org/release-notes/

http://docs.fedoraproject.org/install-guide/

當然,Google 搜尋和討論區的相關討論也是可取用的資源。

兩 個版本之間的差異度也是要多加注意與評估的,基本上,兩個版本之間相隔越久,升級的風險(造成原本的服務出問題)就越大。若是像 Fedora 8 升到 Fedora 9 這類接代式的必然是風險最低的狀況,而像 Fedora 7 升到 Fedora 9 也還好(以 Fedora 的維護時程而言,這種隔代升級可能會成為慣例),至於從 Fedora Core 2 升級到 Fedora 9,就非常需要好好評估了,並且要做更多的功課。

另 外要記得的是,升級前的備份是一定要的,例如 SQL 資料庫、額外的驅動程式等都應該要先備份好,由於 DR 的這台伺服器所提供的是非常簡單的服務(例如連  SQL 資料庫都沒用到),所以需要備份的東西不多,但若是伺服器有提供許多服務,在備份這方面就要多加注意。

3. yum 的升級步驟

如果扣掉一些檢查步驟,其實 yum 升級的步驟非常非常的簡單,只有兩個:

(1)安裝新版套件庫(repository)
(2)執行 yum 升級指令

以升級至 Fedora 9 為例,先執行下列指令:

# rpm -Uvh ftp://download.fedora.redhat.com/pub/fedora/linux/releases/9/Everything/i386/os/Packages/fedora-release-*.noarch.rpm

如果還沒安裝 yum-fastestmirror 套件就先安裝上去,該套件可以自動偵測並連結較快速的站台:

# yum -y install yum-fastestmirror

然後下達:

# yum upgrade(注意:不是 update

若一切順利,跑完後整個系統就升級了(當然,新版 kernel 要重開機才會生效)。至於額外的檢查步驟,最主要該檢查的是非官方的套件,若有非官方的套件請先移除,或者若該套件也有新版的套件庫可安裝,就先裝上再執行升級,以 livna 為例:

# rpm -Uvh http://rpm.livna.org/livna-release-9.rpm

如果沒有先移除非官方的套件,或沒有同樣安裝新版套件庫的話,就可能因相依性無法滿足而升級中止,以 DR 的經驗來說,在執行 yum upgrade 時就被檢查出 ifstat 這個非官方的套件無法相容,於是 DR 就先把它移除後再執行 yum upgrade。


參考網站 :

http://fedoraproject.org/wiki/YumUpgradeFaq

http://linux.vbird.org/linux_server/0220upgrade.php




Back to DarkRanger.no-ip.org