Компиляция на соседнем компе

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Компиляция на соседнем компе

Сообщение Shura »

Что-то стала жизнь скучна и захотелось мне вот таких вот извращений:
Есть у меня 2 компьютера - один рабочий, десктоп, а второй используется в качестве сервера, но практически не загружен. Так вот иногда приходится обновлять порты на десктопе или просто что-нибудь компилить, а это здорово раздражает, так как интерфейс всех программ начинает тормозить. Вот и возник вопрос - а нельзя ли что-нибудь установить или настроить таким образом, чтобы компиляция шла на сервере, а установка скомпилированных пакетов производилась на десктоп?
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Компиляция на соседнем компе

Сообщение alv »

Навскидку:
1) собирать на сервере пакеты, потом pkg_add - но это не совсем то, много лишних телодвижений;
2) подмонтировать /usr/local декстопа куда-нибудь к серверу и в Make-файлы всех портов добавить префикс mount_point/usr/local
детали надо продумать только
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: Компиляция на соседнем компе

Сообщение vr13 »

а distcc на bsd нет? если есть то тоже вариант
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Компиляция на соседнем компе

Сообщение alv »

vr13 писал(а):
10.11.2008 19:12
а distcc на bsd нет? если есть то тоже вариант

есть, конечно - /usr/ports/devel/distcc
Только не уверен, что его к портам можно прикрутить

PS и если я понял правильно, идея не в том, чтобы скомпилить единичный пакет, а в том, чтобы дать команду типа
portupgrade -arR
и спокойно сидеть за десктопом, пока все порты пересобираются на сервере
Спасибо сказали:
Аватара пользователя
Ariasp
Сообщения: 254
Статус: NixLander

Re: Компиляция на соседнем компе

Сообщение Ariasp »

Shura писал(а):
10.11.2008 17:18
Что-то стала жизнь скучна и захотелось мне вот таких вот извращений:

если стало так скучно -- значит пора осваивать MPICH :D
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: Компиляция на соседнем компе

Сообщение Shura »

alv
Совершенно верно, хочется не отдельный порт скомпилить, а пользоваться такой штукой постоянно, чтобы portupgrade нормально отрабатывал.
Насчёт второго пункта - не уверен, я пробовал монтировать /usr/local/ports и /var/db, но что-то не пошло. Да и как я понял придётся все пакеты, что у меня на десктопе установлены на сервер ставить, чтобы зависимости разруливались и прочее. Монтировать сразу весь /usr/local не вариант - там свои настройки сервисов, отличные от десктопных.

vr13
Попробую этот distcc, может подойдёт.
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: Компиляция на соседнем компе

Сообщение Poor Fred »

alv писал(а):
10.11.2008 22:49
vr13 писал(а):
10.11.2008 19:12
а distcc на bsd нет? если есть то тоже вариант

есть, конечно - /usr/ports/devel/distcc
Только не уверен, что его к портам можно прикрутить

Работает, еще как. Только условие - ему gcc-4.2 нужен. Если Фря 7-я, то проблем нет, там он родной. А если ставить его на 6х - возможны некоторые пляски с бубном, в том смысле, что не все хотят собираться, приходится для некоторых портов переключать обратно н 3,3,6.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: Компиляция на соседнем компе

Сообщение Shura »

Фря 7.1, но не всё гладко - некоторые порты (большинство) не хотят так компиляться - какие-то проблемы с библиотеками, как я понял, сплошные undefined reference.

А к портам прикручивается элементарно, в файл /usr/local/etc/pkgtool.conf:
В секцию MAKE_ARGS
добавил

Код: Выделить всё

'*/*' => [
  'CXX=distcc',
  'CC=distcc',
  ],

и в секцию MAKE_ENV

Код: Выделить всё

'*/*' => [
  'DISTCC_HOSTS=remote_host',
  ],
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: Компиляция на соседнем компе

Сообщение Poor Fred »

Shura писал(а):
11.11.2008 17:13
А к портам прикручивается элементарно, в файл /usr/local/etc/pkgtool.conf:

Гм... Может и неграмотно, но я просто указал в /etc/make.conf:

Код: Выделить всё

CPUTYPE?=pentium4
CFLAGS= -Os -pipe
COPTFLAGS=$CFLAGS
MAKEOPTS= -j3
CC=/usr/local/bin/distcc

Вроде собирается все без проблем. Фря тоже 7.1-PRERELEASE.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: Компиляция на соседнем компе

Сообщение Shura »

А DISTCC_HOSTS куда прописал?
У меня что-то из /etc/make.conf ну никак нехотело работать
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: Компиляция на соседнем компе

Сообщение Shura »

Ну вот, если кому интересно, финальный вариант
В /usr/local/pkgtools.conf действительно ничего прописывать не надо, достаточно прописать в /etc/make.conf

Код: Выделить всё

CC=/usr/local/bin/distcc
CXX=/usr/local/bin/distcc

И в /etc/profile

Код: Выделить всё

DISTCC_HOSTS='hosts'
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
LZOmgi
Сообщения: 67
ОС: FreeBSD Current

Re: Компиляция на соседнем компе

Сообщение LZOmgi »

Shura писал(а):
13.11.2008 16:40
Ну вот, если кому интересно, финальный вариант
О, класс!
Аналогичная ситуация, только я о таком неподумывал.
Спасибо!
Спасибо сказали: