1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
|
<?xml version='1.0' encoding="UTF-8"?>
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/ro/distcc.xml,v 1.9 2006/04/05 04:41:00 alin Exp $ -->
<guide link="/doc/ro/distcc.xml" lang="ro">
<title>Documentaţie Gentoo pentru Distcc</title>
<author title="Autor">
<mail link="lisa@gentoo.org">Lisa Seelye</mail>
</author>
<author title="Editor">
<mail link="vapier@gentoo.org">Mike Frysinger</mail>
</author>
<author title="Editor">
<mail link="erwin@gentoo.org">Erwin</mail>
</author>
<author title="Editor">
<mail link="swift@gentoo.org">Sven Vermeulen</mail>
</author>
<author title="Editor">
<mail link="pylon@gentoo.org">Lars Weiler</mail>
</author>
<author title="Redactor">
<mail link="blubber@gentoo.org">Tiemo Kieft</mail>
</author>
<author title="Translator">
<mail link="struct_bylighting@yahoo.com">Lucian Constantin</mail>
</author>
<abstract>
Acest document descrie folosirea distcc în distribuţia Gentoo.
</abstract>
<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
<license/>
<version>1.16</version>
<date>2006-04-04</date>
<chapter>
<title>Introducere</title>
<section>
<title>Ce este distcc?</title>
<body>
<p>
Distcc este up program de compilare distribuită pe o reţea de sisteme
participante. Constă dintr-un program server, <c>distccd</c> şi un program
client, <c>distcc</c>. Distcc poate fi integrat uşor cu <uri
link="http://ccache.samba.org">ccache</uri>, Portage şi Automake cu puţine
setări.
</p>
</body>
</section>
<section>
<title>Folosirea distcc pentru bootstrap</title>
<body>
<p>
Dacă intenţionaţi să folosiţi distcc pentru procesul de bootstrap al unei
instalări Gentoo, vă recomandăm să citiţi secţiunea <uri
link="#bootstrapping">Folosirea distcc pentru bootstrap</uri> de mai jos.
</p>
</body>
</section>
</chapter>
<chapter>
<title>Setare</title>
<section>
<title>Dependenţe</title>
<body>
<p>
Pentru început, toate calculatoarele din reţea trebuie să aibă instalată
aceeaşi versiune de GCC. Spre ex., amestecând versiuni 3.3.x (unde x variază)
funcţionează, dar combinaţii de versiuni 3.3.x şi 3.2.x <b>ar putea avea</b>
ca rezultat erori de compilare sau de rulare.
</p>
</body>
</section>
<section>
<title>Instalarea distcc</title>
<body>
<p>
Există un număr de opţiuni de care ar trebui să le ştiţi înainte de a instala
distcc.
</p>
<p>
Distcc conţine un monitor grafic al sarcinilor pe care calculatorul
dumneavoastră le trimite în reţea pentru compilare. Dacă folosiţi Gnome
adăugaţi 'gnome' între indicatorii USE. Dacă nu aveţi Gnome şi doriţi să
folosiţi monitorul, adăugaţi 'gtk'.
</p>
<pre caption="Instalarea distcc">
# <i>emerge distcc</i>
</pre>
</body>
</section>
<section>
<title>Setarea Portage pentru a utiliza distcc</title>
<body>
<p>
Setarea distcc cu Portage este simplă. Pe fiecare calculator care va participa
în compilarea distribuită, executaţi următoarele comenzi:
</p>
<pre caption="Integrarea Distcc şi Portage">
# <i>emerge distcc</i>
# <i>nano -w /etc/make.conf</i>
<comment>(Setaţi N la un număr potrivit scenariului dvs.)</comment>
<comment>(O strategie comună este setarea N este de două ori numărul total
de procesoare disponibile + 1)</comment>
MAKEOPTS="-jN"
<comment>(Adăugaţi distcc la variabila FEATURES)</comment>
FEATURES="distcc"
</pre>
</body>
</section>
<section>
<title>Specificarea Sistemelor Participante</title>
<body>
<p>
Utilizaţi comanda <c>distcc-config</c> pentru a seta lista de sisteme
participante. Iată un exemplu de sisteme ce ar putea să fie conţinute în lista
dvs.:
</p>
<pre caption="Exemplu de definiţii de sisteme participante">
192.168.0.1 192.168.0.2 192.168.0.3
192.168.0.1/2 192.168.0.2 192.168.0.3/10
192.168.0.1:4000/2 192.168.0.2/1 192.168.0.3:3632/4
@192.168.0.1 @192.168.0.2:/usr/bin/distccd 192.168.0.3
<comment>(Există şi alte metode de a seta sistemele participante. Consultaţi
pagina de manual distcc pentru mai multe detalii.)</comment>
<comment>Dacă doriţi să compilaţi pe maşina locală, ar trebui să puneţi 'localhost' în
lista de sisteme gazdă. În schimb, dacă nu doriţi să utilizaţi maşina locală
pentru a compila (caz destul de des întâlnit), omiteţi-l din lista de sisteme
gazdă. Pe o maşină lentă, utilizarea localhost ar putea chiar să îngreuneze
procesul. Asiguraţi-vă că vă testaţi setările pentru performanţă.</comment>
</pre>
<p>
Pare complicat, însă în cele mai multe cazuri o variantă a liniei 1 sau 2 va
funcţiona.
</p>
<p>
Deoarece majoritatea utilizatorilor nu vor folosi linii de tipul 3 sau 4,
documentaţia distcc, vă voi <uri
link="http://distcc.samba.org/man/distcc_1.html">îndrepta către</uri>
documentaţia distcc (man distcc) pentru mai multe informaţii.
</p>
<p>
Spre exemplu, pentru o setare conform liniei 1 în exemplul precedent:
</p>
<pre caption="Exemplu de setare sisteme participante">
# <i>/usr/bin/distcc-config --set-hosts "192.168.0.1 192.168.0.2 192.168.0.3"</i>
</pre>
<p>
Editaţi <path>/etc/conf.d/distccd</path> pentru situaţia dumneavoastră
particulară şi nu uitaţi să perimteţi accessul doar sistemelor participante de
încredere folosind directiva <c>--allow</c>. Pentru o securizare adiţională, ar
trebui să utilizaţi, de asemenea, directiva <c>--listen</c> pentru a-i
specifica aplicaţiei daemon distcc adresa IP pe care să asculte (pentru sisteme
cu mai multe adrese IP). Pentru mai multe informaţii consultaţi <uri
link="http://distcc.samba.org/security.html">Consideraţiile de securitate
pentru distcc</uri>.
</p>
<impo>
Este important să utilizaţi --allow şi --listen. Vă rugăm să consultaţi pagina
de manual distccd sau documentul de securitate pentru mai multe informaţii.
</impo>
<p>
Apoi, porniţi aplicaţia daemon distcc pe toate calculatoarele participante:
</p>
<pre caption="Pornirea aplicaţiei daemon distcc">
<comment>(Adăugaţi distccd în nivelul de execuţie default)</comment>
# <i>rc-update add distccd default</i>
<comment>(Porniţi aplicaţia daemon distcc)</comment>
# <i>/etc/init.d/distccd start</i>
</pre>
</body>
</section>
<section>
<title>Setarea Distcc pentru Funcţionarea cu Automake</title>
<body>
<p>
În unele cazuri este mai uşor decât setarea Portage. Aveţi de modificat
variabila <c>PATH</c> pentru a include <path>/usr/lib/distcc/bin</path>
înaintea directorului care conţine <c>gcc</c> (<path>/usr/bin</path>). O mică
observaţie: în cazul în care ccache este de asemenea folosit, distcc trebuie
introdus după ccache:
</p>
<pre caption="Setarea path">
# <i>export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"</i>
<comment>Puteţi adăuga această linie în fişierul dvs. .bashrc sau echivalent pentru
a vi se seta PATH de fiecare dată când efectuaţi login</comment>
</pre>
<p>
Apoi, în loc de <c>make</c>, folosiţi <c>make -jN</c> (unde N este un număr
întreg). Valoarea N depinde de reţeaua de compilare şi de tipurile de
calculatoare folosite. Încercaţi numere diferite pentru a obţine performanţa
maximă.
</p>
</body>
</section>
</chapter>
<chapter>
<title>Compilarea Încrucişată (Cross-Compiling)</title>
<section>
<body>
<p>
Compilarea încrucişată utilizează o arhitectură pentru a compila programe
pentru o altă arhitectură. Aceasta poate fi la fel de simplu ca utilizaera unui
sistem Athlon (i686) pentru a compila un program pentru K6-2 (i586) sau
utilizarea unui sistem Sparc pentru a compila un program pentru arhitectura
ppc. Aceasta este documentată în <uri
link="/doc/en/cross-compiling-distcc.xml">Ghidul pentru Compilarea Încrucişată
DistCC</uri>.
</p>
</body>
</section>
</chapter>
<chapter id="bootstrapping">
<title>Folosirea Distcc pentru Procesul de Bootstrap</title>
<section>
<title>Pasul 1: Configurarea Portage</title>
<body>
<!--
Note that this will need to become a link to the old 2005.1 networked handbooks
once the 2006.0 handbooks are released. Until then, the link can stay.
-->
<p>
Porniţi calculatorul folosind un mediu LiveCD Gento Linux şi urmăriţi <uri
link="/doc/ro/handbook/handbook-x86.xml?part=1">instrucţiunile de
instalare</uri> până la procesul de bootstrap. Consultaţi <uri
link="/doc/ro/faq.xml#stage12">Ghidul cu Întrebări Frecvente despre
Gentoo</uri> pentru mai multe informaţii despre procesul de bootstrap). Apoi,
configuraţi Portage pentru distcc:
</p>
<pre caption="Setări preliminare">
# <i>nano -w /etc/make.conf</i>
<comment>(Adăugaţi distcc în FEATURES)</comment>
FEATURES="distcc"
<comment>(Modificaţi MAKEOPTS pentru a include -jN, unde N este dublul numărului de procesoare disponibile +1)</comment>
MAKEOPTS="-jN"
</pre>
<pre caption="Setarea path">
# <i>export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"</i>
</pre>
</body>
</section>
<section>
<title>Pasul 2: Instalarea distcc</title>
<body>
<p>
Înainte de a instala distcc, un utilizator cu numele distcc trebuie adăugat în
fişierul <path>/etc/passwd</path>:
</p>
<pre caption="Crearea utilizatorului de sistem distcc">
# <i>echo "distcc:x:240:2:distccd:/dev/null:/bin/false" >>/etc/passwd</i>
</pre>
<impo>
Este important să notaţi că adăugarea de utilizatori în acest fel este o
practică neconvenţională. Noi o utilizăm în acest caz, deoarece nu avem
instalat utilitarul <c>useradd</c> (pe care îl utilizaţi în mod normal pentru
adăugarea de utilizatori) încă, în acest punct al instalării.
</impo>
<p>
Instalarea distcc:
</p>
<pre caption="Instalarea distcc pe un calculator nou">
# <i>USE='-*' emerge --nodeps sys-devel/distcc</i>
</pre>
</body>
</section>
<section>
<title>Pasul 3: Setarea distcc</title>
<body>
<p>
Rulaţi <c>distcc-config --install</c> pentru a seta distcc:
</p>
<pre caption="Setarea finală distcc">
<comment>(Substituiţi host1, host2, ... cu adresele de IP ale calculatoarelor participante)</comment>
# <i>/usr/bin/distcc-config --set-hosts "localhost host1 host2 host3 ..."</i>
<comment>Un exemplu: <i>/usr/bin/distcc-config --set-hosts "localhost 192.168.0.4 192.168.0.6"</i></comment>
</pre>
<p>
distcc este setat, în acest moment, pentru procesul de bootstrap! Continuaţi
instalarea conform instrucţiunilor oficiale şi <e>nu uitaţi</e> să reinstalaţi
distcc după <c>emerge system</c>. Aceasta, pentru ca să vă asiguraţi că toate
dependenţele dorite sunt instalate, de asemenea.
</p>
<note>
În timpul procesului de bootstrap şi a pasului <c>emerge system</c>, distcc are
putea părea că nu este folosit. Aceasta este de aşteptat, deoarece unele
pachete ebuild nu se integrează bine cu distcc, şi îl dezactivează intenţionat.
</note>
</body>
</section>
</chapter>
<chapter>
<title>Probleme</title>
<section>
<title>Unele Pachete Nu Utilizează Distcc</title>
<body>
<p>
Pe măsură ce pachete diferite sunt instalate, veţi observa că unele dintre ele
nu sunt distribuite (şi nu sunt compilate în paralel). Aceasta se datorează
faptului că fişierul Makefile al pachetului nu suportă operaţii paralele sau
dezvoltatorii pachetelor ebuild a dezactivat intenţionat compilarea paralelă
datorită unor probleme cunoscute.
</p>
<p>
Uneori, un pachet nu va fi compilat de către distcc. Dacă aşa ceva se întâmplă,
vă rugăm să ne <uri link="http://bugs.gentoo.org">raportaţi</uri> pachetul.
</p>
</body>
</section>
<section>
<title>Versiuni Mixte de GCC</title>
<body>
<p>
Dacă aveţi versiuni GCC diferite pe sistemele dumneavoastră participante, este
de aşteptat să aveţi probleme. Soluţia este să rulaţi aceeaşi versiune de gcc
pe toate sistemele participante din reţeaua de compilare.
</p>
<p>
Actualizările recente ale Portage au setat ca Portage să utilizeze
<c>${CHOST}-gcc</c> în loc de <c>gcc</c>. Aceasta înseamnă că, dacă aveţi
versiuni de maşini i686 amestecate cu alte tipuri (i386, i586) veţi avea
probleme. O soluţie de compromis ar fi să exportaţi cu <c>export CC='gcc'
CXX='c++'</c> sau să modificaţi în <path>/etc/make.conf</path>.
</p>
<impo>
Aplicarea acestei soluţii redefineşte explicit o parte din comportamentul
Portage şi poate avea unele rezultate ciudate, pe viitor. Efectuaţi acest
lucru doar în cazul în care amestecaţi medii CHOST.
</impo>
</body>
</section>
</chapter>
<chapter>
<title>Aplicaţii Suplimentare Distcc</title>
<section>
<title>Aplicaţii de Monitorizare pentru distcc</title>
<body>
<p>
Distcc este distribuit cu două aplicaţii de monitorizare.
<c>distcccmon-text</c> este un monitor în mod text, este compilat întotdeauna
şi este foarte uşor de folosit. Dacă rulaţi programul fără nici un parametru,
va rula o singură dată. Dacă rulaţi programul cu un număr N drept parametru,
programul va afişa la fiecare N secunde.
</p>
<p>
Cealaltă aplicaţie de monitorizare este compilată numai dacă <c>gtk</c> sau
<c>gnome</c> este prezent în indicatorii dvs. <c>USE</c>. Cel bazat pe GTK+
rulează în orice mediu X. În Gentoo aplicaţia grafică de monitorizare este
denumită <c>distccmon-gui</c> pentru evitarea confuziilor. În alte părţi este
posibil să fie denumită ca <c>distccmon-gnome</c>.
</p>
<pre caption="Pornirea aplicaţiilor de monitorizare">
# <i>distccmon-text N</i>
<comment>(sau)</comment>
# <i>distccmon-gui</i>
<comment>Pentru a monitoriza încărcarea aplicaţiei distcc folosiţi:</comment>
# <i>DISTCC_DIR="/var/tmp/portage/.distcc/" distccmon-text N</i>
<comment>(sau)</comment>
# <i>DISTCC_DIR="/var/tmp/portage/.distcc/" distccmon-ui</i>
</pre>
<impo>
Dacă directorul dvs. distcc este în altă locaţie, modificaţi variabila
DISTCC_DIR corespunzător.
</impo>
</body>
</section>
</chapter>
</guide>
|