Log in


Forgot your password?
prijatelji LUGoNSa
gnu.gif
linuxzasve.jpg
hulk.jpg
zextras_logo.png
 
You are here: Home / Uputstva / Gentoo/Exherbo / Kompajliranje pomoću distcc-a

Kompajliranje pomoću distcc-a

by Bojan Delić last modified Jul 31, 2007 10:26 AM
Kratko uputstvo za distribuirano kompajliranje koristeći distcc

Distcc je alat koji omogućava kompajliranje na udaljenim računarima u mreži. Sastoji se iz 2 dela, servera (distccd) i klijenta (distcc).


Prvo, da biste koristili distcc svi računari na mreži moraj u da imaju instaliranu istu verziju gcc-a. Na primer, mešanje verzija 3.3.x (gde je x različito) ne bi trebalo da bude problem, ali mešanje gcc-a 3.2 i 3.3 može da uzrokuje probleme za vreme kompajliranja ili izvršavanja programa.


Instalacija

Napomena: Morate instalirati distcc na svaki računar koji će učestvovati u kompajliranju.

Zatim je potrebno da odredite računare na kojima će se kompajliranje izvršavati. Za to se koristi komanda distcc-config. Na nekoliko različitih načina možete to uraditi, a ja ću ovde navesti najjednostavniji način (koji se najčešće i koristi). Za detalje pogledajte dokumentaciju. Adrese zamenite adresama računara u vašoj mreži. Svaki host se razdvaja praznim mestom.

# distcc-config --set-hosts "192.168.0.1"
Posle toga treba definisati kojim računarima je dozvoljeno da koriste resurse. U fajlu /etc/conf.d/distccd pronađite --allow direktivu i dodajte računare kojima želite da dopustite da pristup. Na primer, ta linija može da izgleda ovako:
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.0.3/24"
Ukoliko želite dodatnu sigurnost možete dodati i --listen opciju (za detalje pogledajte dokumentaciju)

Podešavanje Portage-a

Da biste podesili Portage da koristi distcc prilikom kompajliranja potrebno je da izmenite file /etc/make.conf. U fajl treba da dodate:


# N je broj koji treba da zamenite u zavisnosti od vaše konfiguracije
# praksa je da N bude jednako broju procesora koji kompajliraju + 1
MAKEOPTS="-jN"
FEATURES="distcc"

Podešavanje paludis-a

Ukoliko koristite paludis, treba da izmenite file /etc/paludis/bashrc. U fajl treba da dodate:

# ukoliko nemate folder /var/tmp/paludis/.distcc treba da ga napravite
# njegov vlasnik treba da bude korisnik paludisbuild
export DISTCC_DIR="/var/tmp/paludis/.distcc"
# ovde navodite hostove na kojima ce se izvrsavati kompajliranje
export DISTCC_HOSTS="192.168.0.1"
export PATH="/usr/lib/distcc/bin:${PATH}"

Za kraj

Ostalo je još da pokrenemo distcc demon i da ga eventualno dodamo u default runlevel. Komande koje će to uraditi su:
rc-update add distccd default
/etc/init.d/distccd start

Ako ste sve opisane korake uradili na svim računarima u mreži, bilo koji računar kada nešto bude kompajlirao će deo posla poslati ostalim računarima i time ubrzati proces.

Ukoliko budete nešto ručno kompajlirali i želite da diristite distcc za tako nešto, treba da dodate u neku od skripti koje se pokreću pri startovanju sistema ili pri logovanju koristnika sledeću liniju:
# export PATH="/usr/lib/distcc/bin:${PATH}"

Document Actions