InglésFrancésEspañol

Ad


icono de página de OnWorks

distcc - Online en la nube

Ejecute distcc en el proveedor de alojamiento gratuito de OnWorks a través de Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando distcc que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


distcc - compilador distribuido C / C ++ / ObjC con extensiones distcc-pump

SINOPSIS


distrito [COMPILADOR OPCIONES]

distrito [COMPILADOR OPCIONES]

[COMPILADOR OPCIONES]

distrito [DISTCC OPCIONES]

DESCRIPCIÓN


distcc distribuye la compilación de código C en varias máquinas de una red. distcc
siempre debe generar los mismos resultados que una compilación local, es fácil de instalar y
use, y a menudo es mucho más rápido que una compilación local.

Esta versión incorpora distcc simple, así como una mejora llamada modo de bomba o
bomba de distcc.

Para cada trabajo, distcc en modo simple envía el código fuente preprocesado completo y
argumentos del compilador a través de la red desde el cliente hasta un servidor de compilación. En bomba
modo, distcc envía el código fuente y los archivos de encabezado incluidos de forma recursiva (excluyendo aquellos
de los directorios de encabezado del sistema predeterminados), de modo que tanto el preprocesamiento como la compilación
puede tener lugar en los servidores de compilación. Esto acelera la entrega de compilaciones por
hasta un orden de magnitud sobre distcc simple.

La compilación es impulsada por una máquina cliente, que suele ser la estación de trabajo del desarrollador.
o portátil. El cliente distcc se ejecuta en esta máquina, al igual que hace, el preprocesador (si
distcc no se usa el modo de bomba), el enlazador y otras etapas del proceso de construcción. Alguna
número de máquinas voluntarias actúan como servidores de compilación y ayudan al cliente a construir el
programa, ejecutando el distccd(1) daemon, compilador de C y ensamblador según sea necesario.

distcc puede ejecutarse a través de sockets TCP (en el puerto 3632 de forma predeterminada) o a través de un túnel
comando como ssh(1). Para las conexiones TCP, los voluntarios deben ejecutar el distccd(1) demonio
ya sea directamente o de inetd. Para conexiones SSH, se debe instalar distccd pero debe
no Esté atento a las conexiones.

Las conexiones TCP solo deben usarse en redes seguras porque no hay usuarios
autenticación o protección del código fuente o de objeto. Las conexiones SSH suelen ser del 25%
más lento debido a la sobrecarga del procesador para el cifrado, aunque esto puede variar mucho
dependiendo de las CPU, la red y el programa que se está construyendo.

distcc está diseñado para ser utilizado con GNU Make's -j opción, que ejecuta varios compiladores
procesos al mismo tiempo. distcc distribuye los trabajos entre CPU locales y remotas.
Dado que distcc puede distribuir la mayor parte del trabajo a través de la red, una mayor
El nivel de simultaneidad se puede utilizar que para las compilaciones locales. Como regla general, el -j propuesta de
debe establecerse en aproximadamente el doble del número total de CPU de servidor disponibles, pero sujeto a
limitaciones del cliente. Esta configuración permite un entrelazado máximo de las tareas que se bloquean.
esperando E / S de disco o red. Tenga en cuenta que distcc también puede funcionar con otros controles de compilación
herramientas, como SCons, donde se deben ajustar configuraciones de simultaneidad similares.

El -j ajuste, especialmente para valores grandes de -j, debe tener en cuenta la carga de la CPU en
el cliente. Es posible que se necesiten medidas adicionales para reducir la carga de clientes. Por ejemplo,
la vinculación concurrente debe restringirse severamente utilizando bloqueos auxiliares. El efecto de
otras actividades de compilación, como la compilación de Java al compilar código mixto, deben
considerado. los --localslots_cpp El parámetro está configurado por defecto en 16. Esto limita el
número de procesos concurrentes que realizan preprocesamiento en modo distcc simple (sin bomba).
Por lo tanto, mayor -j se pueden utilizar valores superiores a 16 sin sobrecargar un cliente de una sola CPU
debido al preprocesamiento. Valores tan altos pueden acelerar partes de la construcción que no
implican compilaciones de C, pero pueden no ser útiles para diferenciar la eficiencia en modo simple.

En contraste, usando el modo de bomba y digamos 40 servidores, una configuración de -j80 o más grande puede ser
apropiado incluso para clientes con una sola CPU.

Se recomienda encarecidamente que instale la misma versión del compilador en todas las máquinas.
participando en una construcción. Los compiladores incompatibles pueden causar una compilación o un enlace misteriosos
fallas

INICIO RÁPIDO


1 Para cada máquina, descargue distcc, descomprímalo e instálelo.

2 En cada uno de los servidores, ejecute distccd --demonio --permitir opciones para restringir
acceder.

3 Ponga los nombres de los servidores en su entorno:
$ export DISTCC_HOSTS = 'localhost rojo verde azul'

4 ¡Construye!
$ hacer -j8 CC = distcc

INICIO RÁPIDO PARA BOMBA DISTCC MODO


Proceda como se indicó anteriormente, pero en el Paso 3, especifique que los hosts remotos deben llevar la carga de
preprocesamiento y que los archivos enviados a través de la red deben estar comprimidos:

$ export DISTCC_HOSTS = '- aleatorizar localhost rojo, cpp, lzo verde, cpp, lzo
azul, cpp, lzo '

El - aleatorizar La opción impone un uso uniforme de los servidores de compilación. Mientras obtendrás
algunos se benefician del modo de bombeo de distcc con solo unos pocos servidores, usted obtiene un beneficio cada vez mayor
con más CPU de servidor (¡hasta cientos!). Envuelva su construcción dentro del comando de bomba,
aquí asumiendo 10 servidores:

$ distcc-bomba hacer -j20 CC = distcc

COMO LAS SIN IMPRESION (NO BOMBA) DISTCC OBRAS


distcc solo ejecuta el compilador y ensamblador de forma remota. Con distcc simple, el
El preprocesador siempre debe ejecutarse localmente porque necesita acceder a varios archivos de encabezado en
la máquina local que puede no estar presente, o puede que no sea la misma, en el voluntario. los
De manera similar, el vinculador necesita examinar bibliotecas y archivos de objetos, por lo que debe ejecutarse localmente.

El compilador y el ensamblador toman solo un archivo de entrada (la fuente preprocesada) y
producir una única salida (el archivo objeto). distcc envía estos dos archivos a través del
network y, por lo tanto, puede ejecutar el compilador / ensamblador de forma remota.

Afortunadamente, para la mayoría de los programas que se ejecutan, el preprocesador es relativamente barato y el
El enlazador se llama relativamente poco frecuente, por lo que la mayor parte del trabajo se puede distribuir.

distcc examina su línea de comando para determinar cuál de estas fases se está invocando, y
si el trabajo se puede distribuir.

COMO LAS BOMBA DISTCC MODO OBRAS


En el modo de bomba, distcc también ejecuta el preprocesador de forma remota. Para hacerlo, el preprocesador debe
tener acceso a todos los archivos a los que habría accedido si se hubiera estado ejecutando localmente. En
modo de bomba, por lo tanto, distcc reúne todos los encabezados incluidos de forma recursiva, excepto el
los que son encabezados predeterminados del sistema y los envía junto con el archivo de origen al
servidor de compilación.

En el modo distcc-pump, el servidor descomprime el conjunto de todos los archivos de origen en un
directorio, que contiene un árbol de directorios que refleja la parte del sistema de archivos que
es relevante para el preprocesamiento, incluidos los enlaces simbólicos.

Luego, el compilador se ejecuta desde la ruta en el directorio temporal que corresponde al
directorio de trabajo actual en el cliente. Para encontrar y transmitir los muchos cientos de archivos.
que a menudo forman parte de una sola compilación, el modo de bombeo utiliza una inclusión incremental
algoritmo de análisis. El servidor de inclusión es un programa de Python que implementa este
algoritmo. El comando distcc-pump inicia el servidor de inclusión para que durante la compilación
puede responder a consultas incluidas mediante comandos distcc.

El servidor de inclusión utiliza un análisis estático del lenguaje de macros para tratar con condiciones
compilación y computación incluye. Utiliza la propiedad de que cuando un archivo de encabezado dado tiene
ya se ha analizado para las inclusiones, no es necesario volver a hacerlo si todas las inclusiones
las opciones (-I) no se modifican (junto con otras condiciones).

Para compilaciones grandes, los archivos de encabezado se incluyen, en promedio, cientos de veces cada uno. Con
modo distcc-pump cada archivo de este tipo se analiza solo unas pocas veces, quizás solo una, en su lugar
de ser preprocesado cientos de veces. Además, cada archivo de origen o encabezado es ahora
comprimidos solo una vez, porque el servidor de inclusión memoriza los archivos comprimidos. Como un
Como resultado, el tiempo empleado para preparar las compilaciones puede disminuir hasta en un orden de magnitud.
sobre el preprocesamiento de distcc simple.

Debido a que distcc en el modo de bomba puede enviar archivos hasta diez veces más rápido, compile
la velocidad puede aumentar 3 veces o más para construcciones grandes en comparación con el modo distcc simple.

RESTRICCIONES PARA BOMBA MODO


El uso del modo de bomba requiere que tanto el cliente como los servidores utilicen la versión 3.0 o posterior de distcc y
distccd (respectivamente).

El análisis incremental de inclusión del modo distc-pump se basa en el supuesto fundamental
que los archivos fuente y de encabezado no cambian durante el proceso de compilación. Algunas construcciones complejas
Los sistemas, como el del kernel 2.6 de Linux, no satisfacen del todo este requisito. Para
superar estos problemas y otros casos de esquina, como las rutas de archivo absolutas en las inclusiones, consulte
las incluir_servidor(1) página del hombre

Otro supuesto importante es que la configuración de inclusión de todas las máquinas debe ser
idéntico. Por lo tanto, los encabezados de la ruta predeterminada del sistema deben ser los mismos en todos los servidores.
y todos los clientes. Si se utiliza una instalación de compilador GNU estándar, entonces este requisito
se aplica a todas las bibliotecas cuyos archivos de encabezado están instalados en / usr / include or
/ usr / local / include /. Tenga en cuenta que la instalación de paquetes de software suele generar
archivos de encabezados que se colocan en subdirectorios de cualquiera.

Si esta suposición no se cumple, entonces es posible romper construcciones con distcc-pump
modo, o peor aún, para obtener resultados incorrectos sin previo aviso. Actualmente esta condición no es
verificado, y está en nuestra lista TODO para abordar este problema.

Una forma sencilla de garantizar que las configuraciones de inclusión sean idénticas es utilizar un
compilador que define una ruta de búsqueda del sistema predeterminada restringida a los directorios del
instalación del compilador.

Consulte las incluir_servidor(1) manual para obtener más información sobre los síntomas y las causas de las infracciones
de los supuestos del modo distcc-pump.

OPCIÓN RESUMEN


La mayoría de las opciones pasadas a distcc se interpretan como opciones del compilador. Las siguientes opciones
se entienden por distcc en sí. Si se especifica alguna de estas opciones, distcc no
invocar el compilador.

--ayuda Muestra instrucciones resumidas.

--versión
Muestra la versión del cliente distcc.

--show-anfitriones
Muestra la lista de hosts que usaría distcc. Consulte la sección Especificaciones del host.

--scan-incluye
Muestra la lista de archivos que distcc enviaría a la máquina remota, como
calculado por el servidor de inclusión. Ésta es una aproximación conservadora (excesiva) de la
archivos que serían leídos por el compilador de C. Esta opción solo funciona en modo bomba.
Consulte la sección "Cómo funciona el modo de bomba Distcc" para obtener detalles sobre cómo se calcula.

La lista de salida por distrito --scan-incluye contendrá una entrada por línea. Cada
La línea contiene una categoría seguida de una ruta. La categoría es FILE, SYMLINK,
DIRECTORIO o SYSTEMDIR:

ARCHIVO indica un archivo de origen o un archivo de encabezado que se enviaría al servidor distcc
anfitrión.

ENLACE SIMPLE indica un enlace simbólico que se enviaría al host del servidor distcc.

De miembros indica un directorio que puede ser necesario para compilar la fuente
expediente. Por ejemplo, un directorio "foo" puede ser necesario debido a una inclusión de la
formulario #include "foo /../ bar.h". Dichos directorios se crearían en el distcc
host del servidor.

DIRSISTEMA indica un directorio de inclusión del sistema, es decir, un directorio que está en el
ruta de inclusión predeterminada del compilador, como "/ usr / include"; dichos directorios son
se supone que está presente en el host del servidor distcc, por lo que no se enviará al
host del servidor distcc.

-j Muestra el nivel de simultaneidad de distcc, calculado a partir de la lista de hosts; es el
número máximo de trabajos pendientes emitidos por este cliente a todos los servidores. Por
predeterminado, será cuatro veces el número de hosts en la lista de hosts, a menos que el
La opción / LIMIT se usó en la lista de hosts. Consulte la sección Especificaciones del host.

INSTALANDO DISTCC


Hay tres formas diferentes de llamar a distcc, para adaptarse a diferentes circunstancias:

distcc se puede instalar bajo el nombre del compilador real, para interceptar llamadas a
y ejecutarlos de forma remota. Este compilador "enmascarado" tiene la compatibilidad más amplia
con árboles de origen existentes, y es conveniente cuando desea utilizar distcc para todos
Compilacion. El hecho de que se esté utilizando distcc es transparente para los archivos MAKE.

distcc se puede anteponer a las líneas de comando del compilador, como "distcc cc -c hello.c"
o CC = "distcc gcc". Esto es conveniente cuando desea usar distcc solo para algunos
compilaciones o para probarlo, pero puede causar problemas con algunos archivos MAKE o
versiones de libtool que asumen que $ CC no contiene un espacio.

Finalmente, distcc se puede utilizar directamente como compilador. "cc" siempre se utiliza como
nombre del compilador real en este modo "implícito". Esto puede ser conveniente para
uso interactivo cuando el modo "explícito" no funciona, pero no se recomienda
para un nuevo uso.

Recuerde que no debe utilizar dos métodos para llamar a distcc al mismo tiempo. Si tu
está utilizando un directorio de enmascaramiento, no cambie CC y / o CXX, simplemente coloque el directorio antes
en su RUTA. Si no está utilizando un directorio de enmascaramiento, deberá cambiar CC
y / o CXX, o modifique los archivos MAKE para llamar a distcc explícitamente.

MASQUERADING


La idea básica es crear un "directorio de enmascaramiento" que contenga enlaces del nombre de
el compilador real al binario distcc. Este directorio se inserta al principio de la RUTA, por lo que
que las llamadas al compilador se interceptan y en su lugar se ejecuta distcc. distcc luego elimina
sí mismo desde el PATH para encontrar el compilador real.

Por ejemplo:

# mkdir / usr / lib / distcc / bin
# cd / usr / lib / distcc / bin
# ln -s ../../../bin/distcc gcc
# ln -s ../../../bin/distcccc
# ln -s ../../../bin/distcc g ++
# ln -s ../../../bin/distcc c ++

Luego, para usar distcc, un usuario solo necesita poner el directorio / usr / lib / distcc / bin al principio
la RUTA, y ha establecido una lista de hosts en DISTCC_HOSTS o un archivo. distcc se encargará de
descanso.

Tenga en cuenta que este directorio de enmascaramiento debe aparecer en la RUTA antes que el directorio que
contiene los compiladores reales con los mismos nombres, y que cualquier programa auxiliar que
estas llamadas de compiladores (como as o ld) también deben encontrarse en la RUTA en un directorio
después del directorio de enmascaramiento ya que distcc llama al compilador real con un PATH
valor que tiene todo el directorio hasta e incluido el directorio de enmascaramiento recortado.

Es posible obtener un "error de recursividad" en el modo de enmascaramiento, lo que significa que distcc es
de alguna manera encontrándose a sí mismo de nuevo, no al compilador real. Esto puede indicar que tiene dos
directorios de enmascaramiento en la RUTA, posiblemente debido a tener dos instalaciones distcc en
diferentes ubicaciones. También puede indicar que está intentando mezclar "enmascarado" y
operación "explícita".

Los errores de recursividad se pueden evitar utilizando scripts de shell en lugar de enlaces. Por ejemplo, en
/ usr / lib / distcc / bin crea un archivo cc que contiene:

#!/ Bin / sh
distcc / usr / bin / gcc "$ @"

De esta forma, no dependemos de que distcc tenga que localizar el gcc real investigando
la variable PATH. En su lugar, se proporciona explícitamente la ubicación del compilador.

USO DISTCC HE TRABAJADO CCACHÉ


ccache es un programa que acelera la creación de software almacenando en caché los resultados de las compilaciones.
ccache normalmente se llama antes de distcc, por lo que los resultados se recuperan de un
cache. Es posible que se requiera algo de experimentación para que los archivos MAKE idiosincrásicos hagan
todo funciona en conjunto.

El método más confiable es configurar

CCACHE_PREFIX = "distcc"

Esto le dice a ccache que ejecute distcc como un contenedor alrededor del compilador real. ccache todavía usa
el compilador real para detectar actualizaciones del compilador.

ccache se puede ejecutar usando un directorio de enmascaramiento or configurando

CC = "ccache gcc "

A partir de la versión 2.2, ccache no almacena en caché la compilación de la fuente preprocesada y también lo hará
nunca obtenga un acierto de caché si se ejecuta desde distccd o distcc. Debe ejecutarse solo en el
lado del cliente y antes de distcc para cualquier uso.

El modo de bomba de distcc no es compatible con ccache.

HOST TAMAÑOS


Una "lista de hosts" le dice a distcc qué máquinas usar para la compilación. En orden, distcc mira
existentes $ DISTCC_HOSTS variable de entorno, el usuario $ DISTCC_DIR / hosts archivo, y el
archivo de host de todo el sistema. Si no se puede encontrar una lista de hosts, distcc emite una advertencia y compila
en la zona.

La lista de hosts es una lista simple separada por espacios en blanco de especificaciones de host. Lo más simple
y la forma más común es un nombre de host, como

localhost rojo green azul

distcc prefiere hosts hacia el comienzo de la lista, por lo que las máquinas deben aparecer en
orden descendente de velocidad. En particular, cuando solo se puede ejecutar una compilación (como
a partir de un script de configuración), se utiliza la primera máquina de la lista (pero consulte - aleatorizar abajo).

Colocación localhost en el punto correcto de la lista es importante para obtener un buen rendimiento.
Debido a que la sobrecarga para ejecutar trabajos localmente es baja, localhost normalmente debería ser el primero.
Sin embargo, es importante que el cliente tenga suficientes ciclos libres para ejecutar los trabajos locales y
el cliente distcc. Si el cliente es más lento que los voluntarios, o si hay muchos
voluntarios, entonces el cliente debe ser incluido más adelante en la lista o no debe incluirse en absoluto. Como general
regla, si la velocidad de CPU agregada del cliente es menos de una quinta parte del total, entonces
el cliente debe quedar fuera de la lista.

Si tiene un clúster de compilación compartido grande y un solo archivo de hosts compartidos, las reglas anteriores
haría que las primeras máquinas en el archivo hosts se probaran primero a pesar de que
es probable que estén más ocupadas que las máquinas que aparecen más adelante en la lista. Para evitar esto, coloque la palabra clave
- aleatorizar en la lista de hosts. Esto hará que la lista de hosts sea aleatoria, lo que
debería mejorar ligeramente el rendimiento para clústeres de compilación grandes.

Hay dos nombres de host especiales --ranuras locales y --localslots_cpp que son útiles para
ajustando la carga en la máquina local. los --ranuras locales host especifica cuántos trabajos
no se puede ejecutar de forma remota que se puede ejecutar simultáneamente en la máquina local, mientras
--localslots_cpp controla cuántos preprocesadores se ejecutarán en paralelo en el local
máquina. El ajuste de estos valores puede mejorar el rendimiento. Vincular proyectos grandes puede llevar
grandes cantidades de memoria. Ejecutar enlazadores paralelos, que no se pueden ejecutar de forma remota,
puede obligar a la máquina a cambiar, lo que reduce el rendimiento en comparación con la ejecución de los trabajos en
secuencia sin intercambiar. Obtener el número correcto de preprocesadores en paralelo
le permite usar factores paralelos más grandes con make, ya que la máquina local ahora tiene algunos
mecanismo para medir el uso de recursos locales.

Finalmente está la entrada de host

El rendimiento depende de los detalles de la fuente y los archivos MAKE utilizados para el proyecto, y
las velocidades de la máquina y de la red. Experimentar con diferentes configuraciones para la lista de hosts
y -j factor puede mejorar el rendimiento.

La sintaxis es

DISTCC_HOSTS = HOSTSPEC...
HOSTSPEC = LOCAL_HOST | HOST_SSH | TCP_HOST | ANTIGUO ESTILO_TCP_HOST
| GLOBAL_OPCIÓN
| CONF CERO
LOCAL_HOST = localhost [/ LIMIT]
| --localslots =
| --localslots_cpp =
SSH_HOST = [USER] @HOSTID [/ LIMIT] [: COMMAND] [OPTIONS]
TCP_HOST = HOSTID [: PORT] [/ LIMIT] [OPTIONS]
OLDSTYLE_TCP_HOST = HOSTID [/ LIMIT] [: PORT] [OPTIONS]
ID DE HOST = NOMBRE DE HOST | IPV4 | IPV6
OPCIONES =, OPCIÓN [OPCIONES]
OPCIÓN = lzo | cpp
GLOBAL_OPTION = - aleatorizar
ZEROCONF = + zeroconf

A continuación, se muestran algunos ejemplos individuales de la sintaxis:

localhost
La palabra literal "localhost" se interpreta especialmente para hacer que las compilaciones sean
ejecutado directamente, en lugar de pasar a un demonio en la máquina local. Si lo haces
desea conectarse a un demonio en la máquina local para probar, luego dé el
la dirección IP de la máquina o el nombre de host real. (Esto será más lento).

IPV6 Una dirección IPv6 literal entre corchetes, como [:: 1]

IPV4 Una dirección IPv4 literal, como 10.0.0.1

HOSTNAME
Un nombre de host que se buscará con el solucionador.

:PUERTO Conéctese a un número de puerto decimal especificado, en lugar del predeterminado 3632.

@HOSTID
Conéctese al host a través de SSH, en lugar de TCP. Las opciones para la conexión SSH pueden
ajustarse en ~ / .ssh / config

USUARIO@ Conéctese al host a través de SSH como un nombre de usuario especificado.

:MANDO
Conéctese a través de SSH y use una ruta específica para encontrar el servidor distccd. Este es
normalmente solo es necesario si por alguna razón no puede instalar distccd en un directorio
en la RUTA predeterminada para las conexiones SSH. Use esto si obtiene errores como "distccd:
comando no encontrado "en modo SSH.

/LÍMITE Se puede agregar un límite decimal a cualquier especificación de host para restringir el número de
trabajos que este cliente enviará a la máquina. El límite predeterminado es cuatro por
host (dos para localhost), pero el servidor puede restringirlo aún más. Debería
Solo es necesario aumentar esto para servidores con más de dos procesadores.

, lzo Habilita la compresión LZO para este host TCP o SSH.

, cpp Habilita el modo distcc-pump para este host. Nota: el comando de compilación debe estar envuelto en
el script distcc-pump para iniciar el servidor de inclusión.

- aleatorizar
Aleatorice el orden de la lista de hosts antes de la ejecución.

+ zeroconf
Este opción is , solamente Hoy Disponibles if distrito fue compilado avahi SOPORTE facilita at
configurar en las transacciones. Cuando esta entrada especial está presente en la lista de hosts, distcc
utilice Avahi Zeroconf DNS Service Discovery (DNS-SD) para localizar cualquier distccd disponible
servidores en la red local. Esto evita la necesidad de enumerar explícitamente el host
nombres o direcciones IP de las máquinas del servidor distcc. Los servidores distccd deben tener
se inició con la opción "--zeroconf" para distccd. Una advertencia importante es que
en la implementación actual, el modo de bomba (", cpp") y la compresión (", lzo")
nunca se utilice para hosts ubicados a través de zeroconf.

Aquí hay un ejemplo que demuestra algunas posibilidades:

localhost / 2 @ bigman / 16: / opt / bin / distccd máquina antigua: 4200/1
# carretero is DE INSCRIPCIÓN
distante / 3, lzo

Se permiten comentarios en las especificaciones del host. Los comentarios comienzan con un signo de almohadilla / almohadilla (#)
y corre hasta el final de la línea.

Si un host de la lista no es accesible, distcc emitirá una advertencia e ignorará ese host por
alrededor de un minuto.

COMPRESIÓN


El lzo La opción de host especifica que se debe utilizar la compresión LZO para la transferencia de datos,
incluyendo fuente preprocesada, código objeto y mensajes de error. La compresión suele ser
económico en redes inferiores a 100 Mbps, pero los resultados pueden variar según la red,
procesadores y árbol de origen.

Habilitar la compresión hace que el cliente y el servidor distcc usen más tiempo de CPU, pero menos
tráfico de red. El tiempo de CPU agregado es insignificante para el modo de bomba. La compresión
La proporción es típicamente 4: 1 para fuente y 2: 1 para código objeto.

El uso de la compresión requiere que tanto el cliente como el servidor utilicen al menos la versión 2.9 de distcc.
No se requiere configuración de servidor: el servidor siempre responde con respuestas comprimidas a
solicitudes comprimidas.

El modo de bombeo requiere que los servidores tengan activada la opción de host lzo.

BUSCAR RUTAS


Si el nombre del compilador es una ruta absoluta, se pasa literalmente al servidor y el
El compilador se ejecuta desde ese directorio. Por ejemplo:

distrito /usr/local/bin/gcc-3.1415 -c Hola C

Si el nombre del compilador no es absoluto o no está completamente calificado, se busca en la RUTA de distccd.
Cuando distcc se ejecuta desde un directorio de enmascaramiento, solo el nombre base del compilador es
usó. La RUTA del cliente se usa solo para ejecutar el preprocesador y no tiene ningún efecto en el
ruta del servidor.

TIEMPOS


Tanto el cliente como el servidor distcc imponen tiempos de espera en la transferencia de datos a través de la red.
Esto está destinado a detectar hosts que están inactivos o inaccesibles, y para evitar compilaciones
colgando indefinidamente si un servidor se desconecta mientras está en uso. Si un tiempo de espera del lado del cliente
expira, el trabajo se volverá a ejecutar localmente.

Los tiempos de espera no son configurables en este momento.

La diagnostica


Los mensajes de error o las advertencias de los compiladores locales o remotos se transmiten al diagnóstico.
salida en el cliente.

distcc puede proporcionar una amplia información de depuración cuando se utiliza la opción detallada. Esta
es controlado por el DISTCC_VERBOSE variable de entorno en el cliente, y la --verboso
opción en el servidor. Para solucionar problemas, examine el error del cliente y del servidor
mensajes.

SALIR Codigos


El código de salida de distcc es normalmente el del compilador: cero para una compilación exitosa
y distinto de cero en caso contrario.

distcc distingue entre errores "genuinos", como un error de sintaxis en la fuente, y
Errores "accidentales", como un problema de conexión con un voluntario. En el caso
de errores accidentales, distcc volverá a intentar la compilación localmente a menos que el DISTCC_FALLBACK
La opción ha sido deshabilitada.

Si el compilador sale con una señal, distcc devuelve un código de salida de 128 más la señal
número.

Los errores internos de distcc causan un código de salida entre 100 y 127. En particular

100 Fallo de distcc general.

101 malos argumentos.

102 La vinculación falló.

103 Error de conexión.

104 El compilador falló.

105 Memoria insuficiente.

106 SPEC de host incorrecto

107 Error de E / S

108 Truncado.

109 Error de protocolo.

110 El compilador dado no se encontró en el host remoto. Verifique que $ CC esté configurado
apropiadamente y que está instalado en un directorio en la ruta de búsqueda para
distccd.

111 Llamada recursiva a distcc.

112 No se pudieron descartar los privilegios.

113 Acceso a la red denegado.

114 En uso por otro proceso.

115 No existe tal archivo.

116 No se han definido hosts y los fallbacks están desactivados.

118 Tiempo de espera.

Use distcc en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

  • 1
    Firebird
    Firebird
    Firebird RDBMS ofrece funciones ANSI SQL
    y se ejecuta en Linux, Windows y
    varias plataformas Unix. Características
    excelente concurrencia y rendimiento
    & energía...
    Descargar pájaro de fuego
  • 2
    KompoZer
    KompoZer
    KompoZer es un editor HTML wysiwyg que utiliza
    el código base de Mozilla Composer. Como
    El desarrollo de Nvu se ha detenido.
    en 2005, KompoZer corrige muchos errores y
    agrega una f...
    Descargar KompoZer
  • 3
    Descargador gratuito de manga
    Descargador gratuito de manga
    Free Manga Downloader (FMD) es un
    aplicación de código abierto escrita en
    Object-Pascal para gestionar y
    descargar manga de varios sitios web.
    esto es un espejo...
    Descargar descargador de manga gratuito
  • 4
    UNetbootin
    UNetbootin
    UNetbootin le permite crear booteables
    Unidades USB en vivo para Ubuntu, Fedora y
    otras distribuciones de Linux sin
    quemando un CD. Se ejecuta en Windows, Linux,
    y ...
    Descargar UNetbootin
  • 5
    Dolibarr ERP-CRM
    Dolibarr ERP-CRM
    Dolibarr ERP - CRM es un fácil de usar
    Paquete de software de código abierto ERP y CRM
    (ejecutar con un servidor web php o como
    software independiente) para empresas,
    cimientos...
    Descargar Dolibarr ERP - CRM
  • 6
    Cliente SQL SQuirreL
    Cliente SQL SQuirreL
    SQuirreL SQL Client es un SQL gráfico
    cliente escrito en Java que permitirá
    para ver la estructura de un JDBC
    base de datos compatible, busque los datos en
    mesas...
    Descargar cliente SQL SQuirreL
  • Más "

Comandos de Linux

Ad