0

我曾尝试以泵模式启动 distcc,但由于未知原因,它无法分发预处理任务。所以我已经卸载了所有与 distcc 相关的东西,并想从头开始重做所有事情,以使 distcc 在泵模式下启动并运行。那么告诉我:需要安装哪些软件包?为了以泵模式启动 distcc 需要设置哪些环境变量?

4

2 回答 2

0

操作系统?

我在 Debian/jessie64 上启动并运行它,这是一项艰苦的工作:(

PUMP 不适用于提供的软件包(python 版本不匹配左右),所以我决定从源代码编译它。

安装依赖:

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

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

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

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

但如果你有一个全职的开发团队,它就会总结出来!

例如 XsecSaved/compile * Ycompiles a day * 20days/month

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

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

于 2015-05-27T18:31:14.087 回答
0

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

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

普通模式

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

泵模式

include_server 可能有问题。某些选项标志会导致包含服务器无法分析。在这种情况下,您将无法将任何头文件泵送到包含服务器,因此,药膏不能递归地包含它们。您必须在 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"
于 2016-07-04T04:48:59.583 回答