АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

distcc - Интернет в облаке

Запустите distcc в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда distcc, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


distcc - распределенный компилятор C / C ++ / ObjC с расширениями distcc-pump

СИНТАКСИС


DistCC [КОМПИЛЯТОР ПАРАМЕТРЫ]

DistCC [КОМПИЛЯТОР ПАРАМЕТРЫ]

[КОМПИЛЯТОР ПАРАМЕТРЫ]

DistCC [ДИСТКК ПАРАМЕТРЫ]

ОПИСАНИЕ


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

Эта версия включает простой distcc, а также усовершенствованный режим под названием pump mode или
distcc-насос.

Для каждого задания distcc в обычном режиме отправляет полный предварительно обработанный исходный код и
аргументы компилятора по сети от клиента к серверу компиляции. В насосе
режиме distcc отправляет исходный код и рекурсивно включаемые файлы заголовков (за исключением тех
из каталогов системных заголовков по умолчанию), так что и предварительная обработка, и компиляция
может проходить на серверах компиляции. Это ускоряет доставку сборников
на порядок по сравнению с обычным distcc.

Компиляция выполняется клиентским компьютером, который обычно является рабочей станцией разработчика.
или ноутбук. Клиент distcc работает на этом компьютере, как и make, препроцессор (если
режим pump в distcc не используется), компоновщик и другие этапы процесса сборки. Любой
количество машин-добровольцев действуют как серверы компиляции и помогают клиенту создавать
программу, запустив distccd(1) демон, компилятор C и ассемблер по мере необходимости.

distcc может работать либо через сокеты TCP (по умолчанию на порту 3632), либо через туннель.
команда, такая как SSH(1). Для TCP-соединений добровольцы должны запустить distccd(1) демон
либо напрямую, либо из inetd. Для SSH-соединений должен быть установлен distccd, но он должен
не прислушиваться к связям.

TCP-соединения следует использовать только в защищенных сетях, потому что там нет пользователя.
аутентификация или защита исходного или объектного кода. SSH-соединения обычно составляют 25%
медленнее из-за накладных расходов процессора на шифрование, хотя это может сильно отличаться
в зависимости от процессоров, сети и создаваемой программы.

distcc предназначен для использования с GNU Make's -j вариант, который запускает несколько компиляторов
обрабатывает одновременно. distcc распределяет задания как между локальными, так и удаленными процессорами.
Поскольку distcc может распределять большую часть работы по сети, более высокая
Уровень параллелизма можно использовать, чем для локальных сборок. Как показывает практика, -j ценностное
должно быть установлено примерно в два раза больше общего числа доступных процессоров сервера, но при условии
ограничения клиента. Этот параметр позволяет максимально чередовать блокируемые задачи.
ждет дискового или сетевого ввода-вывода. Обратите внимание, что distcc также может работать с другими элементами управления сборкой.
инструменты, такие как SCons, где необходимо настроить аналогичные параметры параллелизма.

Ассоциация -j настройки, особенно для больших значений -дж, необходимо учитывать загрузку процессора на
клиент. Могут потребоваться дополнительные меры, чтобы снизить нагрузку на клиентов. Например,
одновременное связывание должно быть строго ограничено с помощью вспомогательных блокировок. Эффект
другие действия по сборке, такие как компиляция Java при сборке смешанного кода, должны быть
считается. В --localslots_cpp по умолчанию установлен на 16. Это ограничивает
количество параллельных процессов, выполняющих предварительную обработку в обычном режиме distcc (без накачки).
Следовательно, больший -j значения, чем 16, могут использоваться без перегрузки однопроцессорного клиента
из-за предварительной обработки. Такие большие значения могут ускорить работу частей сборки, которые не работают.
включают компиляции C, но они могут быть бесполезны для повышения эффективности distcc в простом режиме.

Напротив, при использовании режима перекачки и, скажем, 40 серверов, настройка -j80 или больше может быть
подходит даже для однопроцессорных клиентов.

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

БЫСТРЫЙ СТАРТ


1 Для каждой машины загрузите distcc, распакуйте и установите.

2 На каждом из серверов запустите distccd - демон --разрешать варианты ограничения
доступа.

3 Введите имена серверов в вашей среде:
$ export DISTCC_HOSTS = 'localhost красный зеленый синий'

4 Сборка!
$ make -j8 CC = distcc

БЫСТРЫЙ СТАРТ Для DISTCC-НАСОС РЕЖИМ


Действуйте, как указано выше, но на шаге 3 укажите, что удаленные хосты должны нести бремя
предварительной обработки и что файлы, отправленные по сети, должны быть сжаты:

$ export DISTCC_HOSTS = '- рандомизировать localhost red, cpp, lzo green, cpp, lzo
синий, cpp, lzo '

Ассоциация - рандомизировать опция обеспечивает единообразное использование серверов компиляции. Пока вы получите
некоторые выгоды от режима насоса distcc только с несколькими серверами, вы получаете увеличивающуюся выгоду
с большим количеством серверных процессоров (до сотен!). Оберните свою сборку внутри команды насоса,
здесь предполагается 10 серверов:

$ distcc-pump make -j20 CC = distcc

КАК МЫ РАБОТАЕМ ОБЫЧНАЯ (БЕЗ НАСОСА) ДИСТКК РАБОТАЕТ


distcc только когда-либо запускает компилятор и ассемблер удаленно. С простым distcc
препроцессор всегда должен работать локально, потому что ему нужен доступ к различным файлам заголовков на
локальный компьютер, который может отсутствовать или быть другим на добровольце. В
Компоновщику также необходимо проверять библиотеки и объектные файлы, поэтому он должен запускаться локально.

Компилятор и ассемблер принимают только один входной файл (предварительно обработанный исходный код) и
произвести единственный вывод (объектный файл). distcc отправляет эти два файла через
сеть и, следовательно, может запускать компилятор / ассемблер удаленно.

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

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

КАК МЫ РАБОТАЕМ DISTCC-НАСОС РЕЖИМ РАБОТАЕТ


В режиме перекачки distcc также запускает препроцессор удаленно. Для этого препроцессор должен
иметь доступ ко всем файлам, к которым он мог бы получить доступ, если бы работал локально. В
режим pump, поэтому distcc собирает все рекурсивно включенные заголовки, кроме
те, которые являются системными заголовками по умолчанию, и отправляет их вместе с исходным файлом в
сервер компиляции.

В режиме distcc-pump сервер распаковывает набор всех исходных файлов во временном
каталог, содержащий дерево каталогов, которое отражает часть файловой системы,
имеет отношение к предварительной обработке, включая символические ссылки.

Затем компилятор запускается по пути во временном каталоге, который соответствует
текущий рабочий каталог на клиенте. Чтобы найти и передать многие сотни файлов
которые часто являются частью одной компиляции, в режиме накачки используется инкрементное включение
алгоритм анализа. Сервер включения - это программа Python, которая реализует это
алгоритм. Команда distcc-pump запускает сервер включения, чтобы на протяжении всей сборки
он может отвечать на запросы include с помощью команд distcc.

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

Для больших сборок файлы заголовков включаются в среднем сотни раз каждый. С участием
режим distcc-pump каждый такой файл анализируется только несколько раз, возможно, только один раз, вместо этого
подвергаться предварительной обработке сотни раз. Кроме того, теперь каждый исходный или заголовочный файл
сжат только один раз, потому что сервер включения запоминает сжатые файлы. Как
В результате время, затрачиваемое на подготовку компиляций, может сократиться на порядок.
поверх предварительной обработки простого distcc.

Поскольку distcc в режиме перекачки может выталкивать файлы примерно в десять раз быстрее, сборка
скорость может увеличиться в 3 раза или более для больших сборок по сравнению с обычным режимом distcc.

ОГРАНИЧЕНИЯ Для НАСОС РЕЖИМ


Использование режима перекачки требует, чтобы и клиент, и сервер использовали версию 3.0 или новее distcc и
distccd (соответственно).

Инкрементальный анализ режима distc-pump основан на фундаментальном предположении.
эти исходные файлы и файлы заголовков не изменяются в процессе сборки. Несколько сложных сборок
системы, такие как Linux с ядром 2.6, не вполне удовлетворяют этому требованию. К
преодолеть такие проблемы и другие угловые случаи, такие как абсолютные пути к файлам во включениях, см.
домен include_server(1) справочная страница.

Еще одно важное предположение состоит в том, что включенная конфигурация всех машин должна быть
идентичный. Таким образом, заголовки в системном пути по умолчанию должны быть одинаковыми на всех серверах.
и все клиенты. Если используется стандартная установка компилятора GNU, то это требование
применяется ко всем библиотекам, файлы заголовков которых установлены в / usr / include or
/ usr / local / include /. Обратите внимание, что установка пакетов программного обеспечения часто приводит к дополнительным
файлы заголовков помещаются в подкаталоги любого из файлов.

Если это предположение не выполняется, то можно разорвать сборки с помощью distcc-pump.
режим или, что еще хуже, получать неверные результаты без предупреждения. В настоящее время этого условия нет.
подтвержден, и он включен в наш список TODO для решения этой проблемы.

Простой способ гарантировать идентичность включенных конфигураций - использовать перекрестный
компилятор, определяющий системный путь поиска по умолчанию, ограниченный каталогами
установка компилятора.

Смотрите пост в include_server(1) инструкция для получения дополнительной информации о симптомах и причинах нарушений
предположений о режиме distcc-pump.

ВАРИАНТ РЕЗЮМЕ


Большинство параметров, переданных в distcc, интерпретируются как параметры компилятора. Следующие варианты
понимаются самим distcc. Если указан какой-либо из этих параметров, distcc не будет
вызвать компилятор.

--Помогите Отображает сводные инструкции.

--версия
Отображает версию клиента distcc.

--show-hosts
Отображает список хостов, который будет использовать distcc. См. Раздел «Технические характеристики хоста».

--scan-включает
Отображает список файлов, которые distcc отправит на удаленную машину, как
вычисляется сервером включения. Это консервативное (чрезмерное) приближение
файлы, которые будет читать компилятор C. Эта опция работает только в режиме помпы.
См. Раздел «Как работает режим Distcc-pump» для получения подробной информации о том, как это вычисляется.

Список, выводимый DistCC --scan-включает будет содержать по одной записи в строке. Каждый
Строка содержит категорию, за которой следует путь. Это одна из категорий FILE, SYMLINK,
КАТАЛОГ или СИСТЕМНЫЙ КАТАЛОГ:

ФАЙЛОВ указывает исходный файл или файл заголовка, который будет отправлен на сервер distcc
хост.

СИМВОЛКА указывает символическую ссылку, которая будет отправлена ​​на хост сервера distcc.

СПРАВОЧНИК указывает каталог, который может понадобиться для компиляции исходного кода
файл. Например, каталог "foo" может потребоваться из-за включения
форма #include "foo /../ bar.h". Такие каталоги будут созданы на distcc.
хост сервера.

СИСТЕМНЫЙКАТАЛОГ указывает системный каталог include, т. е. каталог, который находится на
путь включения компилятора по умолчанию, например "/ usr / include"; такие каталоги
предполагается, что он присутствует на хосте сервера distcc, и поэтому не будет отправлен на
хост сервера distcc.

-j Отображает уровень параллелизма distcc, вычисленный из списка хостов; это
максимальное количество невыполненных заданий, выданных этим клиентом всем серверам. К
по умолчанию это будет в четыре раза больше хостов в списке хостов, если только
В списке хостов использовалась опция / LIMIT. См. Раздел «Технические характеристики хоста».

УСТАНОВКА ДИСТКК


Существует три разных способа вызова distcc в зависимости от обстоятельств:

distcc можно установить под именем настоящего компилятора, чтобы перехватывать вызовы
его и запускать их удаленно. Этот "замаскированный" компилятор имеет самую широкую совместимость.
с существующими исходными деревьями, и это удобно, если вы хотите использовать distcc для всех
компиляция. Тот факт, что используется distcc, прозрачен для make-файлов.

distcc может быть добавлен к командным строкам компилятора, например «distcc cc -c hello.c»
или CC = "distcc gcc". Это удобно, если вы хотите использовать distcc только для некоторых
компиляции или попробовать, но может вызвать проблемы с некоторыми make-файлами или
версии libtool, в которых предполагается, что $ CC не содержит пробелов.

Наконец, distcc можно использовать непосредственно как компилятор. "cc" всегда используется как
имя реального компилятора в этом «неявном» режиме. Это может быть удобно для
интерактивное использование, когда "явный" режим не работает, но не рекомендуется
для нового использования.

Помните, что вы не должны использовать два метода для вызова distcc одновременно. если ты
используете маскарадную директорию, не меняйте CC и / или CXX, просто поместите директорию пораньше
на вашем пути. Если вы не используете каталог маскарада, вам нужно либо изменить CC
и / или CXX, или измените make-файл (ы) для явного вызова distcc.

Маскарадинга


Основная идея - создать «каталог маскарадов», содержащий ссылки от имени
настоящий компилятор бинарного файла distcc. Этот каталог вставляется раньше в PATH, поэтому
что вызовы компилятора перехватываются и вместо этого запускается distcc. distcc затем удаляет
сам из PATH, чтобы найти настоящий компилятор.

Например:

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

Затем, чтобы использовать distcc, пользователю просто нужно сначала поместить каталог / usr / lib / distcc / bin в
PATH и установили список хостов в DISTCC_HOSTS или в файле. distcc будет обрабатывать
остальные.

Обратите внимание, что этот маскарадный каталог должен находиться в PATH раньше, чем каталог, который
содержит фактические компиляторы с такими же именами, а также любые вспомогательные программы, которые
эти вызовы компиляторов (например, as или ld) также должны быть найдены в PATH в каталоге
после каталога masquerade, поскольку distcc обращается к настоящему компилятору с помощью PATH
значение, при котором весь каталог вплоть до каталога маскарада был обрезан.

В режиме маскарада возможно получение "ошибки рекурсии", что означает, что distcc
как-то снова найти себя, а не настоящий компилятор. Это может указывать на то, что у вас есть два
маскарадные каталоги в PATH, возможно, из-за наличия двух установок distcc в
разные места. Это также может указывать на то, что вы пытаетесь смешать "замаскированные" и
«явная» операция.

Ошибок рекурсии можно избежать, используя сценарии оболочки вместо ссылок. Например, в
/ usr / lib / distcc / bin создать файл cc, содержащий:

#!/ Бен / ш
distcc / usr / bin / gcc "$ @"

Таким образом, мы не зависим от distcc, чтобы найти настоящий gcc, исследуя
переменная PATH. Вместо этого явно указывается расположение компилятора.

С ПОМОЩЬЮ ДИСТКК КЭШ


ccache - это программа, которая ускоряет сборку программного обеспечения за счет кэширования результатов компиляции.
ccache обычно вызывается перед distcc, поэтому результаты получаются из обычного
кеш. Для создания уникальных make-файлов могут потребоваться некоторые эксперименты.
все работает вместе.

Самый надежный метод - установить

CCACHE_PREFIX = "distcc"

Это указывает ccache запускать distcc как оболочку для реального компилятора. ccache все еще использует
настоящий компилятор для обнаружения обновлений компилятора.

Затем ccache можно запустить с использованием каталога маскарада. or установив

CC = "ccache gcc "

Начиная с версии 2.2, ccache не кэширует компиляцию из предварительно обработанного источника и поэтому будет
никогда не получить попадание в кеш, если он запущен из distccd или distcc. Он должен запускаться только на
на стороне клиента и перед тем, как использовать distcc.

Режим насоса distcc несовместим с ccache.

ВЕДУЩИЙ ХАРАКТЕРИСТИКИ


«Список хостов» сообщает distcc, какие машины использовать для компиляции. По порядку выглядит distcc
в $ DISTCC_HOSTS переменная среды, пользователь $ DISTCC_DIR / хосты файл, а
общесистемный файл хоста. Если список хостов не найден, distcc выдает предупреждение и компилирует
на местном уровне.

Список хостов - это простой список спецификаций хостов, разделенных пробелами. Простейший
и наиболее распространенная форма - это имена хостов, такие как

локальный red зеленый синий

distcc предпочитает хосты в начале списка, поэтому машины должны быть перечислены в
в порядке убывания скорости. В частности, когда может быть запущена только одна компиляция (например,
как из сценария настройки), используется первая машина в списке (но см. - рандомизировать ниже).

Размещение локальный в нужном месте в списке важен для получения хорошей производительности.
Поскольку накладные расходы на выполнение заданий локально невелики, обычно первым должен быть localhost.
Однако важно, чтобы у клиента было достаточно свободных циклов для выполнения локальных заданий и
клиент distcc. Если клиент работает медленнее, чем волонтеры, или если их много
волонтеры, то клиента нужно поставить позже в список или не поставить вовсе. Как генерал
правило, если совокупная скорость ЦП клиента меньше одной пятой от общей, то
клиента следует исключить из списка.

Если у вас есть большой кластер общей сборки и один файл общих хостов, приведенные выше правила
приведет к тому, что первые несколько машин в файле hosts будут проверены первыми, даже если они
скорее всего, будут загружены больше, чем машины, расположенные в конце списка. Чтобы этого избежать, поместите ключевое слово
- рандомизировать в список хостов. Это приведет к тому, что список хостов будет рандомизирован, что
должен немного улучшить производительность для больших кластеров сборки.

Есть два специальных имени хоста --localslots и --localslots_cpp которые полезны для
регулировка нагрузки на локальную машину. В --localslots host указывает, сколько заданий
нельзя запускать удаленно, которые можно запускать одновременно на локальном компьютере, в то время как
--localslots_cpp контролирует, сколько препроцессоров будет работать параллельно на локальном
машина. Настройка этих значений может улучшить производительность. Связывание крупных проектов может занять
большой объем памяти. Запуск параллельных компоновщиков, которые нельзя запускать удаленно,
может заставить машину поменяться местами, что снижает производительность при простом выполнении заданий в
последовательность без подкачки. Получение правильного количества параллельных препроцессоров
позволяет использовать с make более крупные коэффициенты параллелизма, поскольку теперь на локальном компьютере есть
механизм измерения использования местных ресурсов.

Наконец, есть запись о хосте

Производительность зависит от деталей исходного кода и make-файлов, используемых для проекта, и
скорость машины и сети. Экспериментируйте с различными настройками для списка хостов
и -j фактор может улучшить производительность.

Синтаксис

DISTCC_HOSTS = HOSTSPEC ...
ХОСТСПЕК = ЛОКАЛЬНЫЙ_ХОСТ | SSH_HOST | TCP_HOST | OLDSTYLE_TCP_HOST
| ГЛОБАЛЬНЫЙ_ОПЦИЯ
| НОЛЬКОНФ
LOCAL_HOST = локальный хост [/ LIMIT]
| --localslots =
| --localslots_cpp =
SSH_HOST = [ПОЛЬЗОВАТЕЛЬ] @HOSTID [/ LIMIT] [: КОМАНДА] [ОПЦИИ]
TCP_HOST = HOSTID [: PORT] [/ LIMIT] [ОПЦИИ]
OLDSTYLE_TCP_HOST = HOSTID [/ LIMIT] [: PORT] [ОПЦИИ]
ИДЕНТИФИКАТОР ХОСТА = ИМЯ ХОСТА | ИПВ4 | ИПВ6
OPTIONS =, OPTION [OPTIONS]
ВАРИАНТ = лзо | cpp
GLOBAL_OPTION = --рандомизировать
ZEROCONF = + zeroconf

Вот несколько отдельных примеров синтаксиса:

локальный
Буквальное слово "localhost" интерпретируется специально, чтобы вызывать компиляцию
выполняется напрямую, а не передается демону на локальном компьютере. Если вы это сделаете
хотите подключиться к демону на локальной машине для тестирования, затем дайте
IP-адрес машины или реальное имя хоста. (Это будет медленнее.)

IPV6 Буквальный адрес IPv6, заключенный в квадратные скобки, например [:: 1]

IPV4 Буквальный адрес IPv4, например 10.0.0.1

HOSTNAME
Имя хоста, которое нужно найти с помощью преобразователя.

: ПОРТ Подключитесь к указанному десятичному номеру порта, а не к порту по умолчанию 3632.

@ХОСТИД
Подключайтесь к хосту через SSH, а не TCP. Опции для SSH-соединения могут
быть установлен в ~ / .ssh / конфигурации

ПОЛЬЗОВАТЕЛЬ@ Подключитесь к хосту через SSH под указанным именем пользователя.

: КОМАНДА
Подключитесь через SSH и используйте указанный путь, чтобы найти сервер distccd. Это
обычно требуется только в том случае, если по какой-то причине вы не можете установить distccd в каталог
в PATH по умолчанию для SSH-подключений. Используйте это, если вы получаете такие ошибки, как «distccd:
команда не найдена »в режиме SSH.

/ LIMIT Десятичный предел может быть добавлен к любой спецификации хоста, чтобы ограничить количество
задания, которые этот клиент отправит на машину. Предел по умолчанию - четыре на
host (два для localhost), но может быть дополнительно ограничен сервером. Вам следует
необходимо увеличивать это значение только для серверов с более чем двумя процессорами.

, lzo Включает сжатие LZO для этого хоста TCP или SSH.

, cpp Включает режим distcc-pump для этого хоста. Примечание: команда сборки должна быть заключена в
сценарий distcc-pump для запуска сервера включения.

- рандомизировать
Перед выполнением измените порядок в списке хостов в случайном порядке.

+ zeroconf
Эта вариант is только доступен if DistCC законопроект скомпилированный Авахи поддержка включен at
конфигурировать времени. Когда эта специальная запись присутствует в списке хостов, distcc будет
используйте Avahi Zeroconf DNS Service Discovery (DNS-SD), чтобы найти любой доступный distccd
серверы в локальной сети. Это избавляет от необходимости явно указывать хост
имена или IP-адреса машин сервера distcc. На серверах distccd должны быть
был запущен с параметром "--zeroconf" в distccd. Важное предостережение:
в текущей реализации режимы накачки (", cpp") и сжатие (", lzo") будут
никогда не использоваться для хостов, расположенных через zeroconf.

Вот пример, демонстрирующий некоторые возможности:

localhost / 2 @ bigman / 16: / opt / bin / distccd oldmachine: 4200/1
# Картман is вниз
дальний / 3, лзо

Комментарии разрешены в спецификациях хоста. Комментарии начинаются со знака решетки / решетки (#)
и беги до конца строки.

Если хост в списке недоступен, distcc выдаст предупреждение и проигнорирует этот хост в течение
около одной минуты.

СЖАТИЕ


Ассоциация изо опция host указывает, что для передачи данных следует использовать сжатие LZO,
включая предварительно обработанный исходный код, объектный код и сообщения об ошибках. Сжатие обычно
экономичен в сетях со скоростью ниже 100 Мбит / с, но результаты могут отличаться в зависимости от сети,
процессоры и дерево исходных текстов.

Включение сжатия заставляет клиент и сервер distcc использовать больше процессорного времени, но меньше
сетевой трафик. Добавленное процессорное время несущественно для режима помпы. Сжатие
соотношение обычно составляет 4: 1 для исходного кода и 2: 1 для объектного кода.

Использование сжатия требует, чтобы и клиент, и сервер использовали distcc версии не ниже 2.9.
Конфигурация сервера не требуется: сервер всегда отвечает сжатыми ответами на
сжатые запросы.

В режиме помпы на серверах должна быть включена опция хоста lzo.

ПОИСК ПУТИ


Если имя компилятора является абсолютным путем, оно дословно передается на сервер и
компилятор запускается из этого каталога. Например:

DistCC /USR/местные/бин/gcc-3.1415 -c Привет

Если имя компилятора не является абсолютным или не полностью определенным, ищется PATH distccd.
Когда distcc запускается из каталога masquerade, только базовое имя компилятора
использовал. Клиентский PATH используется только для запуска препроцессора и не влияет на
путь к серверу.

ТАЙМ-АУТЫ


И клиент, и сервер distcc накладывают тайм-ауты на передачу данных по сети.
Это предназначено для обнаружения узлов, которые не работают или недоступны, и для предотвращения компиляции
зависает на неопределенный срок, если сервер отключен во время использования. Если тайм-аут на стороне клиента
истекает, задание будет повторно запущено локально.

В настоящее время таймауты не настраиваются.

ДИАГНОСТИКИ


Сообщения об ошибках или предупреждения от локальных или удаленных компиляторов передаются в диагностику.
вывод на клиента.

distcc может предоставить обширную отладочную информацию, если используется подробный параметр. Этот
контролируется DISTCC_VERBOSE переменная окружения на клиенте, а --подробный
вариант на сервере. Для устранения неполадок изучите ошибку клиента и сервера.
сообщений.

ВЫХОД КОДЫ


Код выхода distcc обычно совпадает с кодом компилятора: ноль для успешной компиляции
и ненулевое в противном случае.

distcc различает "настоящие" ошибки, такие как синтаксическая ошибка в источнике, и
«случайные» ошибки, такие как проблема с сетью при подключении к волонтеру. В этом случае
случайных ошибок, distcc будет повторять компиляцию локально, если DISTCC_FALLBACK
опция отключена.

Если компилятор завершает работу с сигналом, distcc возвращает код выхода 128 плюс сигнал
номер.

Внутренние ошибки distcc вызывают код выхода от 100 до 127. В частности,

100 Общий сбой distcc.

101 Плохих аргументов.

102 Ошибка привязки.

103 Ошибка подключения.

104 Сбой компилятора.

105 Недостаточно памяти.

106 Плохая спецификация хоста

107 Ошибка ввода / вывода

108 Усеченный.

109 Ошибка протокола.

110 Данный компилятор не найден на удаленном хосте. Убедитесь, что установлен $ CC
надлежащим образом и что он установлен в каталоге на пути поиска для
distccd.

111 Рекурсивный вызов distcc.

112 Не удалось отменить привилегии.

113 Отказано в доступе к сети.

114 Используется другим процессом.

115 Нет такого файла.

116 Хосты не определены, резервные варианты отключены.

118 Тайм-аут.

Используйте distcc онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    Жар-птица
    Жар-птица
    СУБД Firebird предлагает функции ANSI SQL
    & работает на Linux, Windows и
    несколько Unix-платформ. Функции
    отличный параллелизм и производительность
    & сила...
    Скачать Firebird
  • 2
    KompoZer
    KompoZer
    KompoZer — это wysiwyg HTML-редактор, использующий
    кодовая база Mozilla Composer. В виде
    Разработка Нву остановлена
    в 2005 году KompoZer исправляет множество ошибок и
    добавляет ф...
    Скачать Композер
  • 3
    Бесплатная загрузка манги
    Бесплатная загрузка манги
    Free Manga Downloader (FMD) — это
    приложение с открытым исходным кодом, написанное на
    Object-Pascal для управления и
    скачивание манги с разных сайтов.
    Это зеркало...
    Скачать бесплатный загрузчик манги
  • 4
    UNetbootin
    UNetbootin
    UNetbootin позволяет создавать загрузочные
    Живые USB-накопители для Ubuntu, Fedora и
    другие дистрибутивы Linux без
    запись компакт-диска. Работает на Windows, Linux,
    и ...
    Скачать UNetbootin
  • 5
    Долибарр ERP - CRM
    Долибарр ERP - CRM
    Dolibarr ERP - CRM проста в использовании
    Пакет программного обеспечения ERP и CRM с открытым исходным кодом
    (запускается с веб-сервером php или как
    автономное программное обеспечение) для бизнеса,
    фундамент...
    Скачать Dolibarr ERP - CRM
  • 6
    Клиент SQuirreL SQL
    Клиент SQuirreL SQL
    SQuirreL SQL Client - это графический SQL
    клиент, написанный на Java, который позволит
    вы, чтобы просмотреть структуру JDBC
    совместимая база данных, просматривайте данные в
    столы ...
    Скачать SQL-клиент SQuirreL
  • Больше »

Команды Linux

Ad