англійськафранцузькаіспанська

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 ВАРИАНТИ]

ОПИС


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

Ця версія включає звичайний distcc, а також розширення, яке називається режимом насоса або
distcc-насос.

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

Компіляція керується клієнтською машиною, яка зазвичай є робочою станцією розробника
або ноутбук. Клієнт distcc працює на цій машині, як і make, препроцесор (if
режим насоса distcc не використовується), компонувальник та інші етапи процесу збірки. Будь-який
Кількість машин добровольців виступає як сервери компіляції та допомагають клієнту побудувати
програму, запустивши distccd(1) демон, компілятор C і асемблер за потреби.

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

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

distcc призначений для використання з GNU Make -j параметр, який запускає кілька компіляторів
процесів одночасно. distcc розподіляє завдання між локальними і віддаленими процесорами.
Оскільки distcc здатний розподілити більшу частину роботи по мережі, вище
рівень паралельності можна використовувати, ніж для локальних збірок. Як правило, -j значення
має бути встановлено приблизно вдвічі більше загальної кількості доступних серверних процесорів, але залежно від
клієнтські обмеження. Цей параметр дозволяє максимально перемежовувати заблоковані завдання
очікує дискового або мережевого введення введення. Зверніть увагу, що distcc також може працювати з іншими елементами керування збіркою
інструменти, такі як SCons, де подібні параметри паралельності необхідно налаштувати.

Команда -j налаштування, особливо для великих значень -j, необхідно враховувати навантаження на процесор
клієнт. Для зменшення навантаження клієнта можуть знадобитися додаткові заходи. Наприклад,
одночасне з'єднання має бути сильно обмежено за допомогою допоміжних блокувань. Ефект від
інші дії збирання, такі як компіляція Java під час створення змішаного коду, повинні бути
розглянуто. The --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='--рандомізувати локальний хост червоний,cpp,lzo зелений,cpp,lzo
синій,cpp,lzo'

Команда -- рандомізувати Параметр забезпечує однакове використання компіляційних серверів. Поки отримаєш
Деякі переваги від режиму насоса distcc лише з кількома серверами, ви отримуєте все більшу користь
з більшою кількістю серверних процесорів (до сотень!). Загорніть свою збірку в команду pump,
тут припустимо 10 серверів:

$ distcc-pump make -j20 CC=distcc

ЯК ЗВИЧАЙНА (НЕ НАСОСА) DISTCC РОБОТИ


distcc тільки віддалено запускає компілятор і асемблер. З звичайним diskcc,
препроцесор повинен завжди працювати локально, оскільки йому потрібно отримати доступ до різних файлів заголовків
локальна машина, яка може не бути присутнім або не збігатися з волонтером. The
компонувальнику також потрібно перевіряти бібліотеки та об’єктні файли, тому він повинен працювати локально.

Компілятор і асемблер беруть лише один вхідний файл (попередньо оброблене джерело) і
створити один вихідний файл (об’єктний файл). distcc пересилає ці два файли через
мережі і, отже, може запустити компілятор/ассемблер віддалено.

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

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

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


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

У режимі distcc-pump сервер розпаковує набір усіх вихідних файлів у тимчасовий файл
каталог, який містить дерево каталогів, що відображає частину файлової системи, що
має відношення до попередньої обробки, включаючи символічні посилання.

Потім компілятор запускається зі шляху в тимчасовому каталозі, який відповідає файлу
поточний робочий каталог на клієнті. Щоб знайти і передати багато сотень файлів
які часто є частиною однієї компіляції, режим насоса використовує інкрементальне включення
алгоритм аналізу. Сервер включення — це програма на Python, яка реалізує це
алгоритм. Команда distcc-pump запускає сервер включення, щоб упродовж усієї збірки
він може відповідати на запити за допомогою команд distcc.

Сервер включення використовує статичний аналіз макромови для роботи з умовними
компіляція та обчислена включає. Він використовує властивість, яку має певний файл заголовка
вже проаналізовано на включення, не потрібно робити це знову, якщо всі включені
параметри (-I) не змінюються (разом з іншими умовами).

Для великих збірок файли заголовків додаються в середньому сотні разів кожен. З
У режимі distcc-pump кожен такий файл аналізується лише кілька разів, можливо, лише один раз
підлягає попередній обробці сотні разів. Крім того, кожен вихідний або заголовний файл тепер є
стискається лише один раз, оскільки сервер включення запам'ятовує стислі файли. Як
в результаті час, що витрачається на підготовку компіляцій, може скоротитися на порядок
над попередньою обробкою простого distcc.

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

ОБМЕЖЕННЯ ДЛЯ НАСОС РЕЖИМ


Використання режиму насоса вимагає, щоб клієнт і сервер використовували випуск 3.0 або новішої версії distcc і
distccd (відповідно).

Інкрементальний аналіз режиму дискового насоса базується на фундаментальному припущенні
що вихідні та заголовні файли не змінюються під час процесу збірки. Кілька складних конструкцій
системи, наприклад, для ядра 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.

--ведучі шоу
Відображає список хостів, який буде використовувати distcc. Дивіться розділ Технічні характеристики хоста.

--сканування-включає
Відображає список файлів, які distcc надсилає на віддалену машину, як
обчислюється сервером включення. Це консервативне (над-)наближення
файли, які буде прочитаний компілятором C. Ця опція працює тільки в режимі насоса.
Дивіться розділ «Як працює режим Distcc-pump», щоб дізнатися більше про те, як це обчислюється.

Список виводиться за допомогою distcc --сканування-включає міститиме один запис на рядок. Кожен
рядок містить категорію, за якою йде шлях. Категорія є однією з FILE, SYMLINK,
КАТАЛОГ, або SYSTEMDIR:

Фото вказує вихідний файл або файл заголовка, який буде надіслано на сервер distcc
господар.

SYMLINK вказує символічне посилання, яке буде надіслано на хост сервера distcc.

ДОВІДНИК вказує каталог, який може знадобитися для компіляції вихідного коду
файл. Наприклад, каталог "foo" може знадобитися через включення
форма #include "foo/../bar.h". Такі каталоги будуть створені на distcc
хост сервера.

SYSTEMDIR вказує каталог включення системи, тобто каталог, який знаходиться на
за замовчуванням компілятор включає шлях, наприклад "/ usr / include"; такі каталоги є
передбачається, що він присутній на хості сервера distcc, і тому не буде надісланий на
хост сервера distcc.

-j Відображає рівень паралельності distcc, обчислений зі списку хостів; це
максимальна кількість невиконаних завдань, виданих цим клієнтом всім серверам. За
за замовчуванням це буде в чотири рази більше, ніж кількість хостів у списку хостів, якщо не
У списку хостів використовувався параметр /LIMIT. Дивіться розділ Технічні характеристики хоста.

ВСТАНОВЛЕННЯ DISTCC


Існує три різні способи викликати 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 раніше, ніж каталог, який
містить фактичні компілятори з тими ж іменами, а також будь-які допоміжні програми, які
ці виклики компіляторів (наприклад, як або ld) також мають бути знайдені в PATH у каталозі
після маскарадного каталогу, оскільки distcc звертається до реального компілятора з PATH
значення, яке обрізає весь каталог до каталогу маскараду включно.

У режимі маскараду можна отримати «помилку рекурсії», що означає, що distcc є
якось знову виявляючи себе, а не справжній компілятор. Це може свідчити про те, що у вас їх два
маскувати каталоги на PATH, можливо, через наявність двох інсталяцій distcc
різні локації. Це також може вказувати на те, що ви намагаєтеся змішати "masqueraded" і
«явна» операція.

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

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

Таким чином, ми не залежимо від того, що distcc має знайти справжній gcc шляхом дослідження
змінна PATH. Замість цього явно вказано розташування компілятора.

ВИКОРИСТАННЯ DISTCC З CCACHE


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

Найнадійніший метод – установка

CCACHE_PREFIX="distcc"

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

ccache потім можна запустити за допомогою маскарадного каталогу or за допомогою налаштування

CC="ccache gcc"

Починаючи з версії 2.2, ccache не кешує компіляцію з попередньо обробленого джерела, тому буде
ніколи не отримувати звернення до кешу, якщо він запущений з distccd або distcc. Його потрібно запускати тільки на
на стороні клієнта і перед distcc для будь-якого використання.

Режим насоса distcc несумісний з ccache.

HOST Технічні характеристики


"Список хостів" повідомляє distcc, які машини використовувати для компіляції. По порядку, distcc виглядає
в $DISTCC_HOSTS змінна середовища користувача $DISTCC_DIR/хости файл і
загальносистемний файл хоста. Якщо список хостів не знайдено, distcc видає попередження та компілює
локально.

Список хостів — це простий список специфікацій хоста, розділений пробілами. Найпростіший
і найпоширенішою формою є імена хостів, наприклад

локальний червоний зелений синій

distcc віддає перевагу хостам на початку списку, тому машини слід вказати в списку
порядок спадання швидкості. Зокрема, коли можна запустити лише одну компіляцію (наприклад
як зі сценарію configure), використовується перша машина в списку (але див -- рандомізувати нижче).

розміщення локальний в правильному місці в списку важливо отримати гарну продуктивність.
Оскільки накладні витрати на виконання завдань локально є низькими, localhost зазвичай має бути першим.
Однак важливо, щоб у клієнта було достатньо вільних циклів для виконання локальних завдань і
клієнт distcc. Якщо клієнт повільніше за волонтерів, або якщо їх багато
волонтерів, то клієнта слід вносити пізніше в список або не вносити взагалі. Як генерал
правило, якщо сукупна швидкість ЦП клієнта менше однієї п’ятої загальної, то
клієнта слід виключити зі списку.

Якщо у вас є великий спільний кластер збірки та один спільний файл хостів, дотримуйтеся наведених вище правил
призведе до спроби перших кількох машин у файлі hosts, навіть якщо вони
імовірно, будуть більш зайняті, ніж машини, розташовані нижче в списку. Щоб уникнути цього, розмістіть ключове слово
-- рандомізувати у список хостів. Це призведе до рандомізації списку хостів, що
має трохи покращити продуктивність для великих кластерів збірок.

Є два спеціальних імена хоста --локальні слоти та --localslots_cpp які корисні для
регулювання навантаження на локальну машину. The --локальні слоти хост визначає, скільки вакансій це
не може бути запущений віддалено, який можна запускати одночасно на локальній машині, while
--localslots_cpp контролює, скільки препроцесорів працюватиме паралельно на локальному сервері
машина. Налаштування цих значень може підвищити продуктивність. Посилання на великі проекти може зайняти
великі обсяги пам'яті. Запуск паралельних компонувальників, які неможливо виконати віддалено,
може змусити машину перемикатися, що знижує продуктивність у порівнянні з тим, що просто виконується завдання
послідовність без заміни. Отримання правильної кількості паралельних препроцесорів
дозволяє використовувати більші паралельні коефіцієнти з make, оскільки локальна машина тепер має деякі
механізм для вимірювання використання місцевих ресурсів.

Нарешті є запис хоста

Продуктивність залежить від деталей джерела та make-файлів, які використовуються для проекту, і
швидкість машини та мережі. Експерименти з різними налаштуваннями для списку хостів
та -j фактор може покращити продуктивність.

Синтаксис є

DISTCC_HOSTS = HOSTSPEC ...
HOSTSPEC = LOCAL_HOST | SSH_HOST | TCP_HOST | OLDSTYLE_TCP_HOST
| GLOBAL_OPTION
| ZEROCONF
LOCAL_HOST = локальний хост[/LIMIT]
| --localslots=
| --localslots_cpp=
SSH_HOST = [КОРИСТУВАЧ]@HOSTID[/LIMIT][:КОМАНДА][ПАРАМЕТИ]
TCP_HOST = HOSTID[:PORT][/LIMIT][OPTIONS]
OLDSTYLE_TCP_HOST = HOSTID[/LIMIT][:PORT][OPTIONS]
HOSTID = HOSTNAME | IPV4 | IPV6
ВАРІАНТИ = ,ОПЦІЇ[ПАРАЦІЇ]
ВАРІАНТ = lzo | cpp
GLOBAL_OPTION = --рандомізувати
ZEROCONF = +zeroconf

Ось деякі окремі приклади синтаксису:

локальний
Дослівне слово "localhost" тлумачиться спеціально для створення компіляцій
виконується безпосередньо, а не передається демону на локальній машині. Якщо ти зробиш
хочете підключитися до демона на локальній машині для тестування, а потім надайте
IP-адреса машини або справжнє ім'я хоста. (Це буде повільніше.)

IPV6 Літеральна адреса IPv6, укладена в квадратні дужки, наприклад [::1]

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

ІМЯ ГОСПОДА
Ім’я хоста, яке потрібно шукати за допомогою роздільника.

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

@HOSTID
Підключайтеся до хоста через SSH, а не TCP. Можливі варіанти підключення SSH
бути встановлений ~ / .ssh / config

КОРИСТУВАЧ@ Підключіться до хоста через SSH як зазначене ім’я користувача.

: КОМАНДА
Підключіться через SSH і використовуйте вказаний шлях, щоб знайти сервер distccd. Це
зазвичай потрібно лише в тому випадку, якщо з якихось причин ви не можете встановити distccd в каталог
за умовчанням PATH для з’єднань SSH. Використовуйте це, якщо ви отримуєте помилки на кшталт "distccd:
команда не знайдена" в режимі SSH.

/LIMIT До будь-якої специфікації хоста можна додати десяткове обмеження, щоб обмежити кількість
завдання, які цей клієнт надсилатиме на машину. Ліміт за замовчуванням становить чотири особи
хост (два для локального хосту), але може бути додатково обмежено сервером. Ти повинен
потрібно лише збільшити це для серверів з більш ніж двома процесорами.

,lzo Вмикає стиснення LZO для цього вузла TCP або SSH.

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

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

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

Ось приклад, що демонструє деякі можливості:

локальний хост/2 @bigman/16:/opt/bin/distccd стара машина: 4200/1
# возик is вниз
далекий/3,лзо

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

Якщо хост у списку недоступний, distcc видасть попередження та проігнорує цей хост
близько однієї хвилини.

КОМПРЕСІЯ


Команда lzo параметр хоста вказує, що для передачі даних слід використовувати стиснення LZO,
включаючи попередньо оброблений вихідний код, об'єктний код і повідомлення про помилки. Компресія зазвичай
економічний у мережах повільніше 100 Мбіт/с, але результати можуть відрізнятися залежно від мережі,
процесори та дерево джерел.

Увімкнення стиснення змушує клієнт і сервер distcc використовувати більше часу ЦП, але менше
мережевий трафік. Доданий процесорний час є незначним для режиму насоса. Стиснення
співвідношення зазвичай становить 4:1 для вихідного і 2:1 для об'єктного коду.

Використання стиснення вимагає, щоб клієнт і сервер використовували принаймні версію 2.9 distcc.
Конфігурація сервера не потрібна: сервер завжди відповідає стисненими відповідями на
стислі запити.

Режим насоса вимагає, щоб сервери ввімкнули параметр хосту lzo.

ПОШУК Шляхи


Якщо ім’я компілятора є абсолютним шляхом, воно передається дослівно на сервер і на
компілятор запускається з цього каталогу. Наприклад:

distcc /usr/local/bin/gcc-3.1415 -c привіт.c

Якщо ім’я компілятора не є абсолютним або не є повністю визначеним, виконується пошук за PATH distccd.
Коли distcc запускається з маскарадного каталогу, є лише базова назва компілятора
використаний. PATH клієнта використовується лише для запуску препроцесора і не впливає на
шлях сервера.

ТАЙМ-АУТИ


І клієнт, і сервер distcc накладають тайм-аути на передачу даних по мережі.
Це призначено для виявлення вузлів, які не працюють або недоступні, а також для запобігання компіляції
зависає на невизначений термін, якщо сервер відключено під час використання. Якщо тайм-аут на стороні клієнта
термін дії закінчується, завдання буде повторно запущено локально.

Час очікування наразі не можна налаштувати.

ДІАГНОСТИКА


Повідомлення про помилки або попередження від локальних або віддалених компіляторів передаються на діагностику
виведення на клієнта.

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

EXIT КОДИ


Код виходу distcc зазвичай є кодом компілятора: нуль для успішної компіляції
і відмінний від нуля в іншому випадку.

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

Якщо компілятор виходить із сигналом, distcc повертає код виходу 128 плюс сигнал
номер.

Внутрішні помилки distcc викликають код виходу між 100 і 127. Зокрема

100 Загальна помилка distcc.

101 Погані аргументи.

102 Не вдалося прив’язати.

103 Помилка підключення.

104 Збій компілятора.

105 Недолік пам'яті.

106 Поганий Host SPEC

107 Помилка введення-виведення

108 Усічений.

109 Помилка протоколу.

110 Даний компілятор не знайдено на віддаленому хості. Перевірте, чи встановлено $CC
належним чином і що він встановлений у каталозі на шляху пошуку для
distccd.

111 Рекурсивний виклик distcc.

112 Не вдалося скасувати привілеї.

113 Доступ до мережі заборонено.

114 Використовується іншим процесом.

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

116 Не визначено хости, а резервні системи вимкнено.

118 Тайм-аут.

Використовуйте distcc онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

  • 1
    Жар-птиця
    Жар-птиця
    Firebird RDBMS пропонує функції ANSI SQL
    і працює на Linux, Windows і
    кілька платформ Unix. особливості
    чудова паралельність і продуктивність
    & потужність...
    Завантажити Firebird
  • 2
    KompoZer
    KompoZer
    KompoZer — це HTML-редактор wysiwyg, який використовує
    кодова база Mozilla Composer. Як
    Розвиток Nvu було зупинено
    у 2005 році KompoZer виправляє багато помилок і
    додає ф...
    Завантажити KompoZer
  • 3
    Безкоштовний завантажувач манги
    Безкоштовний завантажувач манги
    Безкоштовний завантажувач манги (FMD) є
    програма з відкритим кодом, написана
    Object-Pascal для управління і
    завантаження манги з різних веб-сайтів.
    Це дзеркало...
    Завантажте безкоштовний завантажувач манги
  • 4
    Aetbootin
    Aetbootin
    UNetbootin дозволяє створювати завантажувальні програми
    Живі USB-накопичувачі для Ubuntu, Fedora та
    інші дистрибутиви Linux без
    запис компакт-диска. Він працює на Windows, Linux,
    і ...
    Завантажити UNetbootin
  • 5
    Dolibarr ERP - CRM
    Dolibarr ERP - CRM
    Dolibarr ERP - CRM проста у використанні
    Пакет програмного забезпечення з відкритим кодом ERP і CRM
    (запустити з веб-сервером php або як
    автономне програмне забезпечення) для бізнесу,
    основи...
    Завантажити Dolibarr ERP - CRM
  • 6
    SQL-клієнт SQuirreL
    SQL-клієнт SQuirreL
    SQuirreL SQL Client — це графічний SQL
    клієнт, написаний на Java, що дозволить
    Ви можете переглянути структуру JDBC
    сумісна база даних, переглядайте дані в
    столи...
    Завантажте клієнт SQuirreL SQL
  • Детальніше »

Команди Linux

Ad