Gentoo Archives: gentoo-doc-fi

From: Santtu Pajukanta <japsu@×××.fi>
To: gentoo-doc-fi@l.g.o
Subject: [gentoo-doc-fi] DistCC-opas tarkistettavaksi
Date: Sun, 26 Sep 2004 17:30:53
Message-Id: 200409262030.59527.japsu@iki.fi
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 Hei,
5
6 Tässä suomentamani DistCC-opas tarkistettavaksi:
7
8
9 <?xml version='1.0' encoding="ISO-8859-15"?>
10 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
11 <!--
12 $Header: /var/www/www.gentoo.org/raw_cvs/gentoo/xml/htdocs/doc/en/distcc.xml,v
13 1.22 2004/08/22 20:51:08 neysx Exp $ -->
14
15 <guide link="/doc/fi/distcc.xml">
16
17 <title>Gentoon DistCC-opas</title>
18
19 <author title="Tekijä">
20 <mail link="lisa@g.o">Lisa Seelye</mail>
21 </author>
22
23 <author title="Toimittaja">
24 <mail link="vapier@g.o">Mike Frysinger</mail>
25 </author>
26
27 <author title="Toimittaja">
28 <mail link="erwin@g.o">Erwin</mail>
29 </author>
30
31 <author title="Toimittaja">
32 <mail link="swift@g.o">Sven Vermeulen</mail>
33 </author>
34
35 <author title="Toimittaja">
36 <mail link="pylon@g.o">Lars Weiler</mail>
37 </author>
38
39 <author title="Katselmoija">
40 <mail link="blubber@g.o">Tiemo Kieft</mail>
41 </author>
42
43 <author title="Kääntäjä">
44 <mail link="japsu@×××.fi">Santtu Pajukanta</mail>
45 </author>
46
47 <abstract>
48 Tämä dokumentti käsittelee hajautetun DistCC-kääntäjän käyttämistä Gentoossa.
49 </abstract>
50
51 <!-- The content of this document is licensed under the CC-BY-SA license -->
52 <!-- See http://creativecommons.org/licenses/by-sa/1.0 -->
53 <license/>
54
55 <version>1.8</version>
56 <date>22. elokuuta, 2004</date>
57
58 <chapter>
59 <title>Johdanto</title>
60 <section>
61 <title>Mikä on DistCC?</title>
62 <body>
63
64 <p>
65 DistCC on ohjelma, joka on suunniteltu hajauttamaan ohjelmien kääntäminen
66 lähdekoodista ajettavaan binäärimuotoon lähiverkon yli useille tietokoneille.
67 Se koostuu palvelimesta (<c>distccd</c>) ja asiakasohjelmasta
68 (<c>distcc</c>). DistCC voi toimia läpinäkyvästi <uri
69 link="http://ccache.samba.org">ccache</uri>n kanssa, ja pienellä työllä myös
70 Portagen kanssa.
71 </p>
72
73 </body>
74 </section>
75 <section>
76 <title>DistCC:n käyttö bootstrapissa</title>
77 <body>
78
79 <p>
80 Jos aiot käyttää DistCC:tä Gentoo-asennuksen bootstrap-vaiheessa, lue kohta
81 <uri link="#bootstrapping">DistCC:n käyttö bootstrap-vaiheessa</uri>.
82 </p>
83
84 </body>
85 </section>
86 </chapter>
87
88 <chapter>
89 <title>Asennus</title>
90 <section>
91 <title>Riippuvuudet</title>
92 <body>
93
94 <p>
95 Jotta DistCC:tä voitaisiin käyttää, kaikissa verkon koneissa on oltava sama
96 versio GCC-kääntäjästä. 3.3.x-kääntäjien (missä x vaihtelee) sekoittaminen on
97 hyväksyttävää, mutta 3.3.x:n ja 3.2.x:n sekoittaminen ei ole; jos yrität
98 tätä, <e>tulet saamaan</e> virheitä.
99 </p>
100
101 </body>
102 </section>
103 <section>
104 <title>DistCC:n asentaminen</title>
105 <body>
106
107 <p>
108 Ennen kuin alat asentaa DistCC:tä, on muutamia valintoja, joista Sinun on hyvä
109 tietää.
110 </p>
111
112 <p>
113 DistCC:n mukana tulee graafinen valvontaohjelma, joka näyttää kääntötehtävät,
114 jotka koneesi lähettää verkkoon. Jos käytät Gnomea, lisää 'gnome'
115 USE-valintoihisi. Jos et käytä Gnomea, mutta haluaisit silti tämän graafisen
116 valvontaohjelman, lisää 'gtk' USE-valintoihisi.
117 </p>
118
119 <pre caption="DistCC:n asentaminen">
120 # <i>emerge distcc</i>
121 </pre>
122
123 </body>
124 </section>
125 <section>
126 <title>Portagen asettaminen käyttämään DistCC:tä</title>
127 <body>
128
129 <p>
130 Portage on helppo asettaa käyttämään DistCC:tä. Tee seuraavat vaiheet kaikissa
131 niissä järjestelmissä, joiden haluaisit osallistuvan hajautettuun
132 kääntämiseen:
133 </p>
134
135 <pre caption="DistCC:n ja Portagen yhdistäminen">
136 # <i>emerge distcc</i>
137 # <i>nano -w /etc/make.conf</i>
138 <comment>(Aseta N sopivaan määrään)</comment>
139 <comment>(Hyvä nyrkkisääntö on N = 2 * prosessorien määrä + 1)</comment>
140 MAKEOPTS="-jN"
141 <comment>(Lisää distcc FEATURES-ympäristömuuttujaan)</comment>
142 FEATURES="distcc"
143 </pre>
144
145 <p>
146 Seuraavaksi Sinun täytyy määrittää, mitä koneita haluat käyttää hajautettuun
147 kääntämiseen. Käytä <c>distcc-config</c>-komentoa konelistan asettamiseen.
148 Tässä on muutama esimerkki tavoista määrittää koneita listassa:
149 </p>
150
151 <pre caption="Esimerkkejä konemäärityksistä">
152 192.168.0.1 192.168.0.2 192.168.0.3
153 192.168.0.1/2 192.168.0.2 192.168.0.3/10
154 192.168.0.1:4000/2 192.168.0.2/1 192.168.0.3:3632/4
155 @192.168.0.1 @192.168.0.2:/usr/bin/distccd 192.168.0.3
156 <comment>(On myös monia muita tapoja määrittää kääntämiseen osallistuvia
157 koneita. Lisätietoja antaa distcc:n man-sivu.)</comment>
158 </pre>
159
160 <p>
161 Tämä voi näyttää monimutkaiselta, mutta useimmissa tapauksissa ensimmäisen tai
162 toisen rivin tyylinen määritys toimii.
163 </p>
164
165 <ul>
166 <li>Rivillä 1 on vain välilyönnein erotettu lista koneista</li>
167 <li>
168 Rivillä 2 olevassa konelistassa määritellään (<c>/N</c>-asetuksella) myös,
169 kuinka monta yhtäaikaista käännöstyötä kullekin koneelle enimmillään
170 lähetetään.
171 </li>
172 </ul>
173
174 <p>
175 Koska useimmat käyttäjät eivät tarvitse rivejä 3 ja 4, ohjaamme Sinut <uri
176 link="http://distcc.samba.org/man/distcc_1.html">DistCC:n
177 dokumentaatioon</uri>, mikäli tarvitset lisätietoja.
178 </p>
179
180 <p>Mikäli haluat esimerkiksi käyttää ensimmäisen rivin mukaista määritystä,
181 käytä seuraavanlaista komentoa:</p>
182
183 <pre caption="Esimerkkikomento kääntämiseen osallistuvien koneiden asettamista
184 varten">
185 # <i>/usr/bin/distcc-config --set-hosts "192.168.0.1 192.168.0.2
186 192.168.0.3"</i>
187 </pre>
188
189 <p>
190 Käynnistä sitten <c>distccd</c> kääntämiseen osallistuville koneille:
191 </p>
192
193 <pre caption="Distccd-palvelimen käynnistäminen">
194 <comment>(Lisätään distccd oletusajotasoon)</comment>
195 # <i>rc-update add distccd default</i>
196 <comment>(Käynnistetään distcc-palvelin)</comment>
197 # <i>/etc/init.d/distccd start</i>
198 </pre>
199
200 </body>
201 </section>
202 <section>
203 <title>DistCC:n käyttäminen Automaken kanssa</title>
204 <body>
205
206 <p>
207 Tämä on joissain tapauksissa helpompaa kuin Portagen asettaminen. Tässä
208 tapauksessa Sinun tulee asettaa <c>PATH</c>-ympäristömuuttuja siten, että
209 hakemisto <path>/usr/lib/distcc/bin</path> tulee ennen sitä hakemistoa, jossa
210 "perinteinen" <c>gcc</c>-kääntäjä sijaitsee (yleensä <path>/usr/bin</path>).
211 Huomaa kuitenkin, että jos käytät <c>ccache</c>a, distcc täytyy laittaa vasta
212 ccachen jälkeen:
213 </p>
214
215 <pre caption="PATH-ympäristömuuttujan asettaminen">
216 # <i>export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"</i>
217 </pre>
218
219 <p>
220 Kun tavallisesti komentaisit <c>make</c>, nyt komennatkin <c>make -jN</c>
221 (missä N on kokonaisluku). Paras N:n arvo riippuu verkkosi ja käyttämiesi
222 tietokoneiden ominaisuuksista. Minulla on kaksiprosessorinen P3-kone ja
223 K6-2/400-kone, jotka kääntävät kaiken pöytäkonettani varten (1200 MHz Athlon
224 Thunderbird), ja käytän asetusta -j5. Kokeile omia asetuksiasi löytääksesi
225 parhaan suorituskyvyn antavan arvon.
226 </p>
227
228 </body>
229 </section>
230 </chapter>
231
232 <chapter>
233 <title>Ristikääntäjän käyttö</title>
234 <section>
235 <title>Ristikääntämisestä</title>
236 <body>
237
238 <p>
239 Ristikääntämisellä tarkoitetaan tietyllä arkkitehtuurilla toimivan tietokoneen
240 käyttämistä ohjelmien kääntämiseen toisellearkkitehtuurille.
241 Yksinkertaisimmillaan tämä voi tarkoittaa esimerkiksi Athlonin (i686)
242 käyttämistä ohjelman kääntämiseen K6-2:lle (i586), tai SPARCin käyttämistä
243 ohjelman kääntämiseen PowerPC:lle.
244 </p>
245
246 </body>
247 </section>
248 <section>
249 <title>Johdatus ristikääntämiseen</title>
250 <body>
251
252 <p>
253 Jos haluat kokeilla ristikääntämistä, voit asentaa <c>crossdev</c>-paketin. En
254 voi antaa tälle paketille käyttötukea, koska en ole kirjoittanut sitä, mutta
255 se on hyvä tapa aloittaa ristikääntäminen.
256 </p>
257
258 </body>
259 </section>
260 </chapter>
261
262 <chapter id="bootstrapping">
263 <title>DistCC:n käyttö bootstrap-vaiheessa</title>
264 <section>
265 <title>Vaihe 1: Portagen asetukset </title>
266 <body>
267
268 <p>
269 Käynnistä koneesi Gentoo Linux LiveCD:ltä ja seuraa <uri
270 link="/doc/fi/handbook/handbook-x86.xml?part=1">asennusohjeita</uri>
271 bootstrap-vaiheeseen asti. Aseta sitten Portage käyttämään DistCC:tä:
272 </p>
273
274 <pre caption="Alustavat asetukset">
275 # <i>nano -w /etc/make.conf</i>
276 <comment>(Lisää distcc FEATURES-ympäristömuuttujaan)</comment>
277 FEATURES="distcc"
278 <comment>(Lisää MAKEOPTS-ympäristömuuttujaan -jN missä N on sopiva
279 kokonaisluku)</comment>
280 MAKEOPTS="-jN"
281 </pre>
282
283 <pre caption="Hakupolun asettaminen">
284 # <i>export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"</i>
285 </pre>
286
287 </body>
288 </section>
289 <section>
290 <title>Vaihe 2: DistCC:n asentaminen</title>
291 <body>
292
293 <p>
294 Ennen DistCC:n asentamista täytyy lisätä uusi käyttäjä tiedostoon
295 <path>/etc/passwd</path>:
296 </p>
297
298 <pre caption="distcc-käyttäjän luominen">
299 # <i>echo "distcc:x:240:2:distccd:/dev/null:/bin/false"
300 &gt;&gt; /etc/passwd</i>
301 </pre>
302
303 <p>
304 Asenna DistCC:
305 </p>
306
307 <pre caption="DistCC:n asentaminen uudelle koneelle">
308 # <i>USE='-*' emerge --nodeps distcc</i>
309 </pre>
310
311 </body>
312 </section>
313 <section>
314 <title>Vaihe 3: DistCC:n asetukset</title>
315 <body>
316
317 <p>
318 Aja <c>distcc-config</c> DistCC:n asetusten asettamiseksi:
319 </p>
320
321 <pre caption="DistCC:n lopulliset asetukset">
322 <comment>(Korvaa host1, host2, ... osallistuvien tietokoneiden nimillä tai
323 IP-osoitteilla)</comment>
324 # <i>/usr/bin/distcc-config --set-hosts "localhost host1 host2 host3 ..."</i>
325 <comment>Esimerkki: <i>/usr/bin/distcc-config --set-hosts "localhost
326 192.168.0.4 192.168.0.6"</i></comment>
327 </pre>
328
329 <p>
330 distcc on nyt valmis bootstrap-vaiheeseen! Jatka virallisen asennusohjeen
331 mukaan <e>äläkä unohda</e> asentaa DistCC:tä uudelleen <c>emerge system</c>
332 - -vaiheen jälkeen. Tämä on tehtävä DistCC:n riippuvuuksien asentumisen
333 varmistamiseksi (koska DistCC asennettiin yllä valinnoilla USE='-*' ja
334 'emerge --nodeps ...').
335 </p>
336
337 <note>
338 Bootstrap-vaiheen ja <c>emerge system</c>in aikana saattaa välillä näyttää
339 siltä, että DistCC:tä ei käytetä. Tämä on odotettavissa, sillä jotkut
340 ebuildit eivät toimi hyvin yhdessä distcc:n kanssa, joten ne kytkevät sen
341 tarkoituksella pois käytöstä.
342 </note>
343
344 </body>
345 </section>
346 </chapter>
347
348 <chapter>
349 <title>Vianetsintä</title>
350 <section>
351 <title>Mozilla ja Xfree</title>
352 <body>
353
354 <p>
355 Kun asennat <c>emerge</c>llä eri paketteja, tulet huomaamaan, että joitain
356 niistä ei hajauteta (eikä käännetä rinnakkaisesti). Tämä johtuu siitä, että
357 esimerkiksi Mozillan ja Xfreen kehittäjät kytkevät rinnakkaiskäännön
358 tarkoituksella pois käytöstä, koska sen tiedetään aiheuttavan ongelmia.
359 </p>
360
361 <p>
362 Joskus DistCC saattaa aiheuttaa sen, että jokin paketti ei suostu kääntymään.
363 Mikäli näin tapahtuu, <uri link="http://bugs.gentoo.org">ilmoita</uri> siitä
364 meille.
365 </p>
366
367 </body>
368 </section>
369 <section>
370 <title>Hardened-GCC-koneiden ja ei-hardened-GCC-koneiden sekoitus ei tule
371 toimimaan</title>
372 <body>
373
374 <p>
375 Näin pitkällä otsikolla selitys tässä on lähes epäoleellinen. Joka tapauksessa
376 mikäli aiot käyttää DistCC:tä koneilla, joista osalla on <uri
377 link="/proj/en/hardened/etdyn-ssp.xml">PaX/hardened-gcc</uri>-kääntäjä ja
378 osalla ei, törmäät varmasti ongelmiin.
379 </p>
380
381 <p>
382 Ratkaisu vaatii hieman ennakointia; Sinun täytyy ajaa <c>hardened-gcc -R</c>
383 koneella, jolla on PaX/hardened-gcc, tai kytkeä päälle PaX-suojaukset
384 kernelistäsi ja ajaa <c>emerge hardened-gcc</c>. Nämä molemmat ovat hyviä
385 asioita tehtäväksi, sillä niiden tarjoamat suojaukset ovat enimmäkseen
386 läpinäkyviä käyttäjälle.
387 </p>
388
389 </body>
390 </section>
391 <section>
392 <title>Eri GCC:n versioiden sekakäyttö</title>
393 <body>
394
395 <p>
396 Jos koneillasi on eri versioita GCC:stä, tulet todennäköisesti törmäämään
397 erittäin outoihin ongelmiin. Ratkaisu on varmistaa, että kaikilla koneilla on
398 sama GCC:n versio.
399 </p>
400
401 </body>
402 </section>
403 </chapter>
404
405 <chapter>
406 <title>DistCC:n lisäohjelmat</title>
407 <section>
408 <title>DistCC:n valvontaohjelmat</title>
409 <body>
410
411 <p>
412 DistCC:n mukana tulee kaksi valvontaohjelmaa. Tekstipohjainen valvontaohjelma
413 käännetään aina, ja sen nimi on <c>distccmon-text</c>. Sen ajaminen ensi
414 kertaa voi olla melko sekavaa, mutta ohjelma on oikeastaan melko
415 helppokäyttöinen. Jos ajat ohjelman ilman parametrejä, se suoritetaan vain
416 kerran. Jos sen sijaan annat sille jonkin numeron N, se jää päälle ja
417 päivittyy aina N:n sekunnin välein.
418 </p>
419
420 <p>
421 Toinen valvontaohjelma käännetään vain, jos käytit joko <c>gtk</c>- tai
422 <c>gnome</c>-USE-valintaa. Se on GTK+-pohjainen, toimii X-ympäristössä ja on
423 melko rakastettava.
424 </p>
425
426
427 <pre caption="Valvontaohjelmien ajaminen">
428 # <i>distccmon-text N</i>
429 <comment>(tai)</comment>
430 # <i>distccmon-gnome</i>
431 <comment>Portagen valvomiseksi voit käyttää seuraavia komentoja:</comment>
432 # <i>DISTCC_DIR=`portageq envvar DISTCC_DIR` distccmon-text N</i>
433 <comment>(tai)</comment>
434 # <i>DISTCC_DIR=`portageq envvar DISTCC_DIR` distccmon-gnome</i>
435 </pre>
436
437 <impo>
438 Huomaa aksentit yläpuolella. <c>portageq</c> on Portagen osa, joka palauttaa
439 pyydetyn tiedon (tässä tapauksessa DISTCC_DIR-ympäristömuuttujan sisällön).
440 Yksinkertaisuuden vuoksi useimmille käyttäjille riittää
441 <c>DISTCC_DIR=/var/tmp/portage/.distcc
442 distccmon-text N</c>.
443 </impo>
444
445 </body>
446 </section>
447 </chapter>
448 </guide>
449
450
451
452 - --
453 Santtu Pajukanta <japsu@×××.fi>
454 OpenPGP key ID: 0x520A97CC
455 -----BEGIN PGP SIGNATURE-----
456 Version: GnuPG v1.2.6 (GNU/Linux)
457
458 iD8DBQFBVvzTZzmiiVIKl8wRAkumAJ99wla/I7sce5qj76F7jihYd9VQ+wCeJqGx
459 OsaqIMUYd/D/YTDKeQX88Ss=
460 =NDYH
461 -----END PGP SIGNATURE-----
462
463 --
464 gentoo-doc-fi@g.o mailing list