網頁

2009年6月11日 星期四

fedora 11 升級心得

這是月經文,每隔一段時間就會出現。去年 12 月由 Fedora 9 升到 Fedora 10非常順利。Fedora 11 出來,當然也是有空就升級一下,挑戰一下貧乏的日子。

Fedora 11 除了完整的支援 ext4 外,還有一些我用不到但看起來很不錯的功能。
喜歡當白老鼠的我,就來試給大家看!
注意:要升級到 Fedora 11 一定要先升級到 Fedora 10 因 Fedora 11 起 rpm 的格式不同,會有大問題,可以參考舊文升級!

準備:
root# yum -y update
root# yum clean all

接下來…準備好了嗎?

雖然還是可以回頭,但想清楚,確定了嗎?

確定請 init 3 或是進入 text mode (ctrl + alt + F1), login/sudo/su as root :

root# wget ftp://download.fedora.redhat.com/pub/fedora/linux/releases/11/Fedora/i386/os/Packages/fedora-release-*.noarch.rpm
root# rpm -Uvh fedora-release-*.noarch.rpm

檢查 /etc/yum.repos.d/ 內,若有 fedora.repo.rpmnew 及 fedora-updates.repo.rpmnew,請改用新的:

mv /etc/yum.repos.d/fedora-updates.repo /etc/yum.repos.d/fedora-updates.repo.old
mv /etc/yum.repos.d/fedora-updates.repo.rpmnew /etc/yum.repos.d/fedora-updates.repo

mv /etc/yum.repos.d/fedora.repo.rpmnew /etc/yum.repos.d/fedora.repo
mv /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/fedora.repo.old

root# yum -y update
之後我出現了下面兩個錯誤,解決後再 yum -y update 即可。
說明:http://fedoraproject.org/wiki/YumUpgradeFaq 建議由 glibc\* 或是 rpm\* yum\* 先開始更新,個人認為必不需要。直接就 yum -y update 就好。

錯誤 #1:

Could not retrieve mirrorlist https://mirrors.fedoraproject.org/metalink?repo=fedora-11&arch=i386 error was
[Errno 4] IOError:
Error: Cannot retrieve repository metadata (repomd.xml) for repository: fedora. Please verify its path and try again

或是

YumRepo Error: All mirror URLs are not using ftp, http[s] or file.Eg. Invalid Browser/removing mirrorlist with no valid mirrors: //var/cache/yum/livna/mirrorlist.txt

原因: yum 無法順利自 repo site 取得套件資訊或 mirror site 資訊
解法: 修改 fedora.repo 及 fedora-updates.repo
更改套件來源,國內的 mirror site 並無完整 mirror 所有套件,無法自國內的 mirror site 進行 yum update,幾個替代網站:(你可以到 http://mirrors.fedoraproject.org/publiclist/ 找合適的 mirror)
1 http://mirrors.kernel.org/
2 ftp://download.fedora.redhat.com/pub/fedora/linux/
修改如下:將原來的 baseurl 及 mirrorlist 全加上 # comment out。再加上根據 mirrors.kernel.org 的 baseurl

fedora.repo
baseurl=http://mirrors.kernel.org/fedora/releases/11/Everything/$basearch/os/
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch

fedora-updates.repo
baseurl=http://mirrors.kernel.org/fedora/updates/11/$basearch/
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch

錯誤 #2: 套件相容問題
我的 ntp/ntpdate 有不相容問題。不加上 --nodeps 則有一堆可能會用到的套件會被移除,只好暫時將 ntp 移掉,之後若沒裝回新的,再手動裝回來。

Error: Missing Dependency: libcrypto.so.7 is needed by package d4x-2.5.7.1-8.fc9.i386 (installed)
Error: Missing Dependency: libcrypto.so.7 is needed by package ntp-4.2.4p7-1.fc10.i386 (installed)
Error: Missing Dependency: python(abi) = 2.5 is needed by package 1:hulahop-0.4.6-5.fc10.i386 (installed)
Error: Missing Dependency: libssl.so.7 is needed by package d4x-2.5.7.1-8.fc9.i386 (installed)

或是

Transaction Check Error:
package ntpdate-4.2.4p7-1.fc10.i386 (which is newer than ntpdate-4.2.4p6-4.fc11.i586) is already installed


root# yum remove d4x hulahop
root# rpm -e ntp ntpdate --nodeps

排除上面那些問題後,yum -y update 就可以順利完成!
#2 更新過程中都可以維持 200 kb/s 以上的速度。列出大於 15MB 的套件給大家參考:
(1361/1374): oxygen-icon-theme-4.2.2-1.fc11.noarch.rpm | 15 MB 00:30
(1362/1374): qt-x11-4.5.0-14.fc11.i586.rpm | 16 MB 00:53
(1363/1374): scribus-1.3.5-0.12.beta.fc11.i586.rpm | 17 MB 00:36
(1364/1374): kdelibs3-3.5.10-11.fc11.i586.rpm | 17 MB 00:23
(1365/1374): kdeedu-marble-4.2.3-1.fc11.i586.rpm | 18 MB 00:27
(1366/1374): foomatic-4.0.0-2.fc11.i586.rpm | 19 MB 00:30
(1367/1374): libgcj-4.4.0-4.i586.rpm | 19 MB 00:42
(1368/1374): kernel-2.6.29.4-167.fc11.i586.rpm | 20 MB 00:39
(1369/1374): glibc-common-2.10.1-2.i586.rpm | 23 MB 00:39
(1370/1374): gnome-user-docs-2.26.1-1.fc11.noarch.rpm | 28 MB 00:55
(1371/1374): kdegames-4.2.3-1.fc11.i586.rpm | 32 MB 00:31
(1372/1374): java-1.6.0-openjdk-1.6.0.0-22.b16.fc11.i586.rpm | 32 MB 00:32
(1373/1374): texlive-texmf-fonts-2007-28.fc11.noarch.rpm | 57 MB 01:37
(1374/1374): openoffice.org-core-3.1.0-11.3.fc11.i586.rpm | 96 MB 02:31
-------------------------------------------------------------------------------------------------
Total 340 kB/s | 1.4 GB 72:51


完裝完成,再完成檢查就成功了:
#1 開機設定
root# /sbin/grub-install BOOTDEVICE

#2 重置 init scripts 的順序
root# cd /etc/rc.d/init.d; for f in *; do /sbin/chkconfig $f resetpriorities; done

#3 清理多餘的套件
root# package-cleanup --orphans

#4 檢查升級前移除的套件,是否有裝上。
root# rpm -qa | grep ^ntp
ntp-4.2.4p6-4.fc11.i586
ntpdate-4.2.4p6-4.fc11.i586

#5 完成更新後,可將 fedora.repo 及 fedora-updates.repo 改回原來的設定就可以用了。
#6 升級過程,yum 並不會自動幫你裝新的 kernel-devel,若你有需要 install/compile 其他的 kernel module 請手動安裝:
yum install kernel-devel
#7 reboot 享受新的系統

最後補充一點,若你的系統需要支援 PAE 請用 kernel-PAE.i686。請您修改 /etc/sysconfig/kernel
Set DEFAULTKERNEL=kernel-PAE

最後再裝上 PAE kernel 就可以。
root# yum install kernel-PAE

2 則留言:

Jason 提到...

可同時安裝Fedora 11 和 Ubuntu 9-10,再以muti boot/多重開機選單方式來選擇run Fedora or Ubuntu?

han 提到...

我之前利用 DVD 裝 Fedora 新的版本時也曾利用上面的方式同時保留舊的和新的版本,等新版穩定後再移除舊版。

所以你要裝多個 linux distribution 也不是問題

需要一個共用的 /boot 磁區,利用 grub 指定不同的開機 vmlinuz, initrd

將 fedora 及 ubuntu 分別裝在不同的 root volume (如 /fedora, /ubuntu ), /usr (如 /fedora/usr, /ubuntu/usr ),
/home (如 /fedora/home, /ubuntu/home ), 當然 /home 也可以共用,但可能使用者設定檔可能會有問題…