EngelsFransSpaans

Ad


OnWorks-favicon

distcc - Online in de cloud

Voer distcc uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht distcc die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


distcc - gedistribueerde C/C++/ObjC-compiler met distcc-pump-extensies

KORTE INHOUD


distcc [COMPILER OPTIES]

distcc [COMPILER OPTIES]

[COMPILER OPTIES]

distcc [DISTCC OPTIES]

PRODUCTBESCHRIJVING


distcc verdeelt de compilatie van C-code over verschillende machines op een netwerk. distcc
zou altijd dezelfde resultaten moeten genereren als een lokale compilatie, het is eenvoudig te installeren en
gebruiken, en het is vaak veel sneller dan een lokale compilatie.

Deze versie bevat gewone distcc en een verbetering genaamd pompmodus of
distcc-pomp.

Voor elke taak verzendt distcc in gewone modus de volledige voorverwerkte broncode en
compilerargumenten over het netwerk van de client naar een compilatieserver. Op pomp
modus, verzendt distcc de broncode en recursief opgenomen headerbestanden (exclusief die
uit de standaard systeemheader-directories), zodat zowel preprocessing als compilatie
kan plaatsvinden op de compilatieservers. Dit versnelt de levering van compilaties door
tot een orde van grootte over gewone distcc.

Compilatie wordt aangestuurd door een clientmachine, meestal het werkstation van de ontwikkelaar
of notebook. De distcc-client draait op deze machine, evenals de preprocessor (if
de pompmodus van distcc wordt niet gebruikt), de linker en andere stadia van het bouwproces. Elk
aantal vrijwillige machines fungeren als compilatieservers en helpen de klant bij het bouwen van het
programma, door het uitvoeren van de distccd(1) daemon, C-compiler en assembler zoals vereist.

distcc kan over TCP-sockets lopen (standaard op poort 3632) of door een tunnel
commando zoals ssh(1). Voor TCP-verbindingen moeten de vrijwilligers het distccd(1) demon
rechtstreeks of van inetd. Voor SSH-verbindingen moet distccd geïnstalleerd zijn, maar dat zou moeten
niet luister naar verbindingen.

TCP-verbindingen mogen alleen worden gebruikt op beveiligde netwerken omdat er geen gebruiker is
authenticatie of bescherming van bron- of objectcode. SSH-verbindingen zijn meestal 25%
langzamer vanwege processoroverhead voor codering, hoewel dit sterk kan variëren
afhankelijk van CPU's, netwerk en het programma dat wordt gebouwd.

distcc is bedoeld voor gebruik met GNU Make's -j optie, die verschillende compiler uitvoert
processen tegelijkertijd. distcc verdeelt de taken over zowel lokale als externe CPU's.
Omdat distcc het grootste deel van het werk over het netwerk kan verdelen, is een hogere
concurrency-niveau kan worden gebruikt dan voor lokale builds. Als vuistregel geldt de -j waarde
moet worden ingesteld op ongeveer twee keer het totale aantal beschikbare server-CPU's, maar is onderhevig aan
beperkingen van de cliënt. Deze instelling zorgt voor maximale interleaving van taken die worden geblokkeerd
wachten op schijf- of netwerk-IO. Merk op dat distcc ook kan werken met andere buildcontrole
tools, zoals SCons, waar gelijksoortige concurrency-instellingen moeten worden aangepast.

De -j instelling, vooral voor grote waarden van -J, moet rekening houden met de CPU-belasting
de cliënt. Mogelijk zijn aanvullende maatregelen nodig om de belasting van de klant te beperken. Bijvoorbeeld,
gelijktijdige koppelingen moeten ernstig worden beperkt met hulpvergrendelingen. Het effect van
andere bouwactiviteit, zoals Java-compilatie bij het bouwen van gemengde code, zou moeten zijn
beschouwd. De --localslots_cpp parameter is standaard ingesteld op 16. Dit beperkt de
aantal gelijktijdige processen die voorbewerken in gewone distcc-modus (niet-pompmodus).
Daarom groter -j waarden dan 16 kunnen worden gebruikt zonder een single-CPU-client te overbelasten
vanwege voorbewerking. Zulke grote waarden kunnen delen van de build versnellen die dat niet doen
omvatten C-compilaties, maar ze zijn mogelijk niet nuttig voor het distcc-rendement in gewone modus.

In tegenstelling tot het gebruik van de pompmodus en zeg 40 servers, een instelling van -j80 of groter kan zijn
zelfs geschikt voor single-CPU-clients.

Het wordt sterk aanbevolen dat u dezelfde compilerversie op alle machines installeert
meewerken aan een opbouw. Incompatibele compilers kunnen een mysterieuze compilatie of koppeling veroorzaken
mislukkingen.

QUICK START


1 Download voor elke machine distcc, pak uit en installeer.

2 Voer op elk van de servers uit distccd --demon Met --toestaan opties te beperken
toegang.

3 Zet de namen van de servers in uw omgeving:
$ export DISTCC_HOSTS='localhost rood groen blauw'

4 Bouw!
$ maak -j8 CC=distcc

QUICK START VOOR DISTCC-POMP MODE


Ga verder zoals hierboven, maar specificeer in stap 3 dat de externe hosts de last moeten dragen
voorverwerking en dat de bestanden die via het netwerk worden verzonden, moeten worden gecomprimeerd:

$ export DISTCC_HOSTS='--willekeurige localhost red,cpp,lzo green,cpp,lzo
blauw,cpp,lzo'

De --willekeurig optie dwingt een uniform gebruik van compile-servers af. Terwijl je krijgt
sommigen profiteren van de pompmodus van distcc met slechts een paar servers, je krijgt steeds meer voordeel
met meer server-CPU's (tot in de honderden!). Wikkel je build in het pompcommando,
hier uitgaande van 10 servers:

$ distcc-pomp maken -j20 CC=distcc

HOE PLAIN (NIET-POMP) DISTCC WERKEN


distcc voert alleen de compiler en assembler op afstand uit. Met gewone distcc, de
preprocessor moet altijd lokaal worden uitgevoerd omdat het toegang moet hebben tot verschillende headerbestanden op
de lokale machine die mogelijk niet aanwezig is of niet dezelfde is op de vrijwilliger. De
linker moet op dezelfde manier bibliotheken en objectbestanden onderzoeken en moet dus lokaal worden uitgevoerd.

De compiler en assembler nemen slechts één invoerbestand (de voorbewerkte broncode) en
een enkele uitvoer produceren (het objectbestand). distcc verzendt deze twee bestanden over de
netwerk en kan daarom de compiler/assembler op afstand uitvoeren.

Gelukkig is de preprocessor voor de meeste programma's relatief goedkoop en de
linker wordt relatief zeldzaam genoemd, dus het meeste werk kan worden verspreid.

distcc onderzoekt de opdrachtregel om te bepalen welke van deze fasen worden aangeroepen, en
of de taak verdeeld kan worden.

HOE DISTCC-POMP MODE WERKEN


In de pompmodus stuurt distcc de preprocessor ook op afstand. Om dit te doen, moet de preprocessor
toegang hebben tot alle bestanden waartoe het toegang zou hebben gehad als het lokaal was uitgevoerd. In
pompmodus, distcc verzamelt daarom alle recursief opgenomen headers, behalve de
degenen die standaard systeemheaders zijn, en stuurt ze samen met het bronbestand naar het
compilatie server.

In distcc-pump-modus pakt de server de set van alle bronbestanden tijdelijk uit
directory, die een mappenboom bevat die het deel van het bestandssysteem weerspiegelt dat
is relevant voor voorbewerking, inclusief symbolische koppelingen.

De compiler wordt dan uitgevoerd vanaf het pad in de tijdelijke map die overeenkomt met het
huidige werkdirectory op de client. Om de vele honderden bestanden te vinden en te verzenden
die vaak deel uitmaken van een enkele compilatie, gebruikt de pompmodus een incrementele include
analyse algoritme. De include-server is een Python-programma dat dit implementeert
algoritme. De opdracht distcc-pump start de include-server zodat tijdens de build
het kan include-query's beantwoorden met distcc-commando's.

De include-server gebruikt statische analyse van de macrotaal om conditioneel te behandelen
compilatie en berekend omvat. Het gebruikt de eigenschap dat wanneer een bepaald headerbestand heeft
al is geanalyseerd op insluitsels, is het niet nodig om dit opnieuw te doen als alles insluit
opties (-I's) zijn ongewijzigd (samen met andere voorwaarden).

Voor grote builds worden header-bestanden gemiddeld honderden keren per stuk opgenomen. Met
distcc-pump-modus wordt elk van deze bestanden maar een paar keer geanalyseerd, in plaats daarvan misschien maar één keer
honderden keren worden voorverwerkt. Ook is elk bron- of headerbestand nu
slechts één keer gecomprimeerd, omdat de include-server de gecomprimeerde bestanden onthoudt. Als een
Hierdoor kan de tijd die wordt besteed aan het voorbereiden van compilaties tot een orde van grootte afnemen
over de voorbewerking van gewone distcc.

Omdat distcc in pompmodus in staat is om bestanden tot ongeveer tien keer sneller naar buiten te duwen, build
snelheid kan 3x of meer toenemen voor grote builds in vergelijking met gewone distcc-modus.

BEPERKINGEN VOOR PUMP MODE


Het gebruik van de pompmodus vereist dat zowel client als servers release 3.0 of later van distcc en gebruiken
distccd (respectievelijk).

De incrementele include-analyse van de distc-pump-modus berust op de fundamentele aanname
dat bron- en headerbestanden niet veranderen tijdens het bouwproces. Een paar complexe builds
systemen, zoals die voor Linux kernel 2.6, voldoen niet helemaal aan deze eis. Naar
om dergelijke problemen op te lossen, en andere hoekgevallen zoals absolute bestandspaden in include, zie
de include_server(1) man pagina.

Een andere belangrijke aanname is dat de include-configuratie van alle machines moet zijn
identiek. De headers onder het standaardsysteempad moeten dus op alle servers hetzelfde zijn
en alle klanten. Als een standaard GNU-compilerinstallatie wordt gebruikt, dan is deze vereiste
is van toepassing op alle bibliotheken waarvan de headerbestanden zijn geïnstalleerd / Usr / include or
/usr/local/include/. Merk op dat het installeren van softwarepakketten vaak leidt tot extra
headers-bestanden die in submappen van een van beide worden geplaatst.

Als deze aanname niet klopt, is het mogelijk om builds te breken met distcc-pump
modus, of erger nog, om zonder waarschuwing verkeerde resultaten te krijgen. Momenteel is deze voorwaarde niet
geverifieerd, en het staat op onze TODO-lijst om dit probleem aan te pakken.

Een gemakkelijke manier om te garanderen dat de include-configuraties identiek zijn, is door een cross-
compiler die een standaard systeemzoekpad definieert dat beperkt is tot mappen van de
compiler installatie.

Zie de include_server(1) handleiding voor meer informatie over symptomen en oorzaken van overtredingen
van distcc-pump-modus aannames.

OPTIE OVERZICHT


De meeste opties die aan distcc worden doorgegeven, worden geïnterpreteerd als compileropties. De volgende opties
worden begrepen door distcc zelf. Als een van deze opties is opgegeven, doet distcc dat niet
beroep doen op de compiler.

--help Geeft samenvattende instructies weer.

--versie
Geeft de versie van de distcc-client weer.

--show-gastheren
Toont de hostlijst die distcc zou gebruiken. Zie het gedeelte Hostspecificaties.

--scan-inclusief
Toont de lijst met bestanden die distcc naar de externe machine zou sturen, zoals
berekend door de include-server. Dit is een conservatieve (over-)benadering van de
bestanden die door de C-compiler zouden worden gelezen. Deze optie werkt alleen in pompmodus.
Zie het gedeelte "Hoe Distcc-pump-modus werkt" voor meer informatie over hoe dit wordt berekend.

De lijst wordt uitgevoerd door distcc --scan-inclusief bevat één item per regel. Elk
regel bevat een categorie gevolgd door een pad. De categorie is een van FILE, SYMLINK,
DIRECTORY of SYSTEMDIR:

FILE geeft een bronbestand of headerbestand aan dat naar de distcc-server zou worden verzonden
gastheer.

SYMLINK geeft een symbolische link aan die naar de distcc-serverhost zou worden verzonden.

DIRECTORY geeft een map aan die mogelijk nodig is om de broncode te compileren
bestand. Een directory "foo" kan bijvoorbeeld nodig zijn vanwege een include van de
vorm #include "foo/../bar.h". Dergelijke mappen zouden worden gemaakt op de distcc
server-host.

SYSTEEMDIR geeft een system include directory aan, dwz een directory die zich op de
het standaard include-pad van de compiler, zoals "/ Usr / include"; dergelijke mappen zijn
verondersteld aanwezig te zijn op de host van de distcc-server en dus niet naar de
distcc-serverhost.

-j Toont het concurrency-niveau van distcc, zoals berekend op basis van de hostlijst; het is de
maximum aantal uitstaande taken uitgegeven door deze client aan alle servers. Door
standaard is dit vier keer het aantal hosts in de hostlijst, tenzij de
De optie /LIMIT is gebruikt in de hostlijst. Zie het gedeelte Hostspecificaties.

INSTALLATIE DISTCC


Er zijn drie verschillende manieren om distcc aan te roepen, afhankelijk van de omstandigheden:

distcc kan worden geïnstalleerd onder de naam van de echte compiler, om oproepen naar te onderscheppen
en voer ze op afstand uit. Deze "vermomde" compiler heeft de grootste compatibiliteit
met bestaande broncodebomen, en is handig wanneer u distcc voor iedereen wilt gebruiken
compilatie. Het feit dat distcc wordt gebruikt is transparant voor de makefiles.

distcc kan worden toegevoegd aan de opdrachtregels van de compiler, zoals "distcc cc -c hello.c"
of CC="distcc gcc". Dit is handig als u distcc slechts voor enkele wilt gebruiken
compilaties of om het uit te proberen, maar kan problemen veroorzaken met sommige makefiles of
versies van libtool die aannemen dat $CC geen spatie bevat.

Ten slotte kan distcc direct als compiler worden gebruikt. "cc" wordt altijd gebruikt als de
naam van de echte compiler in deze "impliciete" modus. Dit kan handig zijn voor
interactief gebruik wanneer de "expliciete" modus niet werkt, maar niet echt wordt aanbevolen
voor nieuw gebruik.

Onthoud dat u niet twee methoden moet gebruiken om distcc tegelijkertijd aan te roepen. als jij
een maskerade-directory gebruikt, verander CC en/of CXX niet, plaats de directory gewoon eerder
op jouw PAD. Als u geen maskerade-directory gebruikt, moet u CC wijzigen
en/of CXX, of wijzig de makefile(s) om distcc expliciet aan te roepen.

masquerading


Het basisidee is om een ​​"maskerade-directory" te maken die links bevat van de naam van
de echte compiler naar het binaire bestand distcc. Deze map wordt vroeg op het PATH ingevoegd, dus
dat oproepen naar de compiler worden onderschept en in plaats daarvan distcc wordt uitgevoerd. distcc verwijdert vervolgens
zichzelf van het PATH om de echte compiler te vinden.

Bijvoorbeeld:

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

Om vervolgens distcc te gebruiken, hoeft een gebruiker alleen de directory /usr/lib/distcc/bin vroeg in te voeren
het PATH, en een hostlijst hebben ingesteld in DISTCC_HOSTS of een bestand. distcc zal de
rust uit.

Merk op dat deze maskerade-directory eerder op het PATH moet voorkomen dan de directory die
bevat de daadwerkelijke compilers met dezelfde namen, en alle hulpprogramma's die
deze compilers-aanroep (zoals as of ld) moet ook op het PATH in een directory staan
na de masquerade-directory omdat distcc de echte compiler aanroept met een PATH
waarde die alle directory's tot en met de maskerade-directory heeft afgekapt.

Het is mogelijk om een ​​"recursiefout" te krijgen in maskerademodus, wat betekent dat distcc is
op de een of andere manier zichzelf weer vinden, niet de echte compiler. Dit kan erop duiden dat je er twee hebt
masquerade-mappen op het PATH, mogelijk omdat er twee distcc-installaties in zitten
verschillende locaties. Het kan er ook op duiden dat je 'vermomd' en 'vermomd' probeert te mixen
"expliciete" operatie.

Recursiefouten kunnen worden voorkomen door shell-scripts te gebruiken in plaats van links. Bijvoorbeeld binnen
/usr/lib/distcc/bin maak een bestand cc aan dat bevat:

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

Op deze manier zijn we niet afhankelijk van distcc die de echte gcc moet lokaliseren door te onderzoeken
de PATH-variabele. In plaats daarvan wordt de locatie van de compiler expliciet opgegeven.

GEBRUIK MAKEND VAN DISTCC MET CCACHE


ccache is een programma dat het bouwen van software versnelt door de resultaten van compilaties in het cachegeheugen op te slaan.
ccache wordt normaal gesproken vóór distcc aangeroepen, zodat de resultaten worden opgehaald uit een normal
cache. Sommige experimenten kunnen nodig zijn om idiosyncratische makefiles te maken
alles werkt samen.

De meest betrouwbare methode is om in te stellen

CCACHE_PREFIX="distcc"

Dit vertelt ccache om distcc uit te voeren als een wrapper rond de echte compiler. ccache gebruikt nog steeds
de echte compiler om compiler-upgrades te detecteren.

ccache kan dan worden uitgevoerd met behulp van een maskerade-directory or door in te stellen

CC="ccache gcc"

Vanaf versie 2.2 cachet ccache de compilatie van voorverwerkte broncode niet en dat zal ook zo zijn
krijg nooit een cachehit als het wordt uitgevoerd vanaf distccd of distcc. Het moet alleen worden uitgevoerd op de
client-kant en vóór distcc om enig nut te hebben.

De pompmodus van distcc is niet compatibel met ccache.

HOST SPECIFICATIES


Een "hostlijst" vertelt distcc welke machines moeten worden gebruikt voor compilatie. In volgorde ziet distcc eruit
in de $DISTCC_HOSTS omgevingsvariabele, de user's $DISTCC_DIR/hosts bestand, en de
systeembrede hostbestand. Als er geen hostlijst kan worden gevonden, geeft distcc een waarschuwing en compileert
lokaal.

De hostlijst is een eenvoudige, door spaties gescheiden lijst met hostspecificaties. De makkelijkste
en de meest voorkomende vorm is een hostnaam, zoals

localhost rood groen blauw

distcc geeft de voorkeur aan hosts aan het begin van de lijst, dus machines moeten worden vermeld in
aflopende volgorde van snelheid. Met name wanneer slechts één compilatie kan worden uitgevoerd (zoals
vanaf een configuratiescript), wordt de eerst vermelde machine gebruikt (maar zie --willekeurig hieronder).

plaatsing localhost op het juiste punt in de lijst is belangrijk om goede prestaties te krijgen.
Omdat de overhead voor het lokaal uitvoeren van taken laag is, zou localhost normaal gesproken de eerste moeten zijn.
Het is echter belangrijk dat de klant voldoende fietsen vrij heeft om de lokale banen en werkzaamheden uit te voeren
de distcc-client. Als de cliënt langzamer is dan de vrijwilligers, of als er veel zijn
vrijwilligers, dan moet de cliënt later of helemaal niet op de lijst worden gezet. Als generaal
regel, als de totale CPU-snelheid van de client minder dan een vijfde van het totaal is, dan
de klant moet uit de lijst worden weggelaten.

Als u een groot gedeeld buildcluster en een enkel gedeeld hosts-bestand heeft, gelden de bovenstaande regels
zou ervoor zorgen dat de eerste paar machines in het hosts-bestand eerst worden geprobeerd, ook al zijn ze
zijn waarschijnlijk drukker dan machines verderop in de lijst. Plaats het trefwoord om dit te voorkomen
--willekeurig in de hostlijst. Dit zorgt ervoor dat de hostlijst willekeurig wordt gemaakt, wat
zou de prestaties enigszins moeten verbeteren voor grote buildclusters.

Er zijn twee speciale hostnamen --lokale slots en --localslots_cpp waar ze handig voor zijn
aanpassen belasting op de lokale machine. De --lokale slots host specificeert hoeveel taken dat
kan niet op afstand worden uitgevoerd die tegelijkertijd op de lokale computer kan worden uitgevoerd, terwijl
--localslots_cpp bepaalt hoeveel preprocessors parallel op de lokale computer zullen draaien
machine. Het afstemmen van deze waarden kan de prestaties verbeteren. Koppelen aan grote projecten kan veel tijd kosten
grote hoeveelheden geheugen. Parallelle linkers uitvoeren, die niet op afstand kunnen worden uitgevoerd,
kan de machine dwingen om te wisselen, wat de prestaties vermindert ten opzichte van het uitvoeren van de taken
volgorde zonder te wisselen. Het aantal parallelle preprocessors precies goed krijgen
stelt u in staat grotere parallelle factoren te gebruiken met make, aangezien de lokale machine er nu enkele heeft
mechanisme voor het meten van het gebruik van lokale hulpbronnen.

Ten slotte is er de hostinvoer

Prestaties zijn afhankelijk van de details van de broncode en makefiles die voor het project worden gebruikt, en
de machine en netwerksnelheden. Experimenteren met verschillende instellingen voor de hostlijst
en -j factor kan de prestaties verbeteren.

De syntaxis is

DISTCC_HOSTS = HOSTSPEC ...
HOSTSPEC = LOCAL_HOST | SSH_HOST | TCP_HOST | OLDSTYLE_TCP_HOST
| GLOBAL_OPTION
| ZEROCONF
LOCAL_HOST = lokale host[/LIMIT]
| --lokaleslots=
| --localslots_cpp=
SSH_HOST = [USER]@HOSTID[/LIMIT][:COMMAND][OPTIES]
TCP_HOST = HOSTID[:POORT][/LIMIT][OPTIES]
OLDSTYLE_TCP_HOST = HOSTID[/LIMIT][:POORT][OPTIES]
HOSTID = HOSTNAAM | IPV4 | IPV6
OPTIES = ,OPTIE[OPTIES]
OPTIE = lzo | cpp
GLOBAL_OPTION = --willekeurig
ZEROCONF = +nulconf

Hier zijn enkele individuele voorbeelden van de syntaxis:

localhost
Het letterlijke woord "localhost" wordt speciaal geïnterpreteerd om compilaties te veroorzaken
direct uitgevoerd, in plaats van doorgegeven aan een daemon op de lokale machine. Als je dat doet
verbinding wilt maken met een daemon op de lokale machine om te testen, geef dan het
het IP-adres van de machine of de echte hostnaam. (Dit gaat langzamer.)

IPV6 Een letterlijk IPv6-adres tussen vierkante haken, zoals [::1]

IPV4 Een letterlijk IPv4-adres, zoals 10.0.0.1

HOSTNAME
Een hostnaam die moet worden opgezocht met behulp van de resolver.

:HAVEN Maak verbinding met een opgegeven decimaal poortnummer in plaats van de standaardwaarde 3632.

@HOSTID
Maak verbinding met de host via SSH in plaats van via TCP. Opties voor de SSH-verbinding kunnen
wordt geplaatst in ~ / .ssh / config

GEBRUIKER@ Maak verbinding met de host via SSH als een opgegeven gebruikersnaam.

:COMMANDO
Maak verbinding via SSH en gebruik een opgegeven pad om de distccd-server te vinden. Dit is
normaal alleen nodig als je distccd om de een of andere reden niet in een map kunt installeren
op het standaard PATH voor SSH-verbindingen. Gebruik dit als u fouten krijgt zoals "distccd:
opdracht niet gevonden" in SSH-modus.

/BEGRENZING Een decimale limiet kan worden toegevoegd aan elke hostspecificatie om het aantal te beperken
taken die deze client naar de machine stuurt. De limiet is standaard ingesteld op vier per
host (twee voor localhost), maar kan verder worden beperkt door de server. Je zou moeten
hoeft dit alleen te verhogen voor servers met meer dan twee processors.

, zo Schakelt LZO-compressie in voor deze TCP- of SSH-host.

, cpp Schakelt distcc-pump-modus in voor deze host. Opmerking: het build-commando moet worden ingepakt
het distcc-pump-script om de include-server te starten.

--willekeurig
Maak de volgorde van de hostlijst willekeurig voordat deze wordt uitgevoerd.

+nulconf
Deze optie is Slechts Beschikbaar if distcc was gecompileerd Met avahi ondersteuning ingeschakeld at
configureer tijd. Wanneer dit speciale item aanwezig is in de hosts-lijst, zal distcc dat doen
gebruik Avahi Zeroconf DNS Service Discovery (DNS-SD) om beschikbare distccd's te lokaliseren
servers op het lokale netwerk. Dit voorkomt de noodzaak om de host expliciet te vermelden
namen of IP-adressen van de distcc-servermachines. De distccd-servers moeten
gestart met de "--zeroconf" optie om distccd. Een belangrijk voorbehoud is dat
in de huidige implementatie zullen pompmodus (",cpp") en compressie (",lzo") dat wel doen
nooit worden gebruikt voor hosts die zich via zeroconf bevinden.

Hier is een voorbeeld dat enkele mogelijkheden demonstreert:

lokalehost/2 @bigman/16:/opt/bin/distccd oude machine: 4200/1
# cartman is beneden
ver/3,lzo

Opmerkingen zijn toegestaan ​​in hostspecificaties. Opmerkingen beginnen met een hekje/hekje (#)
en ren naar het einde van de lijn.

Als een host in de lijst niet bereikbaar is, zal distcc een waarschuwing geven en die host negeren
ongeveer een minuut.

COMPRESSIE


De zo host-optie specificeert dat LZO-compressie moet worden gebruikt voor gegevensoverdracht,
inclusief voorbewerkte broncode, objectcode en foutmeldingen. Compressie is meestal
zuinig op netwerken die langzamer zijn dan 100 Mbps, maar de resultaten kunnen variëren afhankelijk van het netwerk,
processors en bronboom.

Door compressie in te schakelen, gebruiken de distcc-client en -server meer CPU-tijd, maar minder
netwerk verkeer. De toegevoegde CPU-tijd is onbeduidend voor de pompmodus. De compressie
verhouding is typisch 4:1 voor broncode en 2:1 voor objectcode.

Het gebruik van compressie vereist dat zowel client als server minimaal versie 2.9 van distcc gebruiken.
Er is geen serverconfiguratie vereist: de server reageert altijd met gecomprimeerde antwoorden op
gecomprimeerde verzoeken.

De pompmodus vereist dat de servers de lzo-hostoptie hebben ingeschakeld.

ZOEKEN PADEN


Als de compilernaam een ​​absoluut pad is, wordt deze woordelijk doorgegeven aan de server en het
compiler wordt uitgevoerd vanuit die map. Bijvoorbeeld:

distcc /usr/local/bin/gcc-3.1415 -c hallo.c

Als de compilernaam niet absoluut of niet volledig gekwalificeerd is, wordt het PATH van distccd doorzocht.
Wanneer distcc wordt uitgevoerd vanuit een maskerade-directory, is alleen de basisnaam van de compiler
gebruikt. Het PATH van de client wordt alleen gebruikt om de preprocessor uit te voeren en heeft geen effect op de
pad van de server.

TIME-OUTS


Zowel de distcc-client als de server leggen time-outs op bij de overdracht van gegevens over het netwerk.
Dit is bedoeld om hosts te detecteren die down of onbereikbaar zijn, en om compileren te voorkomen
voor onbepaalde tijd hangen als een server wordt losgekoppeld terwijl deze in gebruik is. Als een time-out aan de clientzijde
verloopt, wordt de taak lokaal opnieuw uitgevoerd.

De time-outs kunnen momenteel niet worden geconfigureerd.

DIAGNOSE


Foutmeldingen of waarschuwingen van lokale of externe compilers worden doorgegeven aan de diagnose
uitvoer op de klant.

distcc kan uitgebreide foutopsporingsinformatie leveren wanneer de uitgebreide optie wordt gebruikt. Dit
wordt bestuurd door de DISTCC_VERBOSE omgevingsvariabele op de client en de --uitgebreid
optie op de server. Onderzoek voor het oplossen van problemen zowel de client- als de serverfout
berichten.

EXIT CODES


De afsluitcode van distcc is normaal gesproken die van de compiler: nul voor succesvolle compilatie
en anders niet nul.

distcc maakt onderscheid tussen "echte" fouten zoals een syntaxisfout in de broncode en
"toevallige" fouten zoals een netwerkprobleem bij het verbinden met een vrijwilliger. In het geval
van toevallige fouten, zal distcc de compilatie lokaal opnieuw proberen, tenzij de DISTCC_FALLBACK
optie is uitgeschakeld.

Als de compiler afsluit met een signaal, retourneert distcc een exitcode van 128 plus het signaal
nummer.

distcc interne fouten veroorzaken een exitcode tussen 100 en 127. In het bijzonder

100 Algemene distcc-fout.

101 Slechte argumenten.

102 Verbinden mislukt.

103 Verbinden mislukt.

104 Compiler is gecrasht.

105 Geen geheugen meer.

106 slechte host-SPEC

107 I/O-fout

108 afgeknot.

109 Protocolfout.

110 De opgegeven compiler is niet gevonden op de externe host. Controleer of $CC is ingesteld
op de juiste manier en dat het is geïnstalleerd in een map op het zoekpad naar
distccd.

111 Recursieve aanroep naar distcc.

112 Kan privileges niet negeren.

113 Netwerktoegang geweigerd.

114 In gebruik door een ander proces.

115 Zo'n dossier bestaat niet.

116 Geen hosts gedefinieerd en fallbacks uitgeschakeld.

118 Time-out.

Gebruik distcc online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    Firebird
    Firebird
    Firebird RDBMS biedt ANSI SQL-functies
    & draait op Linux, Windows &
    verschillende Unix-platforms. Functies
    uitstekende gelijktijdigheid en prestaties
    & stroom...
    Firebird downloaden
  • 2
    KompoZer
    KompoZer
    KompoZer is een wysiwyg HTML-editor die gebruikt
    de Mozilla Composer-codebasis. Als
    De ontwikkeling van Nvu is gestopt
    in 2005 repareert KompoZer veel bugs en
    voegt een f toe...
    KompoZer downloaden
  • 3
    Gratis Manga Downloader
    Gratis Manga Downloader
    De gratis manga-downloader (FMD) is een
    open source applicatie geschreven in
    Object-Pascal voor het beheer van en
    manga downloaden van verschillende websites.
    Dit is een spiegel...
    Download gratis manga-downloader
  • 4
    UNetbootin
    UNetbootin
    Met UNetbootin kunt u opstartbare
    Live USB-drives voor Ubuntu, Fedora en
    andere Linux-distributies zonder
    een cd branden. Het draait op Windows, Linux,
    En ...
    UNetbootin downloaden
  • 5
    Dolibarr ERP-CRM
    Dolibarr ERP-CRM
    Dolibarr ERP - CRM is eenvoudig te gebruiken
    ERP en CRM open source softwarepakket
    (uitgevoerd met een web-php-server of als
    stand-alone software) voor bedrijven,
    fundamenten...
    Dolibarr ERP - CRM downloaden
  • 6
    SQuirreL SQL-client
    SQuirreL SQL-client
    SQuirreL SQL Client is een grafische SQL
    client geschreven in Java die het mogelijk maakt
    u om de structuur van een JDBC te bekijken
    compatibele database, blader door de gegevens in
    tafels...
    SQuirreL SQL-client downloaden
  • Meer "

Linux-commando's

Ad