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

Приобрел таки ASUS EEE PC 1000h. Сижу вот крайне довольный и ставлю gentoo (из самодельного stage4). Так вот.. решил задействовать distcc для дальнейшей сборки пакетов. Так вот вопрос: можно ли при использовании distcc не проводить компиляцию на текущей машине? То есть, чтобы при компиляции мой ёжик простаивал, а Большой Брат собирал указанные пакеты.
И ещё: можно ли (без подмены make.conf) собирать пакеты с опциональным использованием distcc (т.е., например, команда emerge_bb собирает пакет на другой машине и копирует сюда только бинарники, а emerge собирает на ноуте)?

Не нужен вам вообще distcc в

Не нужен вам вообще distcc в таком случае

mix_mix wrote:Так вот вопрос:

mix_mix написал(а):
Так вот вопрос: можно ли при использовании distcc не проводить компиляцию на текущей машине? То есть, чтобы при компиляции мой ёжик простаивал, а Большой Брат собирал указанные пакеты.

Не уверен в своей правоте (не было нужды проверять) - возможно, в /etc/distcc/hosts не стоит указывать адрес локальной машины (ASUS EEE PC 1000h)?

Я Gentoo & Funtoo

Re:

> Не нужен вам вообще distcc в таком случае
А реально настроить BINHOST чтобы бинарные пакеты были не _уже_ скомпилены, а компилились бы по запросу emerge -GK ?

> ..не стоит указывать адрес локальной машины...
Вот я тоже на это подумал, но хотел узнать мнение, возможно, столкнувшихся с этим людей

через ssh даем команду emerge

через ssh даем команду emerge -B package, по завершению комруем через scp с большого брата на меньший новые файлы из /usr/portage/package. на меньшем брате устанавливаем emerge -K package. Это всё в скрипт и алиас на emerge_bb.

bes.internal wrote:через ssh

bes.internal написал(а):
через ssh даем команду emerge -B package,
по завершению комруем через scp с большого брата на меньший новые файлы из /usr/portage/package.
на меньшем брате устанавливаем emerge -K package. Это всё в скрипт и алиас на emerge_bb.

А если USE флаги на машинах отличаются? Как быть с зависимостями?

Меня давно интерсовал вопрос как собрать бинарник для другой машины на которой USE флаги отличаются
и тянутся новые зависимости, возможно ли это?

>>Меня давно интерсовал

>>Меня давно интерсовал вопрос как собрать бинарник для другой машины на которой USE флаги отличаются
и тянутся новые зависимости, возможно ли это?

Флаги ДОЛЖНЫ быть одинаковы. Юсы ДОЛЖНЫ быть одинаковы. Набор софта и зависимости ДОЛЖНЫ быть одинаковы. Это типа политики безопасности. Разрешенный софт, запрещенный софт. Порядок, одним словом. Желательно еще одинаковую архитектуру и совместимое по драйверам железо. Но это в идеале. Как только с набором флагов/зависимостей/архитектур определились - можно заняться оптимизацией административной деятельности. Программа, от того что ее по сто раз одинаково пересобирать, лучше работать не будет , потому собирать надо один раз и ставить с бинарей. Ежели архитектура одинакова (идеал), то кроме настроек бинарных репозитариев и сборки бинарей на админской машине ничего не надо. На клиентах ставим с бинарей. Ежели всеж таки есть отличия (в том числе и по зависимостям) придется устраивать несколько различных бинарных репозитариев и соответсвенно их поддерживать. Для этого есть пакет catalyst, кривоват немного но единственный в своем роде. Можно при желании легко набросать свой фреймворк. Основная идея - сборка под сшрутом отдельно для каждого репозитария.

Совершенно отказаться от

Совершенно отказаться от localhost нельзя, но можно выставить приоритет - поставить более мощную машинку первой в конфиге distcc.

Не грусти, товарищ! Всё хорошо, beautiful good!

Чтобы "ежик" простаивал

Чтобы "ежик" простаивал вообще - нельзя. Ему как минимум надо раздавать задачи и складывать у себя результаты их выполнения. Кроме того ряд пакетов невозможно собирать распределенно.
Если совсем жалко "ежа" пусть он берет бинарники собранные "большим братом".

Примонируй коневую ФС

Примонируй коневую ФС ноутбукао ssh. /usr/tmp/portage примонтируй из локального диска (пустой, например mount --bind /tmp/eeeportage /mnt/eee/usr/tmp/portage), чтобы быстрее было и ssd не гробить.
Далее на персоналке:
ROOT=/mnt/eee/ SYSROOT=/mnt/eee/ emerge ...
И будет тебе счастье. А можешь sysroot на eee не хранить и тогда у тебя на нем не будет девелоперских пакетов.

Есть хорошее howto

Я для своего старого ноута собирал систему на неплохом десктопе, вот по этому howto:
http://www.gentoo-wiki.info/HOWTO_Emerge_on_very_slow_systems

Per aspera ad astra!

Bircoph, спасибо тебе

Bircoph, спасибо тебе дружище! На мой взгяд для многих слабых машин скорость компиляции на старом железе практически сводила на нет возможность/целесообразность установки gentoo на такого "антикварного рода" машинках. С помощью этого гайда похоже можно попробовать дать новую жизнь старой машинке, чем я собираюсь заняться вплотную.

> I have also found it useful to bind some local directory on machine A to the directory /var/tmp/portage on machine B:
Хочу еще добавить что мне пришло в голову что существует еще такая полезная вещь как ccache которая настраивается (обычно /var/tmp/ccache") и ее тоже можно примонтировать, а разместить этот файловый кэш на быстрой машине естественно. В гайде по ccache обещают что кеширование компиляции очень сильно сказывается в плане скорости компилирования в лучшую сторону, когда кэш становится размера побольше..

>bes.internal через ssh даем команду emerge -B package, по завершению комруем через scp с большого брата на меньший новые файлы из /usr/portage/package. на меньшем брате >устанавливаем emerge -K package. Это всё в скрипт и алиас на emerge_bb.
Спасибо!
Подумав немного я пришел к выводу, что копирования через scp можно вобще измежать подняв на быстрой машине ftp и настроя на слабой машине параметр BINHOST, в хендбуке это описано. Это упрощает всю процедуру до двух команд. В одной консоли - команда компилить, в другой консоли команда скачать и установить свеже скомпилированный бинарик. Единственно в случае необходимости установки кучи пакетов, это конечно малость муторно.

Но этот вариант хуже тем что он не учитывает что этот вариант наиболее применим в случае наличия идентичных машин, и одинаковых USE флагов/ одинакового make.conf. Впрочем как знать.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".