close
這篇是用來備忘如何在 Fedora 14 上使用 distcc 來 cross-compile。

真正負責作 compilation 的機器稱為 server,可以有很多台。
在自己下指令要 build 套件的機器就是 client。

在開始之前有很重要的一點,就是 server 和 client 的 compiler 版本必須要一致
否則有可能出現一些奇奇怪怪的錯誤。

基本處理流程為:防火牆&SELinux -> Server -> Client。

Firewall & SELinux:
因為自己的環境只有自己在使用的小型區網,
所以把 server 和 client 的 firewall 全部 disable。
再編輯兩者 /etc/sysconfig/selinux 將 SELINUX 的值設為 disabled。

Server端:
$ sudo yum install distcc-server

$ sudo vim /etc/sysconfig/distccd
USER="nobody"
OPTIONS="--jobs 4 --allow 192.168.11.0/24  --port 3632"
"OPTIONS" 主要用來設定允許連線進來的 distcc client。

$ service distccd start
以上動作完成後可用 ps aux | grep distccd 來檢查 distccd 有無運作,
以及 netstat -an | grep 3632 檢查 3632 port 是否正在 listen。

Client端:
$ sudo yum install distcc

$ sudo vim /etc/distcc/hosts
DISTCC_HOSTS=192.168.11.x("x" 就是 distcc server 的 IP address)。
OPTION=lzo (lzo 代表啟動資料壓縮)

$ vim ~/.bashrc
export DISTCC_HOSTS=192.168.11.x [localhost]
(也可加入 localhost,代表使用 client 來幫忙作 compile。)
export DISTCC_POTENTIAL_HOSTS=192.168.11.x [localhost]

$ vim ~/.bash_profile
export PATH=$HOME/bin:$PATH

$ ln -s /usr/bin/distcc gcc
$ ln -s /usr/bin/distcc g++
$ ln -s /usr/bin/distcc cpp
$ ln -s /usr/bin/distcc c++

$ source ~/.bash_profile
$ source ~/.bashrc

以上動作都完成後就可以開始利用 rpmbuild 來 build packages。

參考資料
Faster compilation with distcc

Installing distcc and distccd on Fedora 11
Installing and Configuring distcc

distcc: a fast, free distributed C/C++ compiler
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 kylix 的頭像
    kylix

    kylix

    kylix 發表在 痞客邦 留言(2) 人氣()