如何在泵模式下启动distcc

时间:2015-01-16 12:36:46

标签: compilation distributed-computing distcc

我试图在泵模式下启动distcc,但由于未知原因,它无法分发预处理任务。因此,我已经卸载了与distcc相关的所有内容,并希望重新启动所有内容,从开始到泵模式启动和运行distcc。 所以告诉我: 需要安装什么包? 为了在泵模式下启动distcc,需要设置哪些环境变量?

2 个答案:

答案 0 :(得分:0)

OS?

我在Debian / jessie64上运行并运行起来很辛苦:(

PUMP没有使用提供的软件包(python-version不匹配等),所以我决定从源代码编译它。

安装依赖项:

sudo apt-get install gcc make python python-dev libiberty-dev

尝试了几次,我得到了一些未使用的参数的错误..

./autogen.sh
./configure

编辑Makefile和评论 WERROR_CFLAGS = -Werror

make
sudo make install
每个客户端上的

(您要从哪里开始编译) 编辑〜/ .distcc / hosts

localhost,cpp,lzo anotherhost,cpp,lzo

cpp启用泵模式,这需要 lzo压缩

在每个服务器上(编译从站) - 机器可以是两者!

distccd --deamon --listen IPOFMACHINE --allow IP_OR_NET

我在使用Debian软件包时遇到问题,当listen没有指定机器的IP地址时......

使用DualCore Slave和DualCore Master的结果: make -j8 CC = distcc 16秒 pump make -j8 CC = distcc 14秒

没有distcc 20秒 所以没那么多......

但如果你有一个全职的开发团队,它总结了一下!

e.g。 XsecSaved / compile * Y编译一天* 20天/月

即使是小值:X = 2且Y = 30 => 20分钟/开发人员/月,有足够的时间在distcc或ccache上投入一点点。

如果您尝试使用提供的软件包,可以在/ etc / default / distcc中找到该服务的配置

答案 1 :(得分:0)

我使用mac作为主人和debian作为salve。 distcc版本distcc-3.2rc1,并确保你在master和salve上都有相同的版本。 使用这些参数来构建distcc

./autogen.sh
./configure --disable-Werror
make -s 2>Logs
make install
  

普通模式

没有问题就成功了。除了我镜像矿源代码的绝对路径以分发编译,这是一种肮脏的作品。

  

泵模式

可能与include_server有关。某些选项标志将导致包含服务器无法分析。在这种情况下,您将无法将任何头文件泵送到包含服务器,因此,salves无法递归地包含它们。您必须在include_server / parse_commands.py中添加一些选项标志,以便在泵上设置包含服务器。

可能会显示一些您登录的/var/log/daemon.log或/var/log/distccd.log会更好地提供帮助。

如果您在这些目录中没有日志文件,请编辑/etc/init.d/distcc

DAEMON_ARGS="--pid-file=/var/run/$NAME.pid --log-level=info --log-file=/var/log/$NAME.log --    verbose --daemon"