Hay ocasiones en las que compilar código fuente en la máquina local puede suponer fundir el microprocesador, en mi caso tengo gentoo instalada en un portátil que hecha fuego cuando se compila alguna aplicación gorda como firefox o thunderbird. Gentoo nos permite compilar el código fuente en un equipo externo, la única restricción es que deben compartir la misma rama de gcc.
Debemos tener la misma rama de gcc en todos los equipos ya sea cliente o servidor, 3.3.x with 3.2.x dará problemas en cambio 3.3.2 3.3.4 funcionará, se puede chequear la versión mediante gcc -v
Servidor:
vi /etc/conf.d/distccd
DISTCCD_OPTS="${DISTCCD_OPTS} --allow IP_CLIENTE/32"
Si tenemos el tráfico filtrado mediante Iptables, añadiremos la siguiente regla:
/sbin/iptables -I INPUT 1 -p tcp --dport 3632 -s IP_CLIENTE -j ACCEPT
Cliente:
sys-devel/distcc gtk
vi /etc/portage/make.conf
MAKEOPTS="-jN -lM"
FEATURES="distcc"
NOTA: N = Nº de equipos que compilarán código(local y remotos) + 1, M = Nº de cores locales, M se utiliza cuando la compilación sea local.
Se puede utilizar tanto la máquina local como el servidor para compilar:
Servidor/Cliente:
/etc/init.d/distccd start
export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"
Se puede añadir al bashrc para que lo haga automáticamente:
export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"
Ahora cuando ejecutemos emerge la compilación del código se ejecutará en el servidor de compilación y el resto como el linkado en local.
NOTA: Hay un modo de configuración llamado pump que también distribuye el preprocesado entre los servidores de compilación