1. Ставлю distcc и компиляторы: sudo apt-get install -y distcc distcc-server gcc gcc-c++ sudo /usr/sbin/update-distcc-symlinks sudo sed -i /etc/sysconfig/distccd -re 's;^OPTIONS\>[=].*$;OPTIONS="--log-file=/var/log/distccd.log --log-level=debug";' sudo systemctl start distccd 2. Пытаюсь что-нибудь собрать: cat > hello.c <<-EOF #include <stdio.h> int main(int argc, char **argv) { printf("Hello, world!\n"); return 0; } EOF env DISTCC_HOSTS='127.0.0.1/2' DISTCC_VERBOSE=1 DISTCC_FALLBACK=0 /usr/lib/distcc/gcc-8 -c hello.c; echo $? Ожидаемый результат: успешная сборка hello.o, код возврата 0. Наблюдаемый результат: код возврата 116, hello.o не собирается: env DISTCC_VERBOSE=1 DISTCC_HOSTS='127.0.0.1/2' DISTCC_FALLBACK=0 /usr/lib/distcc/gcc-8 -o hello.o -c hello.c distcc[4947] (dcc_trace_version) distcc 3.4 x86_64-alt-linux-gnu; built Jul 12 2021 13:09:55 distcc[4947] (dcc_recursion_safeguard) safeguard level=0 distcc[4947] (main) compiler name is "gcc-8" distcc[4947] (dcc_support_masquerade) not modifying PATH distcc[4947] (dcc_scan_args) scanning arguments: gcc-8 -o hello.o -c hello.c distcc[4947] (dcc_scan_args) found object/output file "hello.o" distcc[4947] (dcc_scan_args) found input file "hello.c" distcc[4947] compile from hello.c to hello.o distcc[4947] (dcc_gcc_rewrite_fqn) Re-writing call to 'gcc-8' to 'x86_64-alt-linux-gcc-8' to support cross-compilation. distcc[4947] (dcc_get_hostlist) read hosts from environment distcc[4947] (dcc_parse_hosts) found tcp token "127.0.0.1/2" distcc[4947] (dcc_check_backoff) still in backoff period for 127.0.0.1/2 distcc[4947] (dcc_remove_disliked) remove 127.0.0.1/2 from list distcc[4947] (dcc_build_somewhere) ERROR: failed to distribute and fallbacks are disabled distcc[4947] elapsed compilation time 0.000263s distcc[4947] (dcc_exit) exit: code 116; self: 0.002205 user 0.003307 sys; children: 0.000000 user 0.000000 sys distcc[4947] (dcc_cleanup_tempfiles_inner) deleted 1 temporary files 116 В логе сервера вижу: distccd[4887] (dcc_check_client) connection from 127.0.0.1:48100 distccd[4887] (check_address_inet) match client 0x100007f, value 0x200007f, mask 0xffffff distccd[4887] (dcc_r_token_int) got DIST00000001 distccd[4887] (dcc_r_token_int) got ARGC00000005 distccd[4887] (dcc_r_argv) reading 5 arguments from job submission distccd[4887] (dcc_r_token_int) got ARGV00000016 distccd[4887] (dcc_r_token_string) got 'x86_64-alt-linux-gcc-8' distccd[4887] (dcc_r_argv) argv[0] = "x86_64-alt-linux-gcc-8" distccd[4887] (dcc_r_token_int) got ARGV00000002 distccd[4887] (dcc_r_token_string) got '-o' distccd[4887] (dcc_r_argv) argv[1] = "-o" distccd[4887] (dcc_r_token_int) got ARGV00000007 distccd[4887] (dcc_r_token_string) got 'hello.o' distccd[4887] (dcc_r_argv) argv[2] = "hello.o" distccd[4887] (dcc_r_token_int) got ARGV00000002 distccd[4887] (dcc_r_token_string) got '-c' distccd[4887] (dcc_r_argv) argv[3] = "-c" distccd[4887] (dcc_r_token_int) got ARGV00000007 distccd[4887] (dcc_r_token_string) got 'hello.c' distccd[4887] (dcc_r_argv) argv[4] = "hello.c" distccd[4887] (dcc_r_argv) got arguments: x86_64-alt-linux-gcc-8 -o hello.o -c hello.c distccd[4887] (dcc_scan_args) scanning arguments: x86_64-alt-linux-gcc-8 -o hello.o -c hello.c distccd[4887] (dcc_scan_args) found object/output file "hello.o" distccd[4887] (dcc_scan_args) found input file "hello.c" distccd[4887] compile from hello.c to hello.o distccd[4887] (dcc_run_job) output file hello.o distccd[4887] (dcc_input_tmpnam) input file hello.c distccd[4887] (dcc_r_token_int) got DOTI00004343 distccd[4887] (dcc_r_file) received 17219 bytes to file /tmp/distccd_bfd698f5.i distccd[4887] (dcc_r_file_timed) 17219 bytes received in 0.000030s, rate 560514kB/s distccd[4887] (dcc_set_input) changed input from "hello.c" to "/tmp/distccd_bfd698f5.i" distccd[4887] (dcc_set_input) command after: x86_64-alt-linux-gcc-8 -o hello.o -c /tmp/distccd_bfd698f5.i distccd[4887] (dcc_set_output) changed output from "hello.o" to "/tmp/distccd_bfd098f5.o" distccd[4887] (dcc_set_output) command after: x86_64-alt-linux-gcc-8 -o /tmp/distccd_bfd098f5.o -c /tmp/distccd_bfd698f5.i distccd[4887] (dcc_check_compiler_masq) /usr/bin/x86_64-alt-linux-gcc-8 is not a symlink distccd[4887] (dcc_check_compiler_whitelist) CRITICAL! no /usr/lib64/distcc distccd[4887] (dcc_cleanup_tempfiles_inner) deleted 5 temporary files distccd[4887] (dcc_job_summary) client: 127.0.0.1:48100 OTHER exit:0 sig:0 core:0 ret:0 time:3ms То есть, update-distcc-symlinks создаёт ссылки в /usr/lib/distcc, а distccd ожидает их в /usr/lib64. Это похоже на https://github.com/distcc/distcc/issues/431
distcc-3.4-alt3 -> sisyphus: Mon Jul 26 2021 Alexey Sheplyakov <asheplyakov@altlinux> 3.4-alt3 - distccd: fixed search for approved compilers (Closes: #40577) - update-distcc-symlinks correctly finds GCC (cross-) compilers - automatically run update-distcc-symlinks (Closes: #40579)