Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

distcc — Online w chmurze

Uruchom distcc u dostawcy darmowego hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

Jest to polecenie distcc, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu Mac OS

PROGRAM:

IMIĘ


distcc - rozproszony kompilator C/C++/ObjC z rozszerzeniami distcc-pump

STRESZCZENIE


odległość [KOMPILATOR OPCJE]

odległość [KOMPILATOR OPCJE]

[KOMPILATOR OPCJE]

odległość [ODLEGŁ OPCJE]

OPIS


distcc dystrybuuje kompilację kodu C na kilka maszyn w sieci. distcc
powinna zawsze generować takie same wyniki jak kompilacja lokalna, jest prosta w instalacji i
używać i często jest znacznie szybsza niż kompilacja lokalna.

Ta wersja zawiera zwykły distcc, a także ulepszenie zwane trybem pompy lub
pompa-dyskowa.

Dla każdego zadania distcc w trybie zwykłym wysyła kompletny, wstępnie przetworzony kod źródłowy i
argumenty kompilatora w sieci od klienta do serwera kompilacji. W pompie
tryb, distcc wysyła kod źródłowy i rekurencyjnie dołączane pliki nagłówkowe (z wyjątkiem tych
z domyślnych systemowych katalogów nagłówkowych), tak aby zarówno przetwarzanie wstępne, jak i kompilacja
może odbywać się na serwerach kompilacji. Przyspiesza to dostarczanie kompilacji przez
do rzędu wielkości nad zwykłym distcc.

Kompilacja jest prowadzona przez komputer kliencki, którym zazwyczaj jest stacja robocza programisty
lub laptopa. Klient distcc działa na tym komputerze, podobnie jak make, preprocesor (jeśli
tryb pompy distcc nie jest używany), linker i inne etapy procesu budowania. Każdy
wiele maszyn wolontariuszy działa jako serwery kompilacji i pomaga klientowi zbudować
programu, uruchamiając distccd(1) demon, kompilator C i asembler zgodnie z wymaganiami.

distcc może działać przez gniazda TCP (domyślnie na porcie 3632) lub przez tunel
polecenie takie jak ssh(1). W przypadku połączeń TCP wolontariusze muszą uruchomić distccd(1) demon
bezpośrednio lub z inetd. W przypadku połączeń SSH należy zainstalować program distccd, ale powinien
nie nasłuchiwać połączeń.

Połączenia TCP powinny być używane tylko w bezpiecznych sieciach, ponieważ nie ma użytkownika
uwierzytelnianie lub ochrona kodu źródłowego lub obiektowego. Połączenia SSH to zazwyczaj 25%
wolniej ze względu na obciążenie procesora związane z szyfrowaniem, chociaż może się to znacznie różnić
w zależności od procesorów, sieci i budowanego programu.

distcc jest przeznaczone do użytku z GNU Make -j opcja, która uruchamia kilka kompilatorów
procesy jednocześnie. distcc rozkłada zadania na lokalne i zdalne procesory.
Ponieważ distcc jest w stanie dystrybuować większość pracy w sieci, wyższa
poziom współbieżności może być używany niż w przypadku kompilacji lokalnych. Zasadniczo -j wartość
powinna być ustawiona na około dwukrotność całkowitej liczby dostępnych procesorów serwera, ale z zastrzeżeniem:
ograniczenia klienta. To ustawienie pozwala na maksymalne przeplatanie blokowanych zadań
oczekiwanie na dyskowe lub sieciowe IO. Pamiętaj, że distcc może również współpracować z innymi kontrolkami kompilacji
narzędzia, takie jak SCons, w których należy dostosować podobne ustawienia współbieżności.

Połączenia -j ustawienie, szczególnie dla dużych wartości -J, musi brać pod uwagę obciążenie procesora
Klient. Mogą być potrzebne dodatkowe środki, aby ograniczyć obciążenie klienta. Na przykład,
jednoczesne łączenie powinno być poważnie ograniczone za pomocą zamków pomocniczych. Efekt
inne działania związane z kompilacją, takie jak kompilacja Java podczas budowania kodu mieszanego, powinny być:
uważane. ten --locallots_cpp parametr jest domyślnie ustawiony na 16. Ogranicza to
liczba jednoczesnych procesów, które wykonują przetwarzanie wstępne w zwykłym trybie distcc (bez pompy).
Dlatego większy -j wartości niż 16 mogą być używane bez przeciążania klienta z jednym procesorem
ze względu na wstępne przetwarzanie. Tak duże wartości mogą przyspieszyć części kompilacji, które nie
obejmują kompilacje C, ale mogą nie być przydatne do zwiększenia wydajności distcc w trybie zwykłym.

W przeciwieństwie do tego, używając trybu pompy i powiedzmy 40 serwerów, ustawienie -j80 lub większy może być
odpowiednie nawet dla klientów z jednym procesorem.

Zdecydowanie zaleca się zainstalowanie tej samej wersji kompilatora na wszystkich komputerach
udział w kompilacji. Niekompatybilne kompilatory mogą powodować tajemniczą kompilację lub link
awarie.

SZYBKI START


1 Dla każdego komputera pobierz distcc, rozpakuj i zainstaluj.

2 Na każdym z serwerów uruchom distccd --demon w --pozwolić opcje do ograniczenia
dostęp.

3 Umieść nazwy serwerów w swoim środowisku:
$ export DISTCC_HOSTS='localhost czerwony zielony niebieski'

4 Buduj!
$ make -j8 CC=dstcc

SZYBKI START DLA POMPA DISTCC TRYB


Postępuj jak powyżej, ale w kroku 3 określ, że hosty zdalne mają ponosić ciężar
wstępne przetwarzanie i że pliki przesyłane przez sieć powinny być skompresowane:

$ export DISTCC_HOSTS='--randomize localhost red,cpp,lzo green,cpp,lzo
niebieski,cpp,lzo”

Połączenia --randomizuj opcja wymusza jednolite użycie serwerów kompilacji. Podczas gdy dostaniesz
niektórzy korzystają z trybu pompy distcc z tylko kilkoma serwerami, zyskujesz coraz większe korzyści
z większą liczbą procesorów serwera (do setek!). Owiń swoją konstrukcję wewnątrz polecenia pompy,
tutaj zakładając 10 serwerów:

$ distcc-pompa marka -j20 CC=distcc

JAK RÓWNINA (BEZ POMPY) ODL.CC DZIAŁA


distcc zawsze uruchamia kompilator i asembler tylko zdalnie. W przypadku zwykłego distcc,
preprocesor musi zawsze działać lokalnie, ponieważ musi mieć dostęp do różnych plików nagłówkowych na
lokalna maszyna, która może nie być obecna lub może nie być taka sama na ochotniku. ten
konsolidator podobnie musi badać biblioteki i pliki obiektowe, a więc musi działać lokalnie.

Kompilator i asembler pobierają tylko jeden plik wejściowy (wstępnie przetworzone źródło) i
generować pojedyncze wyjście (plik obiektowy). distcc wysyła te dwa pliki w całym kraju
sieci i dlatego może zdalnie uruchomić kompilator/asembler.

Na szczęście w przypadku większości programów uruchamiających preprocesor jest stosunkowo tani, a
linker jest nazywany stosunkowo rzadko, więc większość pracy może być rozpowszechniana.

distcc sprawdza swój wiersz poleceń, aby określić, która z tych faz jest wywoływana, i
czy praca może być rozdzielona.

JAK POMPA DISTCC TRYB DZIAŁA


W trybie pompy distcc również zdalnie uruchamia preprocesor. Aby to zrobić, preprocesor musi:
mieć dostęp do wszystkich plików, do których miałby dostęp, gdyby działał lokalnie. w
Dlatego w trybie pompy distcc zbiera wszystkie rekursywnie uwzględnione nagłówki, z wyjątkiem
te, które są domyślnymi nagłówkami systemowymi i wysyła je wraz z plikiem źródłowym do
serwer kompilacji.

W trybie distcc-pump serwer rozpakowuje zestaw wszystkich plików źródłowych w tymczasowym
katalog, który zawiera drzewo katalogów, które odzwierciedla tę część systemu plików, która
ma znaczenie dla przetwarzania wstępnego, w tym dowiązań symbolicznych.

Kompilator jest następnie uruchamiany ze ścieżki w katalogu tymczasowym, który odpowiada
bieżący katalog roboczy na kliencie. Aby znaleźć i przesłać wiele setek plików
które często są częścią pojedynczej kompilacji, tryb pompy wykorzystuje przyrostowe włączanie
algorytm analizy. Serwer dołączeń to program w Pythonie, który to implementuje
algorytm. Polecenie distcc-pump uruchamia serwer dołączania, dzięki czemu podczas kompilacji
może odpowiadać na zapytania dołączane za pomocą poleceń distcc.

Serwer włączania wykorzystuje statyczną analizę języka makr do radzenia sobie z warunkami warunkowymi
kompilacja i przeliczone uwzględnia. Wykorzystuje właściwość, że gdy dany plik nagłówkowy ma
zostały już przeanalizowane pod kątem dołączeń, nie jest konieczne powtarzanie tego, jeśli wszystkie dołączenia
opcje (-I) pozostają bez zmian (wraz z innymi warunkami).

W przypadku dużych kompilacji pliki nagłówkowe są dołączane średnio setki razy. Z
tryb distcc-pump każdy taki plik jest analizowany tylko kilka razy, zamiast tego może tylko raz
być wstępnie przetworzonym setki razy. Ponadto każdy plik źródłowy lub nagłówkowy jest teraz
skompresowane tylko raz, ponieważ serwer dołączeń zapamiętuje skompresowane pliki. Jak
w rezultacie czas potrzebny na przygotowanie kompilacji może ulec skróceniu nawet o rząd wielkości
nad wstępnym przetwarzaniem zwykłego distcc.

Ponieważ distcc w trybie pompy jest w stanie wypchnąć pliki do około dziesięciu razy szybciej, build
prędkość może wzrosnąć 3X lub więcej w przypadku dużych kompilacji w porównaniu do zwykłego trybu distcc.

OGRANICZENIA DLA PUMP TRYB


Korzystanie z trybu pompy wymaga, aby zarówno klient, jak i serwery korzystały z wersji 3.0 lub nowszej programu distcc i
distccd (odpowiednio).

Przyrostowa analiza uwzględniania trybu pompy dyskowej opiera się na podstawowym założeniu
że pliki źródłowe i nagłówkowe nie zmieniają się podczas procesu kompilacji. Kilka złożonych kompilacji
systemy, takie jak ten dla jądra Linuksa 2.6, nie spełniają tego wymagania. Do
przezwyciężyć takie problemy i inne narożne przypadki, takie jak bezwzględne ścieżki plików, w tym, zobacz
dotychczasowy zawiera_serwer(1) strona podręcznika.

Innym ważnym założeniem jest to, że konfiguracja wszystkich maszyn musi być:
identyczny. Dlatego nagłówki w domyślnej ścieżce systemowej muszą być takie same na wszystkich serwerach
i wszystkich klientów. Jeśli używana jest standardowa instalacja kompilatora GNU, to wymaganie
dotyczy wszystkich bibliotek, których pliki nagłówkowe są zainstalowane w / Usr / include or
/usr/lokalny/zawiera/. Pamiętaj, że instalowanie pakietów oprogramowania często prowadzi do dodatkowych
pliki nagłówkowe umieszczane w podkatalogach obu.

Jeśli to założenie nie jest spełnione, możliwe jest przerwanie kompilacji za pomocą distcc-pump
tryb lub, co gorsza, aby uzyskać błędne wyniki bez ostrzeżenia. Obecnie ten stan nie jest
zweryfikowane i znajduje się na naszej liście TODO, aby rozwiązać ten problem.

Prostym sposobem zagwarantowania, że ​​konfiguracje dołączania są identyczne, jest użycie krzyża
kompilator, który definiuje domyślną ścieżkę wyszukiwania systemu ograniczoną do katalogów
instalacja kompilatora.

Zobacz zawiera_serwer(1) instrukcja, aby uzyskać więcej informacji o objawach i przyczynach naruszeń
założeń trybu pompy distcc.

OPCJA PODSUMOWANIE


Większość opcji przekazywanych do distcc jest interpretowana jako opcje kompilatora. Następujące opcje
są rozumiane przez sam distcc. Jeśli którakolwiek z tych opcji jest określona, ​​distcc nie będzie
wywołać kompilator.

--help Wyświetla instrukcje podsumowujące.

--wersja
Wyświetla wersję klienta distcc.

--show-gospodarze
Wyświetla listę hostów, której użyje distcc. Zobacz sekcję Specyfikacje hosta.

--skanowanie-zawiera
Wyświetla listę plików, które distcc wyśle ​​do zdalnego komputera, jako
obliczane przez serwer dołączania. Jest to konserwatywne (nad)przybliżenie
pliki, które zostałyby odczytane przez kompilator C. Ta opcja działa tylko w trybie pompy.
Zobacz sekcję „Jak działa tryb pompy Distcc”, aby uzyskać szczegółowe informacje na temat tego, jak to jest obliczane.

Wyjście listy przez odległość --skanowanie-zawiera będzie zawierać jeden wpis w wierszu. Każdy
wiersz zawiera kategorię, po której następuje ścieżka. Kategoria to: PLIK, SYMLINK,
KATALOG lub SYSTEMDIR:

FILE wskazuje plik źródłowy lub plik nagłówkowy, który zostanie wysłany do serwera distcc
gospodarz.

SYMBOL wskazuje dowiązanie symboliczne, które zostanie wysłane do hosta serwera distcc.

KATALOG wskazuje katalog, który może być potrzebny do skompilowania źródła
plik. Na przykład katalog „foo” może być potrzebny, ponieważ zawiera
formularz #include "foo/../bar.h". Takie katalogi zostałyby utworzone na dysku distcc
host serwera.

KATALOG SYSTEMU wskazuje katalog systemowy, tj. katalog, który znajduje się na
domyślna ścieżka kompilatora, np. „/ Usr / include"; takie katalogi są
zakłada się, że jest obecny na hoście serwera distcc, a więc nie zostanie wysłany do
host serwera distcc.

-j Wyświetla poziom współbieżności distcc, obliczony na podstawie listy hostów; to jest
maksymalna liczba oczekujących zadań wysłanych przez tego klienta do wszystkich serwerów. Za pomocą
domyślnie będzie to czterokrotność liczby hostów na liście hostów, chyba że
W liście hostów użyto opcji /LIMIT. Zobacz sekcję Specyfikacje hosta.

INSTALACJA ODL.CC


Istnieją trzy różne sposoby wywoływania distcc, w zależności od różnych okoliczności:

distcc można zainstalować pod nazwą prawdziwego kompilatora, aby przechwytywać połączenia do
i uruchamiaj je zdalnie. Ten „zamaskowany” kompilator ma najszerszą kompatybilność
z istniejącymi drzewami źródłowymi i jest wygodne, gdy chcesz używać distcc dla wszystkich
kompilacja. Fakt, że używane jest distcc jest niewidoczny dla plików makefile.

distcc może być poprzedzony wierszami poleceń kompilatora, takimi jak „distcc cc -c hello.c”
lub CC="distcc gcc". Jest to wygodne, gdy chcesz używać distcc tylko dla niektórych
kompilacje lub wypróbować, ale może powodować problemy z niektórymi plikami makefile lub
wersje libtool, które zakładają, że $CC nie zawiera spacji.

Wreszcie, distcc może być używany bezpośrednio jako kompilator. „cc” jest zawsze używane jako
nazwa prawdziwego kompilatora w tym "niejawnym" trybie. Może to być wygodne dla
interaktywne użycie, gdy tryb „jawny” nie działa, ale nie jest tak naprawdę zalecany
do nowego użytku.

Pamiętaj, że nie powinieneś używać dwóch metod wywoływania distcc jednocześnie. Jeśli ty
używasz katalogu maskarady, nie zmieniaj CC i/lub CXX, po prostu umieść katalog wcześniej
na Twojej ŚCIEŻCE. Jeśli nie używasz katalogu maskarady, musisz zmienić CC
i/lub CXX, lub zmodyfikuj pliki makefile, aby jawnie wywołać distcc.

PRZEMASKOWANIE


Podstawową ideą jest stworzenie „katalogu maskarady” zawierającego linki od nazwy
prawdziwy kompilator do binarnego distcc. Ten katalog jest wstawiany na początku ścieżki PATH, więc
że wywołania kompilatora są przechwytywane i zamiast tego uruchamiane jest polecenie distcc. distcc następnie usuwa
się z PATH, aby znaleźć prawdziwy kompilator.

Na przykład:

# 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++

Następnie, aby użyć distcc, użytkownik musi po prostu na początku umieścić katalog /usr/lib/distcc/bin
PATH i ustawiłem listę hostów w DISTCC_HOSTS lub w pliku. distcc obsłuży
reszta.

Zauważ, że ten katalog maskarady musi występować w ścieżce PATH wcześniej niż katalog, który
zawiera rzeczywiste kompilatory o tych samych nazwach oraz wszelkie programy pomocnicze, które
te wywołania kompilatorów (takie jak lub ld) muszą być również znalezione w PATH w katalogu
po katalogu maskarady, ponieważ distcc wywołuje prawdziwy kompilator za pomocą PATH
wartość, która ma cały katalog do katalogu maskarady włącznie.

Możliwe jest uzyskanie „błędu rekurencji” w trybie maskarady, co oznacza, że ​​distcc jest
jakoś odnajduje siebie, a nie prawdziwego kompilatora. Może to oznaczać, że masz dwa
katalogi maskarady na PATH, prawdopodobnie z powodu posiadania dwóch instalacji distcc w
różne lokalizacje. Może to również oznaczać, że próbujesz połączyć „zamaskowane” i
operacja „wyraźna”.

Błędów rekurencji można uniknąć, używając skryptów powłoki zamiast linków. Na przykład w
/usr/lib/distcc/bin tworzy plik cc, który zawiera:

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

W ten sposób nie jesteśmy zależni od tego, że distcc musi zlokalizować prawdziwe gcc poprzez zbadanie
zmienna PATH. Zamiast tego lokalizacja kompilatora jest jawnie podana.

ZA POMOCĄ ODL.CC Z CACHE


ccache to program, który przyspiesza tworzenie oprogramowania poprzez buforowanie wyników kompilacji.
ccache jest zwykle wywoływany przed distcc, więc wyniki są pobierane z normalnego
Pamięć podręczna. Pewne eksperymenty mogą być wymagane do tworzenia idiosynkratycznych plików makefile
wszystko działa razem.

Najbardziej niezawodną metodą jest ustawienie

CCACHE_PREFIX = "distcc"

To mówi ccache, aby uruchomił distcc jako wrapper wokół prawdziwego kompilatora. cache nadal używa
prawdziwy kompilator do wykrywania aktualizacji kompilatora.

ccache można następnie uruchomić za pomocą katalogu masquerade or przez ustawienie

CC="cache" gcc”

Od wersji 2.2 cache nie buforuje kompilacji z wstępnie przetworzonego źródła, więc będzie
nigdy nie otrzymuj trafienia w pamięci podręcznej, jeśli jest uruchamiany z distccd lub distcc. Musi być uruchamiany tylko na
po stronie klienta i przed distcc do jakiegokolwiek użytku.

Tryb pompy distcc nie jest kompatybilny z ccache.

HOST DANE TECHNICZNE


"Lista hostów" informuje distcc, których komputerów użyć do kompilacji. W porządku, distcc wygląda
$DISTCC_HOSTS zmienna środowiskowa użytkownika $DISTCC_DIR/hosty plik, a
ogólnosystemowy plik hosta. Jeśli nie można znaleźć listy hostów, distcc wyświetla ostrzeżenie i kompiluje się
lokalnie.

Lista hostów to prosta, oddzielona białymi spacjami lista specyfikacji hostów. Najprostszy
a najczęstszą formą są nazwy hostów, takie jak

localhost czerwony Zielony niebieski

distcc preferuje hosty na początku listy, więc komputery powinny być wymienione w
malejący porządek prędkości. W szczególności, gdy można uruchomić tylko jedną kompilację (np
jak ze skryptu konfiguracyjnego), używana jest pierwsza wymieniona maszyna (ale zobacz --randomizuj poniżej).

wprowadzanie localhost we właściwym miejscu na liście jest ważne, aby uzyskać dobre wyniki.
Ponieważ narzut na uruchamianie zadań lokalnie jest niski, localhost powinien być zwykle na pierwszym miejscu.
Jednak ważne jest, aby klient miał wystarczająco dużo wolnych cykli, aby uruchomić lokalne zadania i
klienta distcc. Jeśli klient jest wolniejszy od wolontariuszy lub jeśli jest ich wielu
wolontariuszy, wtedy klient powinien być umieszczony później na liście lub wcale. Jako generał
reguła, jeśli łączna szybkość procesora klienta jest mniejsza niż jedna piąta całości, to
klienta należy pominąć z listy.

Jeśli masz duży udostępniony klaster kompilacji i pojedynczy plik hostów udostępnionych, powyższe zasady
spowoduje, że kilka pierwszych komputerów w pliku hosts zostanie wypróbowanych jako pierwsze, mimo że:
prawdopodobnie będą bardziej zajęci niż maszyny znajdujące się w dalszej części listy. Aby tego uniknąć, umieść słowo kluczowe
--randomizuj do listy hostów. Spowoduje to, że lista hostów będzie losowa, co:
powinien nieznacznie poprawić wydajność w przypadku dużych klastrów kompilacji.

Istnieją dwie specjalne nazwy hostów --locallots i --locallots_cpp które są przydatne dla
regulacja obciążenia na lokalnej maszynie. ten --locallots host określa, ile miejsc pracy ma
nie można uruchomić zdalnie, które można uruchomić jednocześnie na komputerze lokalnym, podczas gdy
--locallots_cpp kontroluje, ile preprocesorów będzie działać równolegle na lokalnym
maszyna. Dostrojenie tych wartości może poprawić wydajność. Łączenie w dużych projektach może zająć
duże ilości pamięci. Uruchamianie równoległych linkerów, których nie można wykonać zdalnie,
może zmusić maszynę do wymiany, co zmniejsza wydajność w porównaniu z uruchamianiem zadań w
sekwencja bez zamiany. Uzyskanie odpowiedniej liczby równoległych preprocesorów
pozwala na użycie większych współczynników równoległych z make, ponieważ lokalna maszyna ma teraz trochę
mechanizm pomiaru wykorzystania zasobów lokalnych.

Wreszcie jest wpis hosta

Wydajność zależy od szczegółów źródła i plików makefile użytych w projekcie, oraz
prędkość maszyny i sieci. Eksperymentowanie z różnymi ustawieniami listy hostów
i -j czynnik może poprawić wydajność.

Składnia to

DISTCC_HOSTY = HOSTSPEC ...
HOSTSPEC = LOKALNY_HOST | SSH_HOST | TCP_HOST | OLDSTYLE_TCP_HOST
| GLOBAL_OPCJA
| ZEROKONF
LOCAL_HOST = host lokalny[/LIMIT]
| --localslots=
| --localslots_cpp=
SSH_HOST = [USER]@HOSTID[/LIMIT][:COMMAND][OPCJE]
HOST_TCP = ID HOSTA[:PORT][/LIMIT][OPCJE]
OLDSTYLE_TCP_HOST = ID HOSTA[/LIMIT][:PORT][OPCJE]
ID HOSTA = NAZWA HOSTA | IPV4 | IPV6
OPCJE = ,OPCJA[OPCJE]
OPCJA = lzo | cpp
GLOBAL_OPTION = --randomizuj
ZEROKONF = +zerokonf

Oto kilka pojedynczych przykładów składni:

localhost
Dosłowne słowo „localhost” jest interpretowane specjalnie po to, aby kompilacje były
wykonywane bezpośrednio, a nie przekazywane do demona na komputerze lokalnym. Jeśli zrobisz
chcesz połączyć się z demonem na lokalnym komputerze w celu przetestowania, a następnie podaj
adres IP komputera lub rzeczywista nazwa hosta. (Będzie to wolniejsze).

IPV6 Dosłowny adres IPv6 ujęty w nawiasy kwadratowe, na przykład [::1]

IPV4 Dosłowny adres IPv4, taki jak 10.0.0.1

NAZWA HOSTA
Nazwa hosta do wyszukania za pomocą przelicznika.

:PORT Połącz się z określonym numerem portu dziesiętnego zamiast domyślnego 3632.

@HOSTID
Połącz się z hostem przez SSH, a nie TCP. Opcje połączenia SSH mogą
być ustawionym w ~ / .ssh / config

UŻYTKOWNIK@ Połącz się z hostem przez SSH jako podana nazwa użytkownika.

:KOMENDA
Połącz się przez SSH i użyj określonej ścieżki, aby znaleźć serwer distccd. To jest
zwykle potrzebne tylko wtedy, gdy z jakiegoś powodu nie możesz zainstalować distccd w katalogu
na domyślnej PATH dla połączeń SSH. Użyj tego, jeśli otrzymujesz błędy, takie jak „distccd:
nie znaleziono polecenia” w trybie SSH.

/LIMIT Limit dziesiętny można dodać do dowolnej specyfikacji hosta, aby ograniczyć liczbę
zadania, które ten klient wyśle ​​do maszyny. Limit domyślnie wynosi cztery osoby
host (dwa dla localhost), ale mogą być dodatkowo ograniczone przez serwer. Powinieneś
wystarczy to zwiększyć w przypadku serwerów z więcej niż dwoma procesorami.

lzo Włącza kompresję LZO dla tego hosta TCP lub SSH.

, cpp Włącza tryb distcc-pump dla tego hosta. Uwaga: polecenie budowania musi być opakowane w
skrypt distcc-pump w celu uruchomienia serwera dołączania.

--randomizuj
Losuj kolejność listy hostów przed wykonaniem.

+zerokonf
To zdjęcie opcja is tylko dostępny if odległość była skompilowany w avahi wsparcie włączony at
skonfigurować czas. Gdy ten specjalny wpis jest obecny na liście hostów, distcc będzie
użyj Avahi Zeroconf DNS Service Discovery (DNS-SD), aby zlokalizować dowolny dostępny distccd
serwery w sieci lokalnej. Dzięki temu nie musisz wyraźnie wymieniać hosta
nazwy lub adresy IP maszyn serwerów distcc. Serwery distccd muszą mieć
został uruchomiony z opcją "--zeroconf" dla distccd. Ważnym zastrzeżeniem jest to, że
w obecnej implementacji tryb pompy (",cpp") i kompresja (",lzo") będą
nigdy nie należy używać dla hostów zlokalizowanych przez zeroconf.

Oto przykład pokazujący kilka możliwości:

host lokalny/2 @bigman/16:/opt/bin/distccd stara maszyna:4200/1
# Cartman is na dół
odległy/3,lzo

Komentarze są dozwolone w specyfikacjach hosta. Komentarze zaczynają się od znaku krzyżyka (#)
i biegnij do końca linii.

Jeśli host z listy nie jest osiągalny, distcc wyśle ​​ostrzeżenie i zignoruje ten host przez
około minuty.

COMPRESSION


Połączenia lzo opcja host określa, że ​​do przesyłania danych powinna być używana kompresja LZO,
w tym wstępnie przetworzone źródło, kod wynikowy i komunikaty o błędach. Kompresja jest zwykle
ekonomiczne w sieciach wolniejszych niż 100Mbps, ale wyniki mogą się różnić w zależności od sieci,
procesory i drzewo źródłowe.

Włączenie kompresji sprawia, że ​​klient i serwer distcc zużywają więcej czasu procesora, ale mniej
ruch sieciowy. Dodany czas procesora jest nieistotny w trybie pompy. Kompresja
stosunek wynosi zazwyczaj 4:1 dla źródła i 2:1 dla kodu obiektowego.

Korzystanie z kompresji wymaga, aby zarówno klient, jak i serwer używały co najmniej wersji 2.9 distcc.
Nie jest wymagana konfiguracja serwera: serwer zawsze odpowiada skompresowanymi odpowiedziami na
skompresowane żądania.

Tryb pompy wymaga, aby serwery miały włączoną opcję lzo host.

SZUKAJ ŚCIEŻKI


Jeśli nazwa kompilatora jest ścieżką bezwzględną, jest przekazywana dosłownie do serwera, a
kompilator jest uruchamiany z tego katalogu. Na przykład:

odległość /usr/local/bin/gcc-3.1415 -c cześć, c

Jeśli nazwa kompilatora nie jest bezwzględna lub nie jest w pełni kwalifikowana, przeszukiwana jest PATH distccd.
Kiedy distcc jest uruchamiany z katalogu masquerade, tylko nazwa podstawowa kompilatora to
używany. PATH klienta służy tylko do uruchamiania preprocesora i nie ma wpływu na
ścieżka serwera.

LIMITY CZASU


Zarówno klient distcc, jak i serwer nakładają limity czasu na transfer danych przez sieć.
Ma to na celu wykrywanie hostów, które są wyłączone lub nieosiągalne, oraz zapobieganie kompilacji
zawiesza się na czas nieokreślony, jeśli serwer zostanie rozłączony podczas używania. Jeśli limit czasu po stronie klienta
wygaśnie, zadanie zostanie ponownie uruchomione lokalnie.

Limity czasu nie są obecnie konfigurowalne.

DIAGNOSTYKA


Komunikaty o błędach lub ostrzeżenia z lokalnych lub zdalnych kompilatorów są przekazywane do diagnostyki
dane wyjściowe na kliencie.

distcc może dostarczyć obszerne informacje debugowania, gdy używana jest opcja verbose. Ten
kontroluje DISTCC_VERBOSE zmienna środowiskowa na kliencie, a --gadatliwy
opcja na serwerze. Aby rozwiązać problem, sprawdź zarówno błąd klienta, jak i serwera
wiadomości.

EXIT KODY


Kod wyjścia distcc jest zwykle kodem kompilatora: zero dla udanej kompilacji
i niezerowe w przeciwnym razie.

distcc rozróżnia „prawdziwe” błędy, takie jak błąd składni w źródle, oraz
„przypadkowe” błędy, takie jak problem z połączeniem z wolontariuszem. W tej sprawie
przypadkowych błędów, distcc ponowi próbę kompilacji lokalnie, chyba że DISTCC_FALLBACK
opcja została wyłączona.

Jeśli kompilator zakończy działanie z sygnałem, distcc zwróci kod wyjścia 128 plus sygnał
liczba.

Błędy wewnętrzne distcc powodują kod wyjścia od 100 do 127. W szczególności

100 Ogólna awaria dysku.

101 Złych argumentów.

102 Wiązanie nie powiodło się.

103 Połączenie nie powiodło się.

104 Kompilator uległ awarii.

105 Brak pamięci.

106 SPECYFIKACJA ZŁEGO hosta

107 Błąd we/wy

108 Obcięty.

109 Błąd protokołu.

110 Podany kompilator nie został znaleziony na zdalnym hoście. Sprawdź, czy ustawiony jest $CC
prawidłowo i że jest zainstalowany w katalogu na ścieżce wyszukiwania dla
distccd.

111 Rekurencyjne wywołanie distcc.

112 Nie udało się odrzucić uprawnień.

113 Odmowa dostępu do sieci.

114 Używany przez inny proces.

115 Brak takiego pliku.

116 Brak zdefiniowanych hostów i wyłączone rezerwy.

118 Limit czasu.

Korzystaj z distcc online za pomocą usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad