2008年6月16日 星期一

applydeltaiso

在 openSUSE 10.3 或之前版本
$ applydeltaiso openSUSE-11.0-RC1-DVD-i386.iso openSUSE-11.0-RC1_GM-DVD-i386.delta.iso openSUSE-11.0-GM-DVD-i386.iso
reading 725759968 bytes from old iso...done
cracklib-dict-full (???): applying delta
payload uncompress error

這是因為 11.0 的 rpm 使用了 LZMA
所以當您在 10.3 要進行更新的時候無法處理 11.0 的 rpm
要到 http://download.opensuse.org/repositories/home:/coolo/openSUSE_10.3/ 下載新版的 rpm 和 deltarpm 套件來安裝
參考:
http://www.suse.com/relnotes/i386/openSUSE/11.0/RELEASE-NOTES.zh_TW.html
http://linux.derkeiler.com/Mailing-Lists/SuSE/2008-05/msg00152.html

根據 http://zh_tw.opensuse.org/下載指南#Deltaisos
只要有 dvd 也可以進行 applydeltaiso
所以將 delta-iso 傳到 11.0 rc1 的測試機上
$ df
檔案系統 1K-區段 已用 可用 已用% 掛載點
/dev/sda6 10325748 4319100 5482128 45% /
udev 253412 124 253288 1% /dev
/dev/sda7 11985948 1539680 9837408 14% /home
/dev/sda1 54950296 7823640 47126656 15% /windows/C
/dev/sr0 4517610 4517610 0 100% /media/SU1100.001

看看 dvd 掛在哪個裝置下,就可以開始進行修改 iso 了
$ applydeltaiso /dev/sr0 openSUSE-11.0-RC1_GM-DVD-i386.delta.iso openSUSE-11.0-GM-DVD-i386.iso
reading 725759968 bytes from old iso...done
cracklib-dict-full (lzma.2): applying delta
fonts-arabic (lzma.2): applying delta
fonts-thai (lzma.2): applying delta
FZSongTi (lzma.2): applying delta
indic-fonts (lzma.2): applying delta
IPAGothic (lzma.2): applying delta
KhmerOS-fonts (lzma.2): applying delta
lklug (lzma.2): applying delta
unfonts (lzma.2): applying delta
...
abcde.i586 (lzma.2): applying delta
abiword.i586 (lzma.2): applying delta
acl.i586 (lzma.2): applying delta
acpid.i586 (lzma.2): applying delta
acroread.i586 (lzma.2): applying delta
Out of memory allocating 119074556 bytes!

可惜失敗了,是因為使用 dvd 比較耗資源嗎?
將 dvd 轉成 iso 試試看
$ dd if=/dev/sr0 of=openSUSE-11.0-GM-DVD-i386.iso

再進行一次 applydeltaiso
結果仍停在同一個地方
只好回到 10.3 的工作機上用最前面的方法--升級 rpm
applydeltaiso 是一件巨大的工程,適用於頻寬不夠時減少下載的檔案大小
最後終於完成了
...
yum-basearchonly.noarch (lzma.2): applying delta
zd1211-firmware.noarch (lzma.2): applying delta
iso sucessfully re-created, md5sum: ed6a5b3feb668866df812b1c2aed9d7f

檢查一下 md5sum
沒錯就 OK 了

回想起來可能是因為 11.0 rc1 的測試機記憶體太小(512MB)
加上沒切 swap 更正:有 512MB 的 swap <-- 這應該是主因
還是按規矩來得好

沒有留言: