-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hei,
Tässä suomentamani DistCC-opas tarkistettavaksi:
<?xml version='1.0' encoding="ISO-8859-15"?>
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
<!--
$Header: /var/www/www.gentoo.org/raw_cvs/gentoo/xml/htdocs/doc/en/distcc.xml,v
1.22 2004/08/22 20:51:08 neysx Exp $ -->
<guide link="/doc/fi/distcc.xml">
<title>Gentoon DistCC-opas</title>
<author title="Tekijä">
<mail link="lisa@g.o">Lisa Seelye</mail>
</author>
<author title="Toimittaja">
<mail link="vapier@g.o">Mike Frysinger</mail>
</author>
<author title="Toimittaja">
<mail link="erwin@g.o">Erwin</mail>
</author>
<author title="Toimittaja">
<mail link="swift@g.o">Sven Vermeulen</mail>
</author>
<author title="Toimittaja">
<mail link="pylon@g.o">Lars Weiler</mail>
</author>
<author title="Katselmoija">
<mail link="blubber@g.o">Tiemo Kieft</mail>
</author>
<author title="Kääntäjä">
<mail link="japsu@...">Santtu Pajukanta</mail>
</author>
<abstract>
Tämä dokumentti käsittelee hajautetun DistCC-kääntäjän käyttämistä Gentoossa.
</abstract>
<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/1.0 -->
<license/>
<version>1.8</version>
<date>22. elokuuta, 2004</date>
<chapter>
<title>Johdanto</title>
<section>
<title>Mikä on DistCC?</title>
<body>
<p>
DistCC on ohjelma, joka on suunniteltu hajauttamaan ohjelmien kääntäminen
lähdekoodista ajettavaan binäärimuotoon lähiverkon yli useille tietokoneille.
Se koostuu palvelimesta (<c>distccd</c>) ja asiakasohjelmasta
(<c>distcc</c>). DistCC voi toimia läpinäkyvästi <uri
link="http://ccache.samba.org">ccache</uri>n kanssa, ja pienellä työllä myös
Portagen kanssa.
</p>
</body>
</section>
<section>
<title>DistCC:n käyttö bootstrapissa</title>
<body>
<p>
Jos aiot käyttää DistCC:tä Gentoo-asennuksen bootstrap-vaiheessa, lue kohta
<uri link="#bootstrapping">DistCC:n käyttö bootstrap-vaiheessa</uri>.
</p>
</body>
</section>
</chapter>
<chapter>
<title>Asennus</title>
<section>
<title>Riippuvuudet</title>
<body>
<p>
Jotta DistCC:tä voitaisiin käyttää, kaikissa verkon koneissa on oltava sama
versio GCC-kääntäjästä. 3.3.x-kääntäjien (missä x vaihtelee) sekoittaminen on
hyväksyttävää, mutta 3.3.x:n ja 3.2.x:n sekoittaminen ei ole; jos yrität
tätä, <e>tulet saamaan</e> virheitä.
</p>
</body>
</section>
<section>
<title>DistCC:n asentaminen</title>
<body>
<p>
Ennen kuin alat asentaa DistCC:tä, on muutamia valintoja, joista Sinun on hyvä
tietää.
</p>
<p>
DistCC:n mukana tulee graafinen valvontaohjelma, joka näyttää kääntötehtävät,
jotka koneesi lähettää verkkoon. Jos käytät Gnomea, lisää 'gnome'
USE-valintoihisi. Jos et käytä Gnomea, mutta haluaisit silti tämän graafisen
valvontaohjelman, lisää 'gtk' USE-valintoihisi.
</p>
<pre caption="DistCC:n asentaminen">
# <i>emerge distcc</i>
</pre>
</body>
</section>
<section>
<title>Portagen asettaminen käyttämään DistCC:tä</title>
<body>
<p>
Portage on helppo asettaa käyttämään DistCC:tä. Tee seuraavat vaiheet kaikissa
niissä järjestelmissä, joiden haluaisit osallistuvan hajautettuun
kääntämiseen:
</p>
<pre caption="DistCC:n ja Portagen yhdistäminen">
# <i>emerge distcc</i>
# <i>nano -w /etc/make.conf</i>
<comment>(Aseta N sopivaan määrään)</comment>
<comment>(Hyvä nyrkkisääntö on N = 2 * prosessorien määrä + 1)</comment>
MAKEOPTS="-jN"
<comment>(Lisää distcc FEATURES-ympäristömuuttujaan)</comment>
FEATURES="distcc"
</pre>
<p>
Seuraavaksi Sinun täytyy määrittää, mitä koneita haluat käyttää hajautettuun
kääntämiseen. Käytä <c>distcc-config</c>-komentoa konelistan asettamiseen.
Tässä on muutama esimerkki tavoista määrittää koneita listassa:
</p>
<pre caption="Esimerkkejä konemäärityksistä">
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>(On myös monia muita tapoja määrittää kääntämiseen osallistuvia
koneita. Lisätietoja antaa distcc:n man-sivu.)</comment>
</pre>
<p>
Tämä voi näyttää monimutkaiselta, mutta useimmissa tapauksissa ensimmäisen tai
toisen rivin tyylinen määritys toimii.
</p>
<ul>
<li>Rivillä 1 on vain välilyönnein erotettu lista koneista</li>
<li>
Rivillä 2 olevassa konelistassa määritellään (<c>/N</c>-asetuksella) myös,
kuinka monta yhtäaikaista käännöstyötä kullekin koneelle enimmillään
lähetetään.
</li>
</ul>
<p>
Koska useimmat käyttäjät eivät tarvitse rivejä 3 ja 4, ohjaamme Sinut <uri
link="http://distcc.samba.org/man/distcc_1.html">DistCC:n
dokumentaatioon</uri>, mikäli tarvitset lisätietoja.
</p>
<p>Mikäli haluat esimerkiksi käyttää ensimmäisen rivin mukaista määritystä,
käytä seuraavanlaista komentoa:</p>
<pre caption="Esimerkkikomento kääntämiseen osallistuvien koneiden asettamista
varten">
# <i>/usr/bin/distcc-config --set-hosts "192.168.0.1 192.168.0.2
192.168.0.3"</i>
</pre>
<p>
Käynnistä sitten <c>distccd</c> kääntämiseen osallistuville koneille:
</p>
<pre caption="Distccd-palvelimen käynnistäminen">
<comment>(Lisätään distccd oletusajotasoon)</comment>
# <i>rc-update add distccd default</i>
<comment>(Käynnistetään distcc-palvelin)</comment>
# <i>/etc/init.d/distccd start</i>
</pre>
</body>
</section>
<section>
<title>DistCC:n käyttäminen Automaken kanssa</title>
<body>
<p>
Tämä on joissain tapauksissa helpompaa kuin Portagen asettaminen. Tässä
tapauksessa Sinun tulee asettaa <c>PATH</c>-ympäristömuuttuja siten, että
hakemisto <path>/usr/lib/distcc/bin</path> tulee ennen sitä hakemistoa, jossa
"perinteinen" <c>gcc</c>-kääntäjä sijaitsee (yleensä <path>/usr/bin</path>).
Huomaa kuitenkin, että jos käytät <c>ccache</c>a, distcc täytyy laittaa vasta
ccachen jälkeen:
</p>
<pre caption="PATH-ympäristömuuttujan asettaminen">
# <i>export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"</i>
</pre>
<p>
Kun tavallisesti komentaisit <c>make</c>, nyt komennatkin <c>make -jN</c>
(missä N on kokonaisluku). Paras N:n arvo riippuu verkkosi ja käyttämiesi
tietokoneiden ominaisuuksista. Minulla on kaksiprosessorinen P3-kone ja
K6-2/400-kone, jotka kääntävät kaiken pöytäkonettani varten (1200 MHz Athlon
Thunderbird), ja käytän asetusta -j5. Kokeile omia asetuksiasi löytääksesi
parhaan suorituskyvyn antavan arvon.
</p>
</body>
</section>
</chapter>
<chapter>
<title>Ristikääntäjän käyttö</title>
<section>
<title>Ristikääntämisestä</title>
<body>
<p>
Ristikääntämisellä tarkoitetaan tietyllä arkkitehtuurilla toimivan tietokoneen
käyttämistä ohjelmien kääntämiseen toisellearkkitehtuurille.
Yksinkertaisimmillaan tämä voi tarkoittaa esimerkiksi Athlonin (i686)
käyttämistä ohjelman kääntämiseen K6-2:lle (i586), tai SPARCin käyttämistä
ohjelman kääntämiseen PowerPC:lle.
</p>
</body>
</section>
<section>
<title>Johdatus ristikääntämiseen</title>
<body>
<p>
Jos haluat kokeilla ristikääntämistä, voit asentaa <c>crossdev</c>-paketin. En
voi antaa tälle paketille käyttötukea, koska en ole kirjoittanut sitä, mutta
se on hyvä tapa aloittaa ristikääntäminen.
</p>
</body>
</section>
</chapter>
<chapter id="bootstrapping">
<title>DistCC:n käyttö bootstrap-vaiheessa</title>
<section>
<title>Vaihe 1: Portagen asetukset </title>
<body>
<p>
Käynnistä koneesi Gentoo Linux LiveCD:ltä ja seuraa <uri
link="/doc/fi/handbook/handbook-x86.xml?part=1">asennusohjeita</uri>
bootstrap-vaiheeseen asti. Aseta sitten Portage käyttämään DistCC:tä:
</p>
<pre caption="Alustavat asetukset">
# <i>nano -w /etc/make.conf</i>
<comment>(Lisää distcc FEATURES-ympäristömuuttujaan)</comment>
FEATURES="distcc"
<comment>(Lisää MAKEOPTS-ympäristömuuttujaan -jN missä N on sopiva
kokonaisluku)</comment>
MAKEOPTS="-jN"
</pre>
<pre caption="Hakupolun asettaminen">
# <i>export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"</i>
</pre>
</body>
</section>
<section>
<title>Vaihe 2: DistCC:n asentaminen</title>
<body>
<p>
Ennen DistCC:n asentamista täytyy lisätä uusi käyttäjä tiedostoon
<path>/etc/passwd</path>:
</p>
<pre caption="distcc-käyttäjän luominen">
# <i>echo "distcc:x:240:2:distccd:/dev/null:/bin/false"
>> /etc/passwd</i>
</pre>
<p>
Asenna DistCC:
</p>
<pre caption="DistCC:n asentaminen uudelle koneelle">
# <i>USE='-*' emerge --nodeps distcc</i>
</pre>
</body>
</section>
<section>
<title>Vaihe 3: DistCC:n asetukset</title>
<body>
<p>
Aja <c>distcc-config</c> DistCC:n asetusten asettamiseksi:
</p>
<pre caption="DistCC:n lopulliset asetukset">
<comment>(Korvaa host1, host2, ... osallistuvien tietokoneiden nimillä tai
IP-osoitteilla)</comment>
# <i>/usr/bin/distcc-config --set-hosts "localhost host1 host2 host3 ..."</i>
<comment>Esimerkki: <i>/usr/bin/distcc-config --set-hosts "localhost
192.168.0.4 192.168.0.6"</i></comment>
</pre>
<p>
distcc on nyt valmis bootstrap-vaiheeseen! Jatka virallisen asennusohjeen
mukaan <e>äläkä unohda</e> asentaa DistCC:tä uudelleen <c>emerge system</c>
- -vaiheen jälkeen. Tämä on tehtävä DistCC:n riippuvuuksien asentumisen
varmistamiseksi (koska DistCC asennettiin yllä valinnoilla USE='-*' ja
'emerge --nodeps ...').
</p>
<note>
Bootstrap-vaiheen ja <c>emerge system</c>in aikana saattaa välillä näyttää
siltä, että DistCC:tä ei käytetä. Tämä on odotettavissa, sillä jotkut
ebuildit eivät toimi hyvin yhdessä distcc:n kanssa, joten ne kytkevät sen
tarkoituksella pois käytöstä.
</note>
</body>
</section>
</chapter>
<chapter>
<title>Vianetsintä</title>
<section>
<title>Mozilla ja Xfree</title>
<body>
<p>
Kun asennat <c>emerge</c>llä eri paketteja, tulet huomaamaan, että joitain
niistä ei hajauteta (eikä käännetä rinnakkaisesti). Tämä johtuu siitä, että
esimerkiksi Mozillan ja Xfreen kehittäjät kytkevät rinnakkaiskäännön
tarkoituksella pois käytöstä, koska sen tiedetään aiheuttavan ongelmia.
</p>
<p>
Joskus DistCC saattaa aiheuttaa sen, että jokin paketti ei suostu kääntymään.
Mikäli näin tapahtuu, <uri link="http://bugs.gentoo.org">ilmoita</uri> siitä
meille.
</p>
</body>
</section>
<section>
<title>Hardened-GCC-koneiden ja ei-hardened-GCC-koneiden sekoitus ei tule
toimimaan</title>
<body>
<p>
Näin pitkällä otsikolla selitys tässä on lähes epäoleellinen. Joka tapauksessa
mikäli aiot käyttää DistCC:tä koneilla, joista osalla on <uri
link="/proj/en/hardened/etdyn-ssp.xml">PaX/hardened-gcc</uri>-kääntäjä ja
osalla ei, törmäät varmasti ongelmiin.
</p>
<p>
Ratkaisu vaatii hieman ennakointia; Sinun täytyy ajaa <c>hardened-gcc -R</c>
koneella, jolla on PaX/hardened-gcc, tai kytkeä päälle PaX-suojaukset
kernelistäsi ja ajaa <c>emerge hardened-gcc</c>. Nämä molemmat ovat hyviä
asioita tehtäväksi, sillä niiden tarjoamat suojaukset ovat enimmäkseen
läpinäkyviä käyttäjälle.
</p>
</body>
</section>
<section>
<title>Eri GCC:n versioiden sekakäyttö</title>
<body>
<p>
Jos koneillasi on eri versioita GCC:stä, tulet todennäköisesti törmäämään
erittäin outoihin ongelmiin. Ratkaisu on varmistaa, että kaikilla koneilla on
sama GCC:n versio.
</p>
</body>
</section>
</chapter>
<chapter>
<title>DistCC:n lisäohjelmat</title>
<section>
<title>DistCC:n valvontaohjelmat</title>
<body>
<p>
DistCC:n mukana tulee kaksi valvontaohjelmaa. Tekstipohjainen valvontaohjelma
käännetään aina, ja sen nimi on <c>distccmon-text</c>. Sen ajaminen ensi
kertaa voi olla melko sekavaa, mutta ohjelma on oikeastaan melko
helppokäyttöinen. Jos ajat ohjelman ilman parametrejä, se suoritetaan vain
kerran. Jos sen sijaan annat sille jonkin numeron N, se jää päälle ja
päivittyy aina N:n sekunnin välein.
</p>
<p>
Toinen valvontaohjelma käännetään vain, jos käytit joko <c>gtk</c>- tai
<c>gnome</c>-USE-valintaa. Se on GTK+-pohjainen, toimii X-ympäristössä ja on
melko rakastettava.
</p>
<pre caption="Valvontaohjelmien ajaminen">
# <i>distccmon-text N</i>
<comment>(tai)</comment>
# <i>distccmon-gnome</i>
<comment>Portagen valvomiseksi voit käyttää seuraavia komentoja:</comment>
# <i>DISTCC_DIR=`portageq envvar DISTCC_DIR` distccmon-text N</i>
<comment>(tai)</comment>
# <i>DISTCC_DIR=`portageq envvar DISTCC_DIR` distccmon-gnome</i>
</pre>
<impo>
Huomaa aksentit yläpuolella. <c>portageq</c> on Portagen osa, joka palauttaa
pyydetyn tiedon (tässä tapauksessa DISTCC_DIR-ympäristömuuttujan sisällön).
Yksinkertaisuuden vuoksi useimmille käyttäjille riittää
<c>DISTCC_DIR=/var/tmp/portage/.distcc
distccmon-text N</c>.
</impo>
</body>
</section>
</chapter>
</guide>
- --
Santtu Pajukanta <japsu@...>
OpenPGP key ID: 0x520A97CC
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
iD8DBQFBVvzTZzmiiVIKl8wRAkumAJ99wla/I7sce5qj76F7jihYd9VQ+wCeJqGx
OsaqIMUYd/D/YTDKeQX88Ss=
=NDYH
-----END PGP SIGNATURE-----
--
gentoo-doc-fi@g.o mailing list
|