distcc

Товарищи, помогите понять.

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

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

1. Если коротко, да. 2.

1. Если коротко, да.
2. Смотрите в эту сторону

буду честен, я не знаю, почему у меня все работает

Спасибо!

Спасибо!

хм. правильно ли я понимаю,

хм. правильно ли я понимаю, что --buildpkg просто на одной конкретной машине собирает пакеты и кладет их, скажем, в /usr/portage/packages?

Если да, то я имел ввиду немного другое. Требуется чтобы я, скажем на ноуте, давая команду, emerge -uavND world на удаленной машине пакет автоматом собирался, выкачивался собранный на ноут и разворачивался уже готовый.

.

А что должна делать удаленная машина, если у нее не установлены зависимые пакеты, а еще хуже если они собраны с другими флагами?
В результате удаленная машина должна являться клоном?

Для distcc требуется только наличие одинакового компилятора и линкера. Если хочется большего - можно устроить на удаленной машине виртуальный клон ноута (chroot, kvm, ...) в нем собирать свой дистрибутив (именно это соседи по linux называют дистрибутивом), а результаты в бинарном виде ставить себе. Бонусом будет "легкая" пересборка мира, когда она понадобиться.
PS. Не забываем про флаг --with-bdeps\=y при установке на ноуте.

UPD. Может про линкер я хватил лишнего.

Я понимаю, что можно

Я понимаю, что можно установить клон и собирать пакеты на клоне, потом перекачивая их на ноуте.
Интересно было можно ли это сделать не создавая огород, штатными средствами.

Мне думалось, возможно, если у меня есть, скажем, ноут и стационарник, где стоят одинаковые генту (ведь использую я один и те же программы в боьшинсве своем что там, что там), и где, по сути, отличаются только некоторые флаги и процессоры, то можно посредством штатных средств передать на удаленную машину название пакета, флаги и собрать пакет с этими флагами, запаковать в бинарник и отправить обратно.

Видимо, нет. Спасибо :-)

.

Возможно вам стоит покопать в сторону dev-util/catalyst - а. Этот пакет позволит вам собрать нужные бинарники с нужными USE-флагами в binhost.

Можно наколхозить примерно следующую технику:
На ноуте через врапер запускаем emerge, который исправляет список каталиста на стационарном компе и ждёт появление в доступе бинарного пакета.
Стационарный комп по inotify определяет изменение списка и запускает процедуру сборки. Последним будет собран затребованный пакет.
Таким образом, когда запустится установка на ноуте, все пакеты по зависимостям будут доступны ноуту.

P.S. Как поступать с синхронизацией USE-флагов надо подумать отдельно.
P.P.S Никто не мешает воспользоваться git с его hooks для синхронизации своего /etc/portage.

Успехов, дорогу осилит идущий. ^_^

Ну как бы binpackages не

Ну как бы binpackages не совсем distcc, и даже совсем не distcc, хотя их проинтегрировать можно, как уже выше советовали. Но повозиться придется, если это в новинку...

Я начинаю путаться. Так можно

Я начинаю путаться. Так можно штатным средствами удаленно, без создания окружения собирать бинарники или таки надо создавать окружения и лепить костыли для сборки пакетов?

Не костыли, но изолированную

Не костыли, но изолированную среду (chroot) нужно!
Как минимум /etc/portage/* нужен будет свой и т.д.
To, что программы те же - абсолютно неважно, а вот разные "флаги и процессоры" - это и есть проблема! Именно поэтому просто binpackages работать не будут, надо собирать отдельно. Или унифицировать среду, если это возможно.

Ну как сказать не костыли.

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

Унифицировать как минимум из-за процессоров не получится.

Yarra

Yarra написал(а):
Унифицировать как минимум из-за процессоров не получится.

Если generic amd64 подходит для всех устройств, то почему нет?

:wq
--
Live free or die

И в итоге проиграть в

И в итоге проиграть в производительности и там, и здесь! :)

0.5-1% ?

0.5-1% ?

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

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