Компиляция на удалённом компьютере

Знаю про систему distcc. Вроде как распределённая компиляция. Должна как-то экономить время, и компилировать сразу на нескольких компьютерах. Пробовал - особого прироста производительности не дало. Я так понимаю, удалённо может проходить только собственно компиляция. А линковка, конфигурация, выполнение скриптов, и т.п... - всё на клиентской машине.
У меня и задача немного другая... есть нетбук eee pc 901, есть "большой брат", более мощный компьютер с amd phenom x2.
Хотелось бы как-нибудь сделать так, чтобы компиляция целиком и полностью по всем этапам (от скачки distfiles, распаковки и до компиляции собственно) выполнялась на большом компе, а на маленький только передавался скомпиленный бинарный пакет, который бы распаковывался на той системе уже.

Раньше делал как - собирал на мощном компе систему в chroot, делал там quickpkg-пакеты, а уже из переносил вручную в /usr/portage/packages, и устанавливал с опцией emerge -k. Но это немного геморно... и образ системы некоторое место занимает, хотелось бы без этого.

Возможно ли как-то вообще осуществить задуманное или вряд ли?

а что мешает систему,

а что мешает систему, собранную в chroot'e просто перенести на реальное железо. без приготовления пакетов?

.

при установке таких пакетов мало ключика -k. очень часто требуется еще --with-bdeps=y

А по процессу лучше еще глубже пошалить

У ББ $PORTAGE_TMPDIR смонтировать на tmpfs.
Система чуть быстрее компилируется (при большом количестве пакетов), если chroot находится на смонтированном loop.
Переписывать вручную пакеты - это лишнее. Проще воспользоваться nfs для монтирования $PKGDIR, который стоит переопределить в разные места с ББ. nfs будет полезен и для единых /etc/make.conf, /etc/portage, /usr/portage.

Но самым мощным будет зацепить c ББ по nfs корень системы младшего брата. Домонтировать туда свои $PORTAGE_TMPDIR, PORTDIR и т.п. Сделать туда chroot и собрать/установить пакеты прямо там.

Последним рецептом пользовался давно, сработает ли сейчас - не знаю.

Работает, я так постоянно

Работает, я так постоянно делаю на своем HTPC. Надо только не забывать замонтировать всякие /proc, /dev и т. п. У меня это примерно так выглядит:

mount -t nfs htpc:/ /mnt/htpc
mount -t proc none /mnt/htpc/proc
mount -o bind /dev /mnt/htpc/dev
mount -o bind /usr/portage/distfiles /mnt/htpc/usr/portage/distfiles
mount -t tmpfs none /mnt/htpc/var/tmp/portage
mount -t devpts none /mnt/htpc/dev/pts
chroot /mnt/htpc

Если на подопытном система 32-битная, а на ББ 64-битная, то не забыть сказать linux32. Ну и никаких -march=native в make.conf (если, конечно, процессоры на обоих не одной архитектуры).

Ignorance has always been something I excel in…

Flaming написал(а): Знаю про

Flaming написал(а):
Знаю про систему distcc. Вроде как распределённая компиляция. Должна как-то экономить время, и компилировать сразу на нескольких компьютерах. Пробовал - особого прироста производительности не дало.

Я на работе настраивал, 5 компов = 10 процессорных потоков, прирост был колосальный :)
Исходники компилировались быстрее, чем распаковывались из архивов :-D (кроме openoffice)

Как вы запускали distcc? Покажите конфиги

Working on Gentoo Linux for Asus P535 and Qtopia :-)

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

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