LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5791|回复: 25

[==LFS精华系列==]使用多台计算机并行编译源码之尝试

[复制链接]
发表于 2003-2-22 13:21:11 | 显示全部楼层 |阅读模式
前面看到username兄的文章方知道有这样一个东西,可以进行分布式编译。如果有多台计算机可以线性提高编译效率。近管有多台计算机参与,但是编译的结果和在本地编译一模一样。其他的机器只是参与了计算,几台计算机工作在一起相当于有一台多处理器的计算机。

这个只有6000行代码的小程序叫做distcc。网址在 http://distcc.samba.org/

安装这个程序非常简单,把源码down下来用configure和make编译安装了即可。同时也有rpm和apt-get可以用。

安装好之后在参与计算的机器 ( 主机可以不运行 )上面运行distccd这个守护进程。如果出错显示没有distcc这个用户,那么建立一个就是“useradd distcc”

然后在主机上,定义所有参与计算的从机的地址。
export DISTCC_HOSTS="localhost hehe haha"
这里的hehe和haha是两个从机的hostname,而这个列表中越靠前的机器在计算中的优先级越高。

接着在主机上可以像往常一样解开源码包,进入源码目录。但是在运行configure之前要定义CC变量:
CC=‘distcc’ ./configure [后面跟平时编译需要的参数]
接着make的时候使用
make -jx CC=distcc
这里的x以设置为所有参与计算的cpu总数的两倍为宜。

接着make install,么,想用分布计算就用吧,但是恐怕没什么帮助。

我进行了一下测试,是在自己的vmware的虚拟网路里的,当然速度不会提高,但是运行比较正常。用如上方法,编译了bash和bison没有出现错误。

但是我遇到的问题是我在DISTCC_HOSTS里面定义hostname,程序会找不到那些从机,必须定义为IP才可以,但是据说这样使用TCP/IP的话会降低效率。看看有没有兄弟实验出来,分享一下经验。
 楼主| 发表于 2003-2-22 13:27:10 | 显示全部楼层
另外我忘了说这样使用distcc的系统安全性很不好,最好不要在连通互联网的情况下使用。

上面提到的问题在/etc/hosts里面这样设置就可以。

cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.0.2 www.mydomain.org lfs
192.168.101.1 lfs.my.org lfs
192.168.101.2 redhat.my.org redhat
192.168.101.3 debian.my.org debian

redhat 和 debian 是两个从机。在hosts中通过ip定义了一个别名,然后在DISTCC_HOSTS里面定义“localhost redhat debian" 即可。


192.168.101.x 是它们之间的虚拟网路。
发表于 2003-2-22 15:06:10 | 显示全部楼层

好办法.....

下一代的互联网。。。。。的主要特点
发表于 2003-2-22 19:00:13 | 显示全部楼层
我觉得hosts文件只是在本地系统中给外部主机定义了一个别名,这个别名只在自己机上有效。如果你想在主机A上用hostname访问主机B,必须在主机A上/etc/hosts中加入一行
xxx.xxx.xxx.xxx        B
这样就可以了。当然,借助DNS系统,就不用hosts了。
 楼主| 发表于 2003-2-23 02:55:35 | 显示全部楼层
嗯,照X11兄的说法改了一些就好了。但是这么看来都是通过IP来联系的,
我在系统里面call他的ip和call他的主机名应该没有区别才是。

而distcc的网页上面说是会慢一些。
发表于 2003-2-23 09:16:39 | 显示全部楼层
是的,如果通过DNS来实现的话,就该可以直接认识的了...
IP和主机名该是一样速度的,如果慢的话,也该是主机名慢的才对,需要解析的说...
发表于 2003-2-23 13:18:15 | 显示全部楼层
好东西..在学校网找同学装了看看...
 楼主| 发表于 2003-2-23 13:31:46 | 显示全部楼层
靠,你肯定爽了,请宿舍哥们喝个酒,趁它们卧床不起,借它们机器用一个上午。来连个10台8台的。编一个LFS不得俩小时不到就完了?hoho
发表于 2003-2-23 13:39:50 | 显示全部楼层
难..少人用..他们都是win为主..很少有以linux为主..cpu又不同..不知道会不会有什么乱子..
 楼主| 发表于 2003-2-23 13:41:19 | 显示全部楼层
据说可以在win下用cygwin。但是我没有试过,呆会可能试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表