InglesPransesEspanyol

Ad


OnWorks favicon

distcc - Online sa Cloud

Patakbuhin ang distcc sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command distcc na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


distcc - ipinamahagi ang C/C++/ObjC compiler na may mga extension ng distcc-pump

SINOPSIS


distcc [COMPILER OPTIONS]

distcc [COMPILER OPTIONS]

[COMPILER OPTIONS]

distcc [DISTCC OPTIONS]

DESCRIPTION


Ang distcc ay namamahagi ng compilation ng C code sa ilang mga machine sa isang network. distcc
dapat palaging bumuo ng parehong mga resulta bilang isang lokal na compile, ito ay simpleng i-install at
gamitin, at madalas itong mas mabilis kaysa sa lokal na compile.

Ang bersyon na ito ay nagsasama ng plain distcc pati na rin ang isang pagpapahusay na tinatawag na pump mode o
distcc-pump.

Para sa bawat trabaho, ipinapadala ng distcc sa plain mode ang kumpletong preprocessed source code at
mga argumento ng compiler sa buong network mula sa kliyente hanggang sa isang compilation server. Sa pump
mode, ipinapadala ng distcc ang source code at recursively na isinama ang mga header file (hindi kasama ang mga
mula sa mga default na direktoryo ng header ng system), upang ang parehong preprocessing at compilation
maaaring maganap sa mga compilation server. Pinapabilis nito ang paghahatid ng mga compilation ng
hanggang sa isang order ng magnitude sa payak na distcc.

Ang compilation ay hinihimok ng isang client machine, na karaniwang workstation ng developer
o laptop. Ang distcc client ay tumatakbo sa makinang ito, tulad ng ginagawa, ang preprocessor (kung
hindi ginagamit ang pump mode ng distcc), ang linker, at iba pang mga yugto ng proseso ng pagbuo. Anuman
bilang ng mga boluntaryong makina ay nagsisilbing compilation server at tumutulong sa kliyente na bumuo ng
programa, sa pamamagitan ng pagpapatakbo ng distccd(1) daemon, C compiler at assembler kung kinakailangan.

Ang distcc ay maaaring tumakbo sa alinman sa mga TCP socket (sa port 3632 bilang default), o sa pamamagitan ng isang tunnel
utos tulad ng SSH(1). Para sa mga koneksyon sa TCP, dapat patakbuhin ng mga boluntaryo ang distccd(1) demonyo
direkta man o mula sa inetd. Para sa mga koneksyon sa SSH, dapat na mai-install ang distccd ngunit dapat
hindi nakikinig para sa mga koneksyon.

Ang mga koneksyon sa TCP ay dapat lamang gamitin sa mga secure na network dahil walang gumagamit
pagpapatunay o proteksyon ng source o object code. Ang mga koneksyon sa SSH ay karaniwang 25%
mas mabagal dahil sa overhead ng processor para sa pag-encrypt, bagama't maaari itong mag-iba nang malaki
depende sa mga CPU, network at ang program na binuo.

Ang distcc ay inilaan upang magamit sa GNU Make's -j opsyon, na nagpapatakbo ng ilang compiler
sabay-sabay na proseso. Ipinakakalat ng distcc ang mga trabaho sa parehong lokal at malalayong CPU.
Dahil naipamahagi ng distcc ang karamihan sa trabaho sa buong network, mas mataas
maaaring gamitin ang concurrency level kaysa sa mga lokal na build. Bilang isang tuntunin ng hinlalaki, ang -j halaga
dapat itakda sa humigit-kumulang dalawang beses sa kabuuang bilang ng mga available na CPU ng server ngunit napapailalim sa
mga limitasyon ng kliyente. Nagbibigay-daan ang setting na ito para sa pinakamaraming interleaving ng mga gawaing hinaharangan
naghihintay para sa disk o network IO. Tandaan na ang distcc ay maaari ding gumana sa ibang build control
mga tool, gaya ng SCons, kung saan dapat isaayos ang mga katulad na setting ng concurrency.

Ang -j setting, lalo na para sa malalaking halaga ng -j, dapat isaalang-alang ang pag-load ng CPU sa
ang kliyente. Maaaring kailanganin ang mga karagdagang hakbang upang mabawasan ang pagkarga ng kliyente. Halimbawa,
Ang sabay-sabay na pag-uugnay ay dapat na mahigpit na bawasan gamit ang mga pantulong na kandado. Ang epekto ng
iba pang aktibidad ng build, tulad ng compilation ng Java kapag bumubuo ng mixed code, ay dapat
isinasaalang-alang. Ang --localslots_cpp parameter ay bilang default na nakatakda sa 16. Nililimitahan nito ang
bilang ng mga kasabay na proseso na nagsasagawa ng preprocessing sa plain distcc (non-pump) mode.
Samakatuwid, mas malaki -j ang mga halagang higit sa 16 ay maaaring gamitin nang hindi nag-overload sa isang solong-CPU client
dahil sa preprocessing. Ang ganitong malalaking halaga ay maaaring mapabilis ang mga bahagi ng build na hindi
may kasamang C compilations, ngunit maaaring hindi sila maging kapaki-pakinabang sa distcc efficiency sa plain mode.

Sa kaibahan, gamit ang pump mode at sabihing 40 server, isang setting ng -j80 o maaaring mas malaki
naaangkop kahit para sa mga single-CPU na kliyente.

Lubos na inirerekomenda na i-install mo ang parehong bersyon ng compiler sa lahat ng makina
nakikilahok sa isang build. Ang mga hindi tugmang compiler ay maaaring maging sanhi ng mahiwagang pag-compile o link
pagkabigo.

QUICKSTART


1 Para sa bawat makina, i-download ang distcc, i-unpack, at i-install.

2 Sa bawat isa sa mga server, tumakbo distccd --demonyo sa --payagan mga pagpipilian upang paghigpitan
access.

3 Ilagay ang mga pangalan ng mga server sa iyong kapaligiran:
$ export DISTCC_HOSTS='localhost red green blue'

4 Bumuo!
$ gumawa -j8 CC=distcc

QUICKSTART PARA SA DISTCC-PUMP MODE


Magpatuloy tulad ng nasa itaas, ngunit sa Hakbang 3, tukuyin na ang mga malayuang host ang magdadala ng pasanin ng
preprocessing at dapat na i-compress ang mga file na ipinadala sa network:

$ export DISTCC_HOSTS='--randomize ang localhost na pula,cpp,lzo green,cpp,lzo
asul, cpp, lzo'

Ang --randomize ang opsyon ay nagpapatupad ng pare-parehong paggamit ng mga compile server. Habang makakakuha ka
ang ilang benepisyo mula sa pump mode ng distcc na may kaunting mga server lamang, nakakakuha ka ng pagtaas ng benepisyo
na may higit pang mga server ng CPU (hanggang sa daan-daan!). I-wrap ang iyong build sa loob ng pump command,
narito sa pag-aakalang 10 server:

$ distcc-pump gumawa -j20 CC=distcc

PAANO PLAIN (NON-PUMP) DISTCC gUMAGANA


Ang distcc ay nagpapatakbo lamang ng compiler at assembler nang malayuan. Sa simpleng distcc, ang
Ang preprocessor ay dapat palaging tumatakbo nang lokal dahil kailangan nitong ma-access ang iba't ibang mga file ng header sa
ang lokal na makina na maaaring wala, o maaaring hindi pareho, sa boluntaryo. Ang
Ang linker ay nangangailangan din na suriin ang mga aklatan at object file, at sa gayon ay dapat tumakbo nang lokal.

Ang compiler at assembler ay kumukuha lamang ng isang input file (ang preprocessed source) at
gumawa ng isang output (ang object file). Ipinapadala ng distcc ang dalawang file na ito sa buong
network at samakatuwid ay maaaring patakbuhin ang compiler/assembler nang malayuan.

Sa kabutihang palad, para sa karamihan ng mga programa na tumatakbo ang preprocessor ay medyo mura, at ang
Ang linker ay tinatawag na medyo madalang, kaya ang karamihan sa trabaho ay maaaring ipamahagi.

Sinusuri ng distcc ang command line nito upang matukoy kung alin sa mga phase na ito ang ini-invoke, at
kung maipamahagi ang trabaho.

PAANO DISTCC-PUMP MODE gUMAGANA


Sa pump mode, pinapatakbo din ng distcc ang preprocessor nang malayuan. Upang gawin ito, ang preprocessor ay dapat
magkaroon ng access sa lahat ng mga file na maa-access sana nito kung lokal na tumatakbo. Sa
pump mode, samakatuwid, tinitipon ng distcc ang lahat ng recursively na kasamang mga header, maliban sa
ang mga default na header ng system, at ipinapadala ang mga ito kasama ng source file sa
server ng compilation.

Sa distcc-pump mode, i-unpack ng server ang set ng lahat ng source file sa isang pansamantalang
direktoryo, na naglalaman ng puno ng direktoryo na sumasalamin sa bahagi ng file system na
ay may kaugnayan sa preprocessing, kabilang ang mga simbolikong link.

Ang compiler ay tatakbo mula sa landas sa pansamantalang direktoryo na tumutugma sa
kasalukuyang gumaganang direktoryo sa kliyente. Upang mahanap at ipadala ang maraming daan-daang mga file
na kadalasang bahagi ng iisang compilation, ang pump mode ay gumagamit ng incremental include
algorithm ng pagsusuri. Ang include server ay isang Python program na nagpapatupad nito
algorithm. Sinisimulan ng distcc-pump command ang isama ang server upang sa buong build
maaari nitong sagutin ang mga query sa pamamagitan ng distcc commands.

Gumagamit ang isamang server ng static na pagsusuri ng macro language para harapin ang kondisyonal
compilation at computed kasama. Ginagamit nito ang pag-aari na kapag mayroon ang isang naibigay na file ng header
nasuri na para sa mga kasama, hindi na kailangang gawin muli kung ang lahat ay kasama
ang mga opsyon (-I's) ay hindi nagbabago (kasama ang iba pang kundisyon).

Para sa malalaking build, ang mga file ng header ay kasama, sa karaniwan, daan-daang beses bawat isa. Sa
distcc-pump mode bawat ganoong file ay sinusuri lamang ng ilang beses, marahil isang beses lang, sa halip
ng pagiging preprocessed daan-daang beses. Gayundin, ang bawat source o header file ay ngayon
isang beses lang na-compress, dahil ang kasamang server ay nagme-memoize ng mga naka-compress na file. Bilang isang
resulta, ang oras na ginamit para sa paghahanda ng mga compilation ay maaaring bumaba ng hanggang sa isang order ng magnitude
higit sa preprocessing ng plain distcc.

Dahil ang distcc sa pump mode ay nakakapag-push ng mga file nang halos sampung beses na mas mabilis, bumuo
maaaring tumaas ang bilis ng 3X o higit pa para sa malalaking build kumpara sa plain distcc mode.

RESTRICTIONS PARA SA Mag-usisa MODE


Ang paggamit ng pump mode ay nangangailangan ng parehong client at server na gumamit ng release 3.0 o mas bago ng distcc at
distccd (ayon sa pagkakabanggit).

Ang incremental isama ang pagsusuri ng distc-pump mode ay nakasalalay sa pangunahing palagay
na ang mga source at header na file ay hindi nagbabago sa panahon ng proseso ng pagbuo. Ilang kumplikadong build
Ang mga system, tulad ng para sa Linux kernel 2.6, ay hindi lubos na nakakatugon sa pangangailangang ito. Upang
pagtagumpayan ang mga naturang isyu, at iba pang mga kaso sa sulok tulad ng mga ganap na filepath sa kasama, tingnan
ang isama ang_server(1) pahina ng tao.

Ang isa pang mahalagang pagpapalagay ay ang pagsasama ng pagsasaayos ng lahat ng mga makina ay dapat na
magkapareho. Kaya ang mga header sa ilalim ng default na path ng system ay dapat na pareho sa lahat ng mga server
at lahat ng kliyente. Kung ang isang karaniwang pag-install ng GNU compiler ay ginamit, ang pangangailangang ito
nalalapat sa lahat ng mga aklatan na ang mga file ng header ay naka-install sa ilalim / usr / isama or
/usr/local/include/. Tandaan na ang pag-install ng mga software package ay kadalasang humahantong sa karagdagang
header file na inilalagay sa mga subdirectory ng alinman.

Kung ang pagpapalagay na ito ay hindi gagana, kung gayon posible na masira ang mga build gamit ang distcc-pump
mode, o mas masahol pa, upang makakuha ng mga maling resulta nang walang babala. Sa kasalukuyan ang kondisyong ito ay hindi
na-verify, at nasa aming listahan ng TODO para tugunan ang isyung ito.

Ang isang madaling paraan upang magarantiya na ang mga kasamang configuration ay magkapareho ay ang paggamit ng cross-
compiler na tumutukoy sa isang default na landas sa paghahanap ng system na pinaghihigpitan sa mga direktoryo ng
pag-install ng compiler.

Tingnan ang isama ang_server(1) manwal para sa karagdagang impormasyon sa mga sintomas at sanhi ng mga paglabag
ng distcc-pump mode assumptions.

OPTION BUOD


Karamihan sa mga opsyon na ipinasa sa distcc ay binibigyang kahulugan bilang mga opsyon sa compiler. Ang mga sumusunod na opsyon
ay naiintindihan ng distcc mismo. Kung tinukoy ang alinman sa mga opsyong ito, hindi gagawin ng distcc
tawagan ang compiler.

- Tumulong Nagpapakita ng mga tagubilin sa buod.

--bersyon
Ipinapakita ang bersyon ng distcc client.

--show-hosts
Ipinapakita ang listahan ng host na gagamitin ng distcc. Tingnan ang seksyong Mga Detalye ng Host.

--scan-kabilang
Ipinapakita ang listahan ng mga file na ipapadala ng distcc sa remote na makina, bilang
kinalkula ng kasamang server. Ito ay isang konserbatibo (over-)approximation ng
mga file na mababasa ng C compiler. Gumagana lang ang opsyong ito sa pump mode.
Tingnan ang seksyong "Paano Gumagana ang Distcc-pump Mode" para sa mga detalye kung paano ito kinukuwenta.

Ang listahan na output ni distcc --scan-kabilang maglalaman ng isang entry sa bawat linya. Bawat isa
linya ay naglalaman ng isang kategorya na sinusundan ng isang landas. Ang kategorya ay isa sa FILE, SYMLINK,
DIRECTORY, o SYSTEMDIR:

FILE ay nagpapahiwatig ng source file o header file na ipapadala sa distcc server
host

SYMLINK ay nagpapahiwatig ng simbolikong link na ipapadala sa distcc server host.

DIRECTORY ay nagpapahiwatig ng isang direktoryo na maaaring kailanganin upang ma-compile ang pinagmulan
file. Halimbawa, maaaring kailanganin ang isang direktoryo na "foo" dahil sa isang kasama ng
form #include "foo/../bar.h". Ang mga nasabing direktoryo ay gagawin sa distcc
host ng server.

SYSTEMDIR ay nagpapahiwatig ng isang sistema na may kasamang direktoryo, ibig sabihin, isang direktoryo na nasa
Kasama sa default ng compiler ang landas, gaya ng "/ usr / isama"; ang mga naturang direktoryo ay
ipinapalagay na naroroon sa distcc server host, at sa gayon ay hindi ipapadala sa
host ng distcc server.

-j Ipinapakita ang antas ng concurrency ng distcc, bilang kinakalkula mula sa listahan ng host; ito ay ang
maximum na bilang ng mga natitirang trabaho na ibinigay ng kliyenteng ito sa lahat ng mga server. Sa pamamagitan ng
default ito ay magiging apat na beses ng bilang ng mga host sa listahan ng host, maliban kung ang
Ang /LIMIT na opsyon ay ginamit sa listahan ng host. Tingnan ang seksyong Mga Detalye ng Host.

PAG-INSTALL DISTCC


Mayroong tatlong magkakaibang paraan upang tumawag sa distcc, upang umangkop sa iba't ibang mga pangyayari:

Maaaring mai-install ang distcc sa ilalim ng pangalan ng tunay na compiler, upang ma-intercept ang mga tawag sa
ito at patakbuhin ang mga ito nang malayuan. Ang "masqueraded" compiler na ito ay may pinakamalawak na compatibility
na may mga kasalukuyang pinagmumulan ng puno, at maginhawa kapag gusto mong gumamit ng distcc para sa lahat
compilation. Ang katotohanan na ang distcc ay ginagamit ay transparent sa makefiles.

Maaaring i-prepended ang distcc sa mga command line ng compiler, gaya ng "distcc cc -c hello.c"
o CC="distcc gcc". Maginhawa ito kapag gusto mong gumamit ng distcc para sa ilan lang
compilations o upang subukan ito, ngunit maaaring magdulot ng problema sa ilang mga makefile o
mga bersyon ng libtool na ipinapalagay na ang $CC ay hindi naglalaman ng espasyo.

Sa wakas, ang distcc ay maaaring gamitin nang direkta bilang isang compiler. Ang "cc" ay palaging ginagamit bilang ang
pangalan ng totoong compiler sa "implicit" na mode na ito. Ito ay maaaring maging maginhawa para sa
interactive na paggamit kapag ang "tahasang" mode ay hindi gumagana ngunit hindi talaga inirerekomenda
para sa bagong gamit.

Tandaan na hindi ka dapat gumamit ng dalawang paraan para sa pagtawag sa distcc sa parehong oras. kung ikaw
ay gumagamit ng masquerade na direktoryo, huwag baguhin ang CC at/o CXX, ilagay lamang ang direktoryo nang maaga
sa iyong DAAN. Kung hindi ka gumagamit ng masquerade directory, kakailanganin mong baguhin ang CC
at/o CXX, o baguhin ang (mga) makefile para tahasang tumawag sa distcc.

PAGPAPALALAK


Ang pangunahing ideya ay lumikha ng isang "direktoryo ng pagbabalatkayo" na naglalaman ng mga link mula sa pangalan ng
ang tunay na compiler sa distcc binary. Ang direktoryo na ito ay naipasok nang maaga sa PATH, kaya
na ang mga tawag sa compiler ay naharang at ang distcc ay tumatakbo sa halip. distcc pagkatapos ay nag-aalis
mismo mula sa PATH upang mahanap ang tunay na tagatala.

Halimbawa:

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

Pagkatapos, para magamit ang distcc, kailangan lang ng user na ilagay ang direktoryo /usr/lib/distcc/bin nang maaga
ang PATH, at nagtakda ng listahan ng host sa DISTCC_HOSTS o isang file. hahawakan ng distcc ang
magpahinga

Tandaan na ang masquerade na direktoryo na ito ay dapat mangyari sa PATH nang mas maaga kaysa sa direktoryo na iyon
naglalaman ng mga aktwal na compiler ng parehong mga pangalan, at ang anumang mga auxiliary program na
ang tawag ng mga compiler na ito (gaya ng o ld) ay dapat ding matagpuan sa PATH sa isang direktoryo
pagkatapos ng direktoryo ng pagbabalatkayo dahil tumawag ang distcc sa totoong compiler na may PATH
halaga na ang lahat ng direktoryo hanggang sa at kabilang ang direktoryo ng pagbabalatkayo ay pinutol.

Posibleng makakuha ng "recursion error" sa masquerade mode, na nangangahulugang ang distcc ay
sa paanuman mahanap muli ang sarili, hindi ang tunay na tagatala. Ito ay maaaring magpahiwatig na mayroon kang dalawa
masquerade na mga direktoryo sa PATH, posibleng dahil sa pagkakaroon ng dalawang distcc installation
iba't ibang lokasyon. Maaari rin itong magpahiwatig na sinusubukan mong paghaluin ang "nagbalatkayo" at
"hayagang" operasyon.

Ang mga error sa recursion ay maiiwasan sa pamamagitan ng paggamit ng mga script ng shell sa halip na mga link. Halimbawa, sa
/usr/lib/distcc/bin lumikha ng isang file cc na naglalaman ng:

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

Sa ganitong paraan, hindi kami nakadepende sa kinakailangang hanapin ng distcc ang totoong gcc sa pamamagitan ng pagsisiyasat
ang PATH variable. Sa halip, ang lokasyon ng compiler ay tahasang ibinigay.

GAMIT DISTCC SA CCACHE


Ang ccache ay isang programa na nagpapabilis sa pagbuo ng software sa pamamagitan ng pag-cache ng mga resulta ng mga compilation.
Ang ccache ay karaniwang tinatawag bago ang distcc, upang ang mga resulta ay makuha mula sa isang normal
cache. Maaaring kailanganin ang ilang eksperimento para makagawa ng mga kakaibang makefile
lahat ay nagtutulungan.

Ang pinaka-maaasahang paraan ay ang pag-set

CCACHE_PREFIX="distcc"

Sinasabi nito sa ccache na patakbuhin ang distcc bilang isang wrapper sa paligid ng tunay na compiler. gumagamit pa rin ng ccache
ang tunay na compiler para makita ang mga upgrade ng compiler.

Ang ccache ay maaaring patakbuhin gamit ang alinman sa isang masquerade na direktoryo or sa pamamagitan ng pagtatakda

CC="ccache gcc"

Sa bersyon 2.2, ang ccache ay hindi nag-cache ng compilation mula sa preprocessed source at gayundin
hindi kailanman makakakuha ng cache hit kung ito ay pinapatakbo mula sa distccd o distcc. Dapat itong tumakbo lamang sa
panig ng kliyente at bago ang distcc upang maging anumang gamit.

Ang pump mode ng distcc ay hindi tugma sa ccache.

HOST Mismong Katangian


Ang isang "listahan ng host" ay nagsasabi sa distcc kung aling mga makina ang gagamitin para sa pagsasama-sama. Sa pagkakasunud-sunod, hitsura ng distcc
nasa $DISTCC_HOSTS variable ng kapaligiran, ang gumagamit $DISTCC_DIR/host file, at ang
host file sa buong system. Kung walang mahahanap na listahan ng host, ang distcc ay naglalabas ng babala at nag-compile
lokal.

Ang listahan ng host ay isang simpleng whitespace na pinaghiwalay na listahan ng mga detalye ng host. Ang pinakasimple
at ang pinakakaraniwang anyo ay isang host name, gaya ng

localhost pula berde asul

Mas pinipili ng distcc ang mga host sa simula ng listahan, kaya dapat na nakalista ang mga makina
pababang pagkakasunod-sunod ng bilis. Sa partikular, kapag isang solong compilation lamang ang maaaring patakbuhin (tulad ng
mula sa isang script ng pag-configure), ginagamit ang unang nakalistang makina (ngunit tingnan --randomize sa ibaba).

Paglalagay localhost sa tamang punto sa listahan ay mahalaga sa pagkuha ng magandang performance.
Dahil mababa ang overhead para sa pagpapatakbo ng mga trabaho sa lokal, ang localhost ay karaniwang dapat mauna.
Gayunpaman, mahalaga na ang kliyente ay may sapat na mga cycle na libre upang patakbuhin ang mga lokal na trabaho at
ang distcc client. Kung ang kliyente ay mas mabagal kaysa sa mga boluntaryo, o kung marami
mga boluntaryo, kung gayon ang kliyente ay dapat ilagay sa ibang pagkakataon sa listahan o hindi na. Bilang isang heneral
panuntunan, kung ang pinagsama-samang bilis ng CPU ng kliyente ay mas mababa sa isang ikalimang bahagi ng kabuuan, kung gayon
ang kliyente ay dapat maiwan sa listahan.

Kung mayroon kang malaking shared build cluster at iisang shared hosts file, ang mga panuntunan sa itaas
ay magiging sanhi ng unang ilang mga makina sa file ng mga host na subukan muna kahit na sila
ay malamang na mas abala kaysa sa mga makina sa susunod na listahan. Upang maiwasan ito, ilagay ang keyword
--randomize sa listahan ng host. Ito ay magiging sanhi ng listahan ng host na maging randomized, na
dapat bahagyang mapabuti ang performance para sa malalaking build cluster.

Mayroong dalawang espesyal na pangalan ng host --localslots at --localslots_cpp na kapaki-pakinabang para sa
pagsasaayos ng pagkarga sa lokal na makina. Ang --localslots tinutukoy ng host kung gaano karaming mga trabaho iyon
hindi maaaring patakbuhin nang malayuan na maaaring patakbuhin nang sabay-sabay sa lokal na makina, habang
--localslots_cpp kinokontrol kung gaano karaming mga preprocessor ang tatakbo nang magkatulad sa lokal
makina. Ang pag-tune sa mga halagang ito ay maaaring mapabuti ang pagganap. Maaaring tumagal ang pag-link sa malalaking proyekto
malaking halaga ng memorya. Pagpapatakbo ng mga parallel na linker, na hindi maaaring isagawa nang malayuan,
maaaring pilitin ang makina na magpalit, na nagpapababa ng pagganap sa pagpapatakbo lamang ng mga trabaho
pagkakasunud-sunod nang walang pagpapalit. Pagkuha ng bilang ng mga parallel preprocessor nang tama
ay nagbibigay-daan sa iyo na gumamit ng mas malalaking parallel factor sa make, dahil ang lokal na makina ay mayroon na ngayong ilang
mekanismo para sa pagsukat ng paggamit ng lokal na mapagkukunan.

Sa wakas ay mayroong entry ng host

Ang pagganap ay nakasalalay sa mga detalye ng pinagmulan at mga makefile na ginamit para sa proyekto, at
ang bilis ng makina at network. Pag-eksperimento sa iba't ibang setting para sa listahan ng host
at -j kadahilanan ay maaaring mapabuti ang pagganap.

Ang syntax ay

DISTCC_HOSTS = HOSTSPEC ...
HOSTSPEC = LOCAL_HOST | SSH_HOST | TCP_HOST | OLDSTYLE_TCP_HOST
| GLOBAL_OPTION
| ZEROCONF
LOCAL_HOST = localhost[/LIMIT]
| --localslots=
| --localslots_cpp=
SSH_HOST = [USER]@HOSTID[/LIMIT][:COMMAND][OPTIONS]
TCP_HOST = HOSTID[:PORT][/LIMIT][OPTIONS]
OLDSTYLE_TCP_HOST = HOSTID[/LIMIT][:PORT][OPTIONS]
HOSTID = HOSTNAME | IPV4 | IPV6
OPTIONS = ,OPTION[OPTIONS]
OPTION = lzo | cpp
GLOBAL_OPTION = --randomize
ZEROCONF = +zeroconf

Narito ang ilang indibidwal na halimbawa ng syntax:

localhost
Ang literal na salitang "localhost" ay espesyal na binibigyang kahulugan upang maging sanhi ng mga compilation
direktang isinagawa, sa halip na ipasa sa isang daemon sa lokal na makina. Kung gagawin mo
gustong kumonekta sa isang daemon sa lokal na makina para sa pagsubok, pagkatapos ay ibigay ang
IP address ng makina o totoong hostname. (Ito ay magiging mas mabagal.)

IPV6 Isang literal na IPv6 address na nakapaloob sa mga square bracket, gaya ng [::1]

IPV4 Isang literal na IPv4 address, gaya ng 10.0.0.1

PANGALAN NG HOST
Isang hostname na hahanapin gamit ang solver.

:PORT Kumonekta sa isang tinukoy na decimal port number, sa halip na ang default na 3632.

@HOSTID
Kumonekta sa host gamit ang SSH, sa halip na TCP. Ang mga opsyon para sa koneksyon sa SSH ay maaari
ilagay sa ~ / .ssh / config

USER@ Kumonekta sa host sa pamamagitan ng SSH bilang isang tinukoy na username.

: UTOS
Kumonekta sa SSH, at gumamit ng isang tinukoy na landas upang mahanap ang distccd server. Ito ay
karaniwang kailangan lamang kung sa ilang kadahilanan ay hindi mo mai-install ang distccd sa isang direktoryo
sa default na PATH para sa mga koneksyon sa SSH. Gamitin ito kung nakakakuha ka ng mga error tulad ng "distccd:
command not found" sa SSH mode.

/LIMIT Maaaring magdagdag ng decimal na limitasyon sa anumang detalye ng host upang paghigpitan ang bilang ng
mga trabaho na ipapadala ng kliyenteng ito sa makina. Ang limitasyon ay default sa apat bawat
host (dalawa para sa localhost), ngunit maaaring higit pang paghihigpitan ng server. Dapat mo
kailangan lang dagdagan ito para sa mga server na may higit sa dalawang processor.

,lzo Pinapagana ang LZO compression para sa TCP o SSH host na ito.

,cpp Pinapagana ang distcc-pump mode para sa host na ito. Tandaan: dapat na nakabalot ang build command
ang distcc-pump script upang simulan ang isama ang server.

--randomize
I-randomize ang pagkakasunud-sunod ng listahan ng host bago isagawa.

+zeroconf
ito opsyon is lamang magagamit if distcc ay naipon sa avahi suportahan Pinagana at
i-configure ang time. Kapag ang espesyal na entry na ito ay naroroon sa listahan ng mga host, gagawin ng distcc
gamitin ang Avahi Zeroconf DNS Service Discovery (DNS-SD) upang mahanap ang anumang available na distccd
mga server sa lokal na network. Iniiwasan nito ang pangangailangang tahasang ilista ang host
mga pangalan o IP address ng mga distcc server machine. Dapat mayroon ang mga distccd server
sinimulan sa "--zeroconf" na opsyon sa distccd. Ang isang mahalagang caveat ay iyon
sa kasalukuyang pagpapatupad, ang pump mode (",cpp") at compression (",lzo") ay gagawin
hindi kailanman magagamit para sa mga host na matatagpuan sa pamamagitan ng zeroconf.

Narito ang isang halimbawa na nagpapakita ng ilang mga posibilidad:

localhost/2 @bigman/16:/opt/bin/distccd lumang makina: 4200/1
# Cartman is pababa
malayo/3,lzo

Ang mga komento ay pinapayagan sa mga detalye ng host. Nagsisimula ang mga komento sa isang hash/pound sign (#)
at tumakbo sa dulo ng linya.

Kung ang isang host sa listahan ay hindi maabot, ang distcc ay maglalabas ng babala at papansinin ang host na iyon
mga isang minuto.

KAHULUGAN


Ang lzo Ang pagpipilian ng host ay tumutukoy na ang LZO compression ay dapat gamitin para sa paglipat ng data,
kabilang ang preprocessed source, object code at mga mensahe ng error. Karaniwan ang compression
matipid sa mga network na mas mabagal sa 100Mbps, ngunit maaaring mag-iba ang mga resulta depende sa network,
processor at source tree.

Ang pagpapagana ng compression ay gumagawa ng distcc client at server na gumamit ng mas maraming oras ng CPU, ngunit mas kaunti
trapiko sa network. Ang idinagdag na oras ng CPU ay hindi gaanong mahalaga para sa pump mode. Ang compression
Ang ratio ay karaniwang 4:1 para sa source at 2:1 para sa object code.

Ang paggamit ng compression ay nangangailangan ng parehong client at server na gumamit ng hindi bababa sa release 2.9 ng distcc.
Walang kinakailangang configuration ng server: palaging tumutugon ang server ng mga naka-compress na tugon sa
mga naka-compress na kahilingan.

Ang pump mode ay nangangailangan ng mga server na magkaroon ng opsyon sa lzo host.

Paghahanap DAAN


Kung ang pangalan ng compiler ay isang ganap na landas, ito ay ipinasa sa verbatim sa server at sa
Ang compiler ay tumatakbo mula sa direktoryo na iyon. Halimbawa:

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

Kung ang pangalan ng compiler ay hindi ganap, o hindi ganap na kwalipikado, ang PATH ng distccd ay hahanapin.
Kapag ang distcc ay pinapatakbo mula sa isang masquerade na direktoryo, tanging ang batayang pangalan ng compiler ay
ginamit. Ang PATH ng kliyente ay ginagamit lamang upang patakbuhin ang preprocessor at walang epekto sa
landas ng server.

TIMEOUTS


Parehong ang distcc client at server ay nagpapataw ng mga timeout sa paglilipat ng data sa buong network.
Ito ay inilaan upang matukoy ang mga host na down o hindi maabot, at upang maiwasan ang mga compiles
nakabitin nang walang katiyakan kung ang isang server ay hindi nakakonekta habang ginagamit. Kung isang client-side timeout
mag-e-expire, ang trabaho ay muling tatakbo nang lokal.

Ang mga timeout ay hindi na-configure sa kasalukuyan.

DIAGNOSTICS


Ang mga mensahe ng error o babala mula sa mga lokal o malalayong compiler ay ipinapasa sa diagnostic
output sa kliyente.

Ang distcc ay maaaring magbigay ng malawak na impormasyon sa pag-debug kapag ginamit ang verbose na opsyon. Ito
ay kinokontrol ng mga DISTCC_VERBOSE variable ng kapaligiran sa kliyente, at ang --verbose
opsyon sa server. Para sa pag-troubleshoot, suriin ang parehong error sa client at server
mga mensahe.

EXIT MGA CODE


Ang exit code ng distcc ay karaniwang sa compiler: zero para sa matagumpay na compilation
at hindi zero kung hindi man.

Tinutukoy ng distcc ang pagkakaiba sa pagitan ng "tunay" na mga error tulad ng syntax error sa pinagmulan, at
Mga error na "aksidenteng" gaya ng problema sa networking sa pagkonekta sa isang boluntaryo. Sa kaso
ng mga hindi sinasadyang error, muling susubukan ng distcc ang compilation nang lokal maliban kung ang DISTCC_FALLBACK
ang opsyon ay hindi pinagana.

Kung lumabas ang compiler na may signal, ibinabalik ng distcc ang exit code na 128 kasama ang signal
numero.

Ang mga panloob na error sa distcc ay nagdudulot ng exit code sa pagitan ng 100 at 127. Sa partikular

100 Pangkalahatang distcc failure.

101 Masamang argumento.

Nabigo ang 102 Bind.

103 Nabigo ang pagkonekta.

Nag-crash ang 104 Compiler.

105 Wala sa memorya.

106 Masamang Host SPEC

107 I/O Error

108 Pinutol.

109 Protocol Error.

110 Ang ibinigay na compiler ay hindi nakita sa remote host. Tingnan kung nakatakda ang $CC
naaangkop at naka-install ito sa isang direktoryo sa path ng paghahanap para sa
distccd.

111 Paulit-ulit na tawag sa distcc.

112 Nabigong itapon ang mga pribilehiyo.

113 Tinanggihan ang access sa network.

114 Ginagamit ng ibang proseso.

115 Walang ganoong file.

116 Walang tinukoy na mga host at hindi pinagana ang mga fallback.

118 Timeout.

Gamitin ang distcc online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

  • 1
    Firebird
    Firebird
    Nag-aalok ang Firebird RDBMS ng mga tampok ng ANSI SQL
    & tumatakbo sa Linux, Windows at
    ilang mga platform ng Unix. Mga tampok
    mahusay na pagkakatugma at pagganap
    at kapangyarihan...
    I-download ang Firebird
  • 2
    KompoZer
    KompoZer
    Ang KompoZer ay isang wysiwyg HTML editor gamit ang
    ang Mozilla Composer codebase. Bilang
    Nahinto ang pag-unlad ni Nvu
    noong 2005, inaayos ng KompoZer ang maraming mga bug at
    nagdadagdag ng f...
    I-download ang KompoZer
  • 3
    Libreng Manga Downloader
    Libreng Manga Downloader
    Ang Libreng Manga Downloader (FMD) ay isang
    open source application na nakasulat sa
    Object-Pascal para sa pamamahala at
    pag-download ng manga mula sa iba't ibang mga website.
    Isa itong salamin...
    I-download ang Libreng Manga Downloader
  • 4
    Aetbootin
    Aetbootin
    Hinahayaan ka ng UNetbootin na lumikha ng bootable
    Mga live na USB drive para sa Ubuntu, Fedora, at
    iba pang mga pamamahagi ng Linux nang wala
    nagsusunog ng CD. Gumagana ito sa Windows, Linux,
    at ...
    I-download ang UNetbootin
  • 5
    Dolibar ERP - CRM
    Dolibar ERP - CRM
    Dolibarr ERP - Ang CRM ay isang madaling gamitin
    ERP at CRM open source software package
    (tumatakbo gamit ang isang web php server o bilang
    standalone na software) para sa mga negosyo,
    mga pundasyon...
    I-download ang Dolibar ERP - CRM
  • 6
    SQuirreL SQL Client
    SQuirreL SQL Client
    Ang SQuirreL SQL Client ay isang graphical na SQL
    client na nakasulat sa Java na magpapahintulot
    mong tingnan ang istraktura ng isang JDBC
    sumusunod na database, i-browse ang data sa
    mga mesa...
    I-download ang SQuirreL SQL Client
  • Marami pa »

Linux command

Ad