Что-то стала жизнь скучна и захотелось мне вот таких вот извращений:
Есть у меня 2 компьютера - один рабочий, десктоп, а второй используется в качестве сервера, но практически не загружен. Так вот иногда приходится обновлять порты на десктопе или просто что-нибудь компилить, а это здорово раздражает, так как интерфейс всех программ начинает тормозить. Вот и возник вопрос - а нельзя ли что-нибудь установить или настроить таким образом, чтобы компиляция шла на сервере, а установка скомпилированных пакетов производилась на десктоп?
Компиляция на соседнем компе
Модератор: arachnid
-
Shura
- Сообщения: 1537
- Статус: Оказывается и без KDE есть жизнь
- ОС: FreeBSD 8.0-RC2
Компиляция на соседнем компе
Rock'n'roll мертв © БГ
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Компиляция на соседнем компе
Навскидку:
1) собирать на сервере пакеты, потом pkg_add - но это не совсем то, много лишних телодвижений;
2) подмонтировать /usr/local декстопа куда-нибудь к серверу и в Make-файлы всех портов добавить префикс mount_point/usr/local
детали надо продумать только
1) собирать на сервере пакеты, потом pkg_add - но это не совсем то, много лишних телодвижений;
2) подмонтировать /usr/local декстопа куда-нибудь к серверу и в Make-файлы всех портов добавить префикс mount_point/usr/local
детали надо продумать только
-
vr13
- Сообщения: 887
- ОС: gentoo
Re: Компиляция на соседнем компе
а distcc на bsd нет? если есть то тоже вариант
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Компиляция на соседнем компе
есть, конечно - /usr/ports/devel/distcc
Только не уверен, что его к портам можно прикрутить
PS и если я понял правильно, идея не в том, чтобы скомпилить единичный пакет, а в том, чтобы дать команду типа
portupgrade -arR
и спокойно сидеть за десктопом, пока все порты пересобираются на сервере
-
Ariasp
- Сообщения: 254
- Статус: NixLander
-
Shura
- Сообщения: 1537
- Статус: Оказывается и без KDE есть жизнь
- ОС: FreeBSD 8.0-RC2
Re: Компиляция на соседнем компе
alv
Совершенно верно, хочется не отдельный порт скомпилить, а пользоваться такой штукой постоянно, чтобы portupgrade нормально отрабатывал.
Насчёт второго пункта - не уверен, я пробовал монтировать /usr/local/ports и /var/db, но что-то не пошло. Да и как я понял придётся все пакеты, что у меня на десктопе установлены на сервер ставить, чтобы зависимости разруливались и прочее. Монтировать сразу весь /usr/local не вариант - там свои настройки сервисов, отличные от десктопных.
vr13
Попробую этот distcc, может подойдёт.
Совершенно верно, хочется не отдельный порт скомпилить, а пользоваться такой штукой постоянно, чтобы portupgrade нормально отрабатывал.
Насчёт второго пункта - не уверен, я пробовал монтировать /usr/local/ports и /var/db, но что-то не пошло. Да и как я понял придётся все пакеты, что у меня на десктопе установлены на сервер ставить, чтобы зависимости разруливались и прочее. Монтировать сразу весь /usr/local не вариант - там свои настройки сервисов, отличные от десктопных.
vr13
Попробую этот distcc, может подойдёт.
Rock'n'roll мертв © БГ
-
Poor Fred
- Сообщения: 1575
- Статус: Pygoscelis papua
- ОС: Gentoo Linux, FreeBSD
Re: Компиляция на соседнем компе
Работает, еще как. Только условие - ему gcc-4.2 нужен. Если Фря 7-я, то проблем нет, там он родной. А если ставить его на 6х - возможны некоторые пляски с бубном, в том смысле, что не все хотят собираться, приходится для некоторых портов переключать обратно н 3,3,6.
Убить всех человеков!
-
Shura
- Сообщения: 1537
- Статус: Оказывается и без KDE есть жизнь
- ОС: FreeBSD 8.0-RC2
Re: Компиляция на соседнем компе
Фря 7.1, но не всё гладко - некоторые порты (большинство) не хотят так компиляться - какие-то проблемы с библиотеками, как я понял, сплошные undefined reference.
А к портам прикручивается элементарно, в файл /usr/local/etc/pkgtool.conf:
В секцию MAKE_ARGS
добавил
и в секцию MAKE_ENV
А к портам прикручивается элементарно, в файл /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: Компиляция на соседнем компе
Гм... Может и неграмотно, но я просто указал в /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: Компиляция на соседнем компе
А DISTCC_HOSTS куда прописал?
У меня что-то из /etc/make.conf ну никак нехотело работать
У меня что-то из /etc/make.conf ну никак нехотело работать
Rock'n'roll мертв © БГ
-
Shura
- Сообщения: 1537
- Статус: Оказывается и без KDE есть жизнь
- ОС: FreeBSD 8.0-RC2
Re: Компиляция на соседнем компе
Ну вот, если кому интересно, финальный вариант
В /usr/local/pkgtools.conf действительно ничего прописывать не надо, достаточно прописать в /etc/make.conf
И в /etc/profile
В /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