如何修复 distcc 错误

How to fix distcc error

我试图让 distcc 在两台机器 CLIENT 和 SERVER 之间工作 "think" 我已经正确设置了它,但我仍然收到这个错误

(dcc_build_somewhere) Warning: failed to distribute, running locally instead

服务器上没有编译。

我的配置如下

CLIENT = 192.168.0.14 SERVER = 192.168.0.15

/etc/default/distcc 服务器

 STARTDISTCC="true"
    ALLOWEDNETS="192.168.0.0/24" // Also tried CLIENT IP here
    LISTENER="192.168.0.15" // SERVER IP
    NICE="10"
    JOBS="16"
    ZEROCONF="false"

客户端 - 是的,我知道它目前设置为仅在服务器上编译

DISTCC_HOSTS="192.168.0.15"
/etc/distcc/host set to 192.168.0.15
$HOME/.distcc/host set to 192.168.0.15

命令

make -jx CC=distcc 

我试过不同的软件回购协议,看看是否有个别回购协议有问题,但无论软件包如何,问题仍然存在。

编辑 分发失败错误是客户端错误。服务器端日志指示

distccd[1046] (dcc_job_summary) client: 192.168.0.14:40732 COMPILE_ERROR exit:1 sig:0 core:0 ret:0 time:94ms gcc certs/system_keyring.c

我通过升级我的 GCC 版本解决了这个问题。客户端和服务器现在 运行 5.x。

查看日志:

DISTCCD_OPTS="${DISTCCD_OPTS} --log-file /var/log/distccd.log"  

就我而言,我的日志说:

(dcc_warn_masquerade_whitelist) CRITICAL! /usr/local/lib/distcc not found. You must see up masquerade (see distcc(1)) to list whitelisted compilers or pass --enable-tcp-insecure. To set up masquerade automatically run update-distcc-symlinks.

所以我不得不 运行:

sudo update-distcc-symlinks
sudo ln -s /usr/lib/distcc /usr/local/lib/distcc # because I compiled from source