Я не могу получить icecc демон для подключения к локальному планировщику icecc с любой машины, на которой работает Fedora 20.
У меня не было проблем с настройкой этого на 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.
До сих пор единственной вещью, которую я пробовал, возможно, была проблема, это открытие портов, которые предоставляет readme, добавляя их в часть Zones-> Ports в настройке брандмауэра, но это не помогло.
Может быть, мне нужно что-то сделать в Ubuntu Schedular и Daemons? Кому-нибудь еще повезло с настройкой мороженого на Fedora 20?
Для других будущих разработчиков, которые могут прийти сюда из Google —
Чтобы заставить работать iccc, я отредактировал /usr/lib/systemd/system/icecc/iceccd-wrapper
файл, добавив два аргумента в команду iceccd.
-s <schedular> -m <number of jobs>
Затем при запуске следующей команды
sudo systemctl start iceccd
Демон запускается и его видит планировщик.
Помните, порты также должны быть открыты!
Вместо того, чтобы редактировать либо /usr/lib/systemd/system/icecc/iceccd-wrapper
(как предложено foips) или же /usr/lib/systemd/system/iceccd.service
Сам я нашел более удобным изменить файл глобальных настроек мороженого /etc/sysconfig/icecream
и установить
# If the daemon can't find the scheduler by broadcast (e.g. because
# of a firewall) you can specify it.
#
ICECREAM_SCHEDULER_HOST="<scheduler>"