1、原理:Distcc编译模式是1客户端->多服务端;客户端将编译请求分发给多个服务端,服务端将编译结果返回客户端,提高编译速度。
2、环境部署步骤:
客户端:
1) apt-get install distcc
2) vim /etc/default/distcc 进行如下配置
STARTDISTCC="true" #开机自启动
ALLOWENDETS="127.0.0.1 192.168.0.0/24" #允许的网段
LISTENER=""
ZEROCONFIG="false"
3) vim /etc/distcc/hosts 注释掉+zeroconf
4) vim /etc/hosts 添加
192.168.0.12 pc1.local
5) echo $PATH 得到当前环境变量值
6) vim~/.bashrc 在最后添加
export PATH=/usr/lib/distcc:PATH
export DISTCC_HOSTS='localhost pc1.local
7) source ~/.bashrc
8) service distcc restart
服务端:
1) apt-get install distcc
2) vim /etc/default/distcc 进行如下配置
STARTDISTCC="true" #开机自启动
ALLOWENDETS="127.0.0.1 192.168.0.0/24" #允许的网段
LISTENER=""
ZEROCONFIG="false"
3) vim /etc/distcc/hosts 注释掉+zeroconf
4) vim /etc/hostname
添加pc1.local
5) echo $PATH 得到当前环境变量值
6) vim ~/.bashrc 在最后添加
export PATH=/usr/lib/distcc:PATH
(很多博客都只说了客户端要配置这个环境变量,实际部署中发现,若服务端不进行配置,会出现connection refused 的情况,坑了我很长时间)
7) source ~/.bashrc
8) service distcc restart
使用:
1)查看环境变量是否配置成功: which gcc 显示 /usr/lib/distcc/gcc,注意:客户端和服务端都要配置成这样。
2)在客户端执行make -j8 8可以换成其他值,代表线程数量
3) 查看任务分配情况 distccmon-text 1
3、问题:
服务端与客户端一样,一定要进行环境变量设置,export PATH=/usr/lib/distcc:PATH 否则会出现Connection refused情况。这个问题坑了我很长时间