我尝试在泵模式下启动distcc,但由于未知原因无法分发预处理任务。所以我卸载了与 distcc 相关的所有东西,并希望从头开始重做所有内容,以启动和运行泵模式下的 distcc。所以告诉我:需要安装哪些软件包?为了在泵模式下启动 DITCC,需要设置哪些环境变量?
OS?
我在 Debian/jessie64 上启动并运行了它,这很辛苦:(
PUMP 不适用于提供的包(python 版本不匹配左右),所以我决定从源代码编译它。
安装依赖项:
sudo apt-get install gcc make python python-dev libiberty-dev
尝试了几次,我对一些未使用的参数有误。.
./autogen.sh
./configure
编辑生成文件和注释WERROR_CFLAGS = -错误
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 地址......
使用双核从站和双核主站的结果:make -j8 CC=distcc16 秒泵制造 -j8 CC=distcc14 秒
没有distcc20 秒所以没那么多...
但是,如果您有一个全职开发团队,那就总结了!
例如 Xsec保存/编译 * 一天编译 * 20 天/月
即使对于较小的值:X=2 和 Y=30 => 20 分钟/开发人员/月,也有足够的时间在 distcc 或 ccache 上投入一点。
如果您尝试使用提供的软件包,可以在/etc/default/distcc 中找到该服务的配置。
我使用 mac 作为主,debian 作为药膏。distcc 版本 distcc-3.2rc1,并确保主版本和药膏版本相同。使用这些参数来构建 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"