使用 mock 建構 XCP

很久沒有玩 Linux 了。

其實我也不大懂 mock 。初步的認識,自以為是一個 better rpmbuild ( 再怎麼優秀,我都沒辦法比 Gentoo 的 portage 更喜歡@@ )。可以以另外一個 rpm based 系統為建構標的工具,不過說是另外一個  rpm base 的系統好像又太過,正常的 mock 似乎只包含了 RedHat 自家發產的分型版本:EPEL and Fedora。為什麼會碰到 mock 這是因為想 build XCP from Source,依照 http://wiki.xensource.com/xenwiki/XCP_Monthly_Meetings October 14, 2010的說法,未來 XCP 應該會使用 mock 作為 build system。

詳細的說明:http://fedoraproject.org/wiki/Projects/Mock

For Xen XCP 的作法(以 1.0beta 為例子):

  1. 下載 1.0 beta 的 source-1.iso 和 source-4.iso ==> http://blog.xen.org/index.php/2010/11/24/the-xen-cloud-platform-xcp-1-0-beta-is-available-from-xen-org/
  2. source-4.iso 裡面應該是 dom0 base 所需的 RPM package ,目前是以 CentOS 5 為基礎。(依照他們的期望,是希望趕快一道 CentOS 6 上面)
  3. source-1.iso 裡面應該是 xensource 針對 CentOS 5 增加的套件。目錄很多很雜,請參考 README
  4. 接下來使用 mock 初始化一個目標發行版本。mock -r epel-5-i386 init (註1,2)
  5. 也許只有 glibc 是比較值重新編譯調整,其他centos 的套件應該沒有重編的必要,所以我只處理 source-1.iso/guest-packages-dom0
  6. 不過這些套件邊一時仍然有相依的套件是 Step 4 裡面沒安裝的。用 for i in `ls *.src.rpm`; do mock -r epel-6-i386 –installdeps $i; done 補足。
  7. 接下來就是不斷的小修 src.rpm 和測試了

註1.  mock 要使用前還有些事情要配置,ex: 不能使用 root ,詳情請參考 http://fedoraproject.org/wiki/Projects/Mock。如果你堅持看中文:http://fedoraproject.org/wiki/Zh/Mock_%E6%95%99%E5%AD%A6
註2. XCP 使用了一個混和的配置 XEN 的 hypervisor 是 64bits, 但是 dom0 是 32bits,xensource 有提供 64bits 的 Cross Compiler。另外一方面,我並不知道 64 bits 環境下配置 epel-5-i386 會不會失敗。 64bits 的 compiler 只是為了編譯 Xen某部分需要 64bits Code的部分。(My mistake😛 )

我的目的是先建構出一個基本的 dom0,這些文章將是信手的筆記。請不要當作教學文件。QQ 謝謝

原諒我的中英混雜,因為有些英文真的不知道該怎麼用中文呈述。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: