我无法设法让 icecc 守护进程从任何运行 Fedora 20 的机器连接到本地icecc-scheduler。
我在 5 台不同的 Ubuntu 14.04 机器上设置此功能没有任何问题,并且每台机器都可以毫无问题地运行调度程序。事实上,它似乎可以在 Ubuntu 上开箱即用,无需额外配置 - 简单安装和运行。
在 Ubuntu 上的这些情况
sudo apt-get install icecc
sudo service iceccd start
在其中一台机器上
sudo service icecc-scheduler start
然后简单地设置路径并像这样构建
export PATH=/usr/lib/icecc/bin:$PATH
make -j16
据我所知,这就是让分布式编译在 Ubuntu 上运行所需的全部内容。
在 Fedora 安装和启动时我使用
sudo yum install icecream.x86_64
sudo systemctl start iceccd
并用
进行编译export PATH=/usr/libexec/icecc/bin:$PATH
make -j16
这不会分发编译。 调度程序上的icemon实用程序也没有显示fedora机器的任何证据,并且在iceccd服务上运行状态会出现此错误:
Jul 21 09:44:08 Fedora20 iceccd[4642]: [4642] 09:44:08: scheduler not yet found.
到目前为止,我唯一尝试过的可能是问题的方法是将自述文件提供的端口添加到防火墙配置的区域->端口部分,但这并没有帮助。
也许我需要在 Ubuntu 计划和守护进程上做一些事情?还有其他人在 Fedora 20 上设置 Icecream 的运气好吗?
对于其他可能从谷歌来到这里的未来开发者 -
为了让icecc正常工作,我通过向iceccd命令添加两个参数来编辑
/usr/lib/systemd/system/icecc/iceccd-wrapper
文件。
-s <schedular> -m <number of jobs>
然后运行以下命令时
sudo systemctl start iceccd
守护进程启动并被调度程序看到。
记住端口也需要打开!
在带有 ICECC 1.3.1 的 Ubuntu 20.04 上,配置文件为
/etc/icecc/icecc.conf
,设置名为 ICECC_SCHEDULER_HOST
。您需要将调度程序 IP 放在那里。