CentOS 6 已經官方釋出了, 當然已經實測體驗過 RHEL 6(及 6.1)的企鵝人應該不會陌生(upstart 的爽快起動, ext4 文件系統格式, 全 i686 編譯及 gnome 介面優化等等), 不過激進的 Redhat 已經將 ibus 輸入法引擎取代了 scim, 並且把 scim 源碼套件排除掉, 習慣了使用 scim 及其輸入法 tables 的話會是一個急煞停的刺痛, 當然企鵝人怎會甘願被紮捆, 可以借用 Fedora 15 的 scim 源碼套件移植到 CentOS6(RHEL 6)內使用。
CentOS 6(RHEL 6)的 mock 已經放置在 epel-6 的套件庫, 只是 mock config 內容針對及指向了 beta 套件庫, 手動修改後即可以執行 mock build 別權環境編譯, 另外 RHEL6(及 CentOS 6)光碟其實已經包含了 mock build 時需要的 buildsys-build group, 利用光碟位置還可以加快 mock yum 程序。
CentOS 6 官方釋出公告
http://lists.centos.org/pipermail/centos-announce/2011-July/017645.html
CentOS 6 版本文件資料
http://wiki.centos.org/Manuals/ReleaseNotes/CentOS6.0
CentOS 6 DVD 光碟下載 torrent
i386 DVD
http://mirror.centos.org/centos/6/isos/i386/CentOS-6.0-i386-bin-DVD.torrent
x86_64 DVD
http://mirror.centos.org/centos/6/isos/x86_64/CentOS-6.0-x86_64-bin-DVD.torrent
CentOS 6 安裝 mock build 別權環境編譯
mock 別權環境編譯測試
登入 mock 群組帳戶(例如 tester 帳戶), 執行
x86_64 系統的話
build.log 是 compile 編譯源碼日誌
root.log 是 mock 環境架設執行日誌
state.log 是 mock 的狀態日誌
mock build 編譯軟體 scim
完成後就可以將編譯結果生成的 scim rpm 安裝實機使用
包括:
安裝 scim 執行
設定使用 scim 輸入法引擎
登入 xorg 桌面
執行
選擇 scim
完成
備註:
CentOS 6(RHEL 6)的 mock 已經放置在 epel-6 的套件庫, 只是 mock config 內容針對及指向了 beta 套件庫, 手動修改後即可以執行 mock build 別權環境編譯, 另外 RHEL6(及 CentOS 6)光碟其實已經包含了 mock build 時需要的 buildsys-build group, 利用光碟位置還可以加快 mock yum 程序。
CentOS 6 官方釋出公告
http://lists.centos.org/pipermail/centos-announce/2011-July/017645.html
CentOS 6 版本文件資料
http://wiki.centos.org/Manuals/ReleaseNotes/CentOS6.0
CentOS 6 DVD 光碟下載 torrent
i386 DVD
http://mirror.centos.org/centos/6/isos/i386/CentOS-6.0-i386-bin-DVD.torrent
x86_64 DVD
http://mirror.centos.org/centos/6/isos/x86_64/CentOS-6.0-x86_64-bin-DVD.torrent
CentOS 6 安裝 mock build 別權環境編譯
- 安裝 mock 軟體套件
登入 root 管理員帳號權限
安裝 epel-6 yum 套件庫下載epel-release-6-5.noarch.rpm
- 帳號設定
新增帳戶加入 mock 用戶群(例如 tester 用戶帳號)# useradd -g users -G users,mock tester
舊帳戶加入 mock 用戶群的話(例如 tester 用戶帳號)# usermod -a -G mock tester
- 配置 mock config 設定文件
編輯修改/etc/mock/epel-6-x86_64.cfg
(及/etc/mock/epel-6-i386.cfg
) 內容
將 [beta] 區段修改為(無效 comment)
將 [beta-optional] 區段修改為(無效 comment)#[beta]
#name=beta
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rhel-5.90Server-beta&arch=x86_64
將 [base] 內的 enabled=0 修改為#[beta-optional]
#name=optional
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rhel-optional-5.90Server-beta&arch=x86_64
將 [updates] 內的 enabled=0 修改為enabled=1
enabled=1
- 建立本機 repostory
如果需要使用自行建立的本機 repostory 編譯其他軟體的話(例如/opt/localrepo.x86_64
及/opt/localrepo.i386
)
編輯修改/etc/mock/epel-6-x86_64.cfg
將 [local] 區段修改為
編輯修改[local]
name=local
baseurl=file:///opt/localrepo.x86_64/
cost=500
enabled=1/etc/mock/epel-6-i386.cfg
將 [local] 區段修改為
建立本機 repository[local]
name=local
baseurl=file:///opt/localrepo.i386/
cost=500
enabled=1
執行
建立(更新)本機 repository 資料# mkdir /opt/localrepo.x86_64
# mkdir /opt/localrepo.i386
配置完成# createrepo -o /opt/localrepo.x86_64 /opt/localrepo.x86_64
# createrepo -o /opt/localrepo.i386 /opt/localrepo.i386
mock 別權環境編譯測試
登入 mock 群組帳戶(例如 tester 帳戶), 執行
x86_64 系統的話
$ mock -r epel-6-x86_64 --resultdir=$HOME --init
x86_64 系統執行 i386 mock 的話$ setarch i386 mock -r epel-6-i386 --resultdir=$HOME --init
i386 系統的話$ mock -r epel-6-i386 --resultdir=$HOME --init
mock 完成後可以查看 mock 程序生成三個 log 日誌文件結果build.log 是 compile 編譯源碼日誌
root.log 是 mock 環境架設執行日誌
state.log 是 mock 的狀態日誌
mock build 編譯軟體 scim
- 下載 Fedora 15 的 scim 源碼套件
http://download.fedora.redhat.com/pub/fedora/linux/releases/15/Everything/source/SRPMS/
包括:scim-1.4.9-8.fc15.src.rpm
scim-bridge-0.4.16-6.fc15.src.rpm
scim-tables-0.5.9-3.fc15.src.rpm
scim-pinyin-0.5.91-28.fc15.src.rpm
執行下載:
其他的輸入法 tables 語言可個別下載$ wget http://download.fedora.redhat.com/pub/fedora/linux/releases/15/Everything/source/SRPMS/scim-1.4.9-8.fc15.src.rpm
$ wget http://download.fedora.redhat.com/pub/fedora/linux/releases/15/Everything/source/SRPMS/scim-bridge-0.4.16-6.fc15.src.rpm
$ wget http://download.fedora.redhat.com/pub/fedora/linux/releases/15/Everything/source/SRPMS/scim-tables-0.5.9-3.fc15.src.rpm
$ wget http://download.fedora.redhat.com/pub/fedora/linux/releases/15/Everything/source/SRPMS/scim-pinyin-0.5.91-28.fc15.src.rpm
- 開始 mock build 編譯 scim (x86_64)
首先編譯 x86_64 的scim-1.4.9-8.fc15.src.rpm
登入 mock 群組帳戶(例如 tester 帳戶), 執行
完成 mock build 編譯(檢查 3 個 log 日誌確認)後把 scim-lib scim-devel 的 x86_64 rpm 套件放置到本機 repository 位置$ mock -r epel-6-x86_64 --arch=x86_64 --resultdir=$HOME --rebuild scim-1.4.9-8.fc15.src.rpm
更新本機 repository 資料# cp -v /home/tester/scim-lib*x86_64.rpm /opt/localrepo.x86_64
# cp -v /home/tester/scim-devel*x86_64.rpm /opt/localrepo.x86_64
準備 scim-lib scim-devel 後 mock build 編譯 x86_64 的 scim 其他依靠源碼套件# createrepo -o /opt/localrepo.x86_64 /opt/localrepo.x86_64
包括:
scim-bridge-0.4.16-6.fc15.src.rpm
scim-tables-0.5.9-3.fc15.src.rpm
scim-pinyin-0.5.91-28.fc15.src.rpm
登入 mock 群組帳戶(例如 tester 帳戶), 執行$ mock -r epel-6-x86_64 --arch=x86_64 --resultdir=$HOME --rebuild scim-bridge-0.4.16-6.fc15.src.rpm
$ mock -r epel-6-x86_64 --arch=x86_64 --resultdir=$HOME --rebuild scim-tables-0.5.9-3.fc15.src.rpm
$ mock -r epel-6-x86_64 --arch=x86_64 --resultdir=$HOME --rebuild scim-pinyin-0.5.91-28.fc15.src.rpm
完成後就可以將編譯結果生成的 scim rpm 安裝實機使用
包括:
scim-1.4.9-8.el6.x86_64.rpm
scim-libs-1.4.9-8.el6.x86_64.rpm
scim-gtk-1.4.9-8.el6.x86_64.rpm
scim-bridge-0.4.16-6.el6.x86_64.rpm
scim-bridge-gtk-0.4.16-6.el6.x86_64.rpm
scim-tables-0.5.9-3.el6.x86_64.rpm
scim-tables-chinese-0.5.9-3.el6.x86_64.rpm
scim-pinyin-0.5.91-28.el6.x86_64.rpm
安裝 scim 執行
# rpm -ivh rpm_file_name
設定使用 scim 輸入法引擎
登入 xorg 桌面
執行
im-chooser
選擇 scim
完成
備註:
- mock-1.1.11-1.el6 在 CentOS 6(RHEL 6) 下執行時有一個小臭蟲, 在編譯前安裝要求套件時, 如果要求的套件在 [base] 及其他 repository 中有相同名稱相同版本的話, 會預設安裝 [base] 內的套件, 就算加入 cost=xxx 優先次序(或順序排列)亦無效, 唯一辦法是在 [base] 內加入 exclude= 項目來排除誤裝相同名稱套件(已實測)。
- 如果執行 mock 時使用了錯誤 [base] repository(例如 i386 使用了 x86_64)的話, 因為已經 cache 緩存而失敗無法再 yum 成功, 解決辦法是刪除清空 mock cache 緩存目錄 /var/cache/mock/ 。
- RHEL 5(CentOS 5)系統內無法使用 mock build 編譯 CentOS 6(RHEL 6)的源碼套件, 主要原因是 RHEL5 的 rpm-lib 軟體版本不向上兼容 RHEL6 的 rpm 軟體套件包(已實測), 反之 RHEL6 系統內卻可以 mock build 編譯 RHEL5 的源碼套件。