LINUX.ORG.RU

Сборка при помощи distcc на сервере, когда основной пк выключен

 , ,


1

1

Есть десктоп с Gentoo и мощный сервер подключенный к локалке. Необходимо запускать компиляцию на сервере и иметь возможность выключить десктоп, а затем в любое время его включить и получить бинарники с сервера.


Выглядит как задача для jenkins. Разве что плагин для интеграции дописать.

Result-Code
()

А вообще, надо изучать документацию по binhost. Но я никогда особо не пользовался Gentoo, так что не подскажу.

Result-Code
()

С distcc так не получится, там запросы мелкие. Продолжу рекламировать Nix, там оффлоадится вся компиляция, на уровне хоть пакетов, хоть всей системы.

t184256 ★★★★★
()

Где-то видел прототип обертки для emerge, так что сборка идет в удаленном chroot, но конфигурацию надо синхронизировать отдельно.

Можно попробовать пойти по пути сборки своего дистрибутива, со своим профилем, как Calculate Linux. У них и утилиты были для централизованной конфигурации.

boowai ★★★★
()

Прочёл ответы...

выше от «знатных гентоводов». Орнул в голосину. =)))

Странно, но почему-то ни кто не предложил ознакомиться с «Руководством по бинарным пакетам».

Только Вам нужно будет крайне аккуратно подбирать флаги оптимизации. Те же флаги, специфичные для процессора.

Ну либо создать такой binhost в виртуалке часто для того, чтобы собирать пакеты для заведомо более слабого ноутбука. Заодно, если создать такую виртуалку, то можно будет и тестировать сборку до установки. А emerge -uDN @world на ноуте можно уже будет с него делать. Просто в /etc/portage/make.conf пропишите GENTOO_MIRRORS=свой.сервер.binhost.

Впрочем, дело Ваше. Может и через screen/tmux как-то можно… =)))

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 1)
Ответ на: комментарий от doc0

это на сервере запускать
в /mnt/desktop либо примонтировать / desktop`а

либо
на desktop сделать binhost
далее предварительно скопировав из desktop на сервер /etc в /mnt/desktop/etc/portage/make.conf на сервере указать источник binhost desktop
далее запустить на сервере SYSROOT=/mnt/desktop ROOT=/mnt/desktop PORTAGE_CONFIGROOT=/mnt/desktop emerge @world скачает с desktop бинарные пакеты и можно выключить desktop, далее на сервере будет распакованы пакеты в /mnt/desktop и скомпилированы новые
далее нужно на сервере тоже сделать binhost чтобы desktop докачал обновленные пакеты

/mnt/desktop/etc/portage/make.conf нужно чуть чуть изменить если например на сервере 32 ядра а на desktop 2 всего и -march=native архитектуру сервера выдаст тоже надо заменить

doc0
()
Последнее исправление: doc0 (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.