Gentoo Logo

Dokumentasi Distcc Gentoo

Daftar Isi:

1.  Pendahuluan

Apa itu distcc?

Distcc merupakan sebuah program yang dirancang untuk mendistribusi tugas kompilasi ke komputer yang ikut berpartisipasi di sebuah jaringan. Program ini terdiri dari sebuah server, distccd, dan sebuah program klien, distcc. Distcc dapat bekerja secara tranparan dengan ccache, Portage, dan Automake dengan sedikit setup.

Menggunakan distcc untuk bootstrap

Jika anda berencana menggunakan distcc untuk membantu anda dalam proses bootstrap instalasi Gentoo, pastikan anda membaca seksi Menggunakan distcc untuk bootstrap, yang terletak di bagian bawah dari dokumen ini.

2.  Setup

Dependensi

Untuk menggunakan Distcc, seluruh komputer di jaringan anda harus memiliki versi GCC yang sama. Sebagai contoh, anda boleh mencapurkan versi 3.3.x (x bisa apa saja), tetapi anda tidak boleh mencampurkan versi 3.3.x dengan 3.2.x karena akan menyebabkan error kompilasi atau error runtime.

Instalasi Distcc

Ada beberapa opsi yang perlu anda ketahui sebelum anda mulai menginstal distcc.

Distcc memiliki sebuah pemantau grafis untuk memantau tugas yang dikirimkan oleh komputer anda untuk kompilasi. Jika anda menggunakan Gnome, maka tambahkan 'gnome' pada flag USE anda. Tetapi, jika anda tidak menggunakan Gnome dan tetap ingin memiliki pemantau distcc, maka anda perlu menambahkan 'gtk' pada flag USE anda.

Daftar Kode 2.1: Instalasi distcc

# emerge distcc

Penting: Jangan lupa, anda harus menginstal distcc pada setiap komputer yang ikut berpartisipasi.

Menyiapkan Portage Untuk Menggunakan Distcc

Menyiapkan Portage untuk menggunakan Distcc sangat mudah. Jalankan beberapa langkah berikut ini pada setiap sistem yang akan berpartisipasi pada kompilasi terdistribusi:

Daftar Kode 2.2: Mengintegrasikan Distcc dan Portage

# emerge distcc
# nano -w /etc/make.conf
(Strategi umum ialah mengeset N sebagai dua kali jumlah CPU yang
tersedia + 1)
MAKEOPTS="-jN"
(Tambahkan distcc pada FEATURES)
FEATURES="distcc"

Menentukan Host yang Berpartisipasi

Gunakan perintah distcc-config untuk mengeset daftar host. Berikut ini sebuah contoh dari beberapa host yang mungkin berada pada daftar anda:

Daftar Kode 2.3: Contoh definisi host

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
(Terdapat beberapa metode lain untuk mengeset host. Baca manual distcc
untuk info lebih lanjut.)
Jika anda ingin mengkompilasi pada komputer lokal, anda perlu
menambahkan 'localhost' pada daftar host. Sebaliknya jika anda tidak ingin
menggunakan komputer lokal untuk mengkompilasi, hapus 'localhost' dari daftar
host. Pada komputer tua yang lambat, menggunakan localhost bisa memperlambat
segalanya. pastikan anda mencoba setting anda untuk mendapatkan performa
terbaik.

Kelihatannya rumit, tetapi biasanya contoh pada baris 1 atau 2 dapat anda gunakan.

Karena kebanyakan orang tidak akan menggunakan baris 3 atau 4, bacalah dokumentasi distcc (man distcc) untuk info lebih lanjut.

Sebagai contoh, untuk menggunakan baris 1 dari contoh di atas:

Daftar Kode 2.4: Contoh perintah untuk mengeset host

# /usr/bin/distcc-config --set-hosts "192.168.0.1 192.168.0.2 192.168.0.3"

Edit /etc/conf.d/distccd sesuai dengan kebutuhan anda dan pastikan untuk mengeset --allow untuk hanya mengijinkan host yang anda percaya. Untuk tambahan keamanan, anda juga perlu menggunakan --listen untuk memberitahukan daemon distcc IP apa saja yang harus didengarkan (untuk sistem multi-home). Info lebih lanjut tentang keamanan distcc bisa anda dapatkan di Distcc Security Design.

Penting: Penggunaan --allow dan --listen sangatlah penting. Bacalah manual distccd atau dokumentasi di atas untuk info lebih lanjut.

Sekarang jalankan daemon distcc pada seluruh komputer yang berpartisipasi:

Daftar Kode 2.5: Menjalankan daemon distcc

(Tambahkan distccd pada runlevel default)
# rc-update add distccd default
(Jalankan daemon distcc)
# /etc/init.d/distccd start

Mensetup Distcc agar Bekerja dengan Automake

Pada beberapa kasus, hal ini lebih mudah daripada setup untuk Portage. Yang perlu anda lakukan adalah meng-update variabel PATH anda agar berisi /usr/lib/distcc/bin di depan direktori yang berisi gcc (/usr/bin). Tetapi, terdapat pengecualian. Jika anda menggunakan ccache, anda harus meletakkan distcc setelah ccache:

Daftar Kode 2.6: Mengeset path anda

# export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"
(Anda dapat meletakkan baris ini pada file ~/.bashrc anda atau file
yang setara agar PATH anda di-set setiap kali anda login)

Kemudian, jika anda biasanya mengetikkan make, maka anda sekarang perlu mengetikkan make -jN (N merupakan integer). Nilai N tergantung kepada jaringan anda dan tipe komputer yang anda gunakan untuk mengkompilasi. Cobalah setting anda untuk menemukan nomor yang memberikan performa terbaik.

3.  Cross-Compiling

Cross-compiling digunakan oleh sebuah arsitektur untuk membangun program untuk arsitektur lain. Misalnya menggunakan Athlon (i686) untuk membangun program untuk K6-2 (i586), atau menggunakan Sparc untuk membangun program untuk PPC. Hal ini didokumentasikan di Panduan Cross-compiling DistCC.

4.  Menggunakan Distcc untuk Bootstrap

Langkah 1: Konfigurasi Portage

Boot komputer anda dengan LiveCD Gentoo Linux dan ikuti petunjuk instalasi sampai bagian bootstrap. (Baca FAQ Gentoo untuk info lebih lanjut tentang bootstrap.) Lalu konfigurasikan Portage untuk menggunakan distcc:

Daftar Kode 4.1: Setup Awal

# nano -w /etc/make.conf
(Tambahkan distcc ke FEATURES
FEATURES="distcc"
(Ubah MAKEOPTS agar berisi -jN, dimana N merupakan jumlah CPU yang
tersedia +1)
MAKEOPTS="-jN"

Daftar Kode 4.2: Mengeset path anda

# export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"

Langkah 2: Menginstal Distcc

Instal distcc:

Daftar Kode 4.3: Menginstal distcc pada komputer baru

# USE='-*' emerge --nodeps sys-devel/distcc

Langkah 3: Setup Distcc

Jalankan distcc-config --install untuk men-setup distcc:

Daftar Kode 4.4: Setup akhir distcc

(Gantikan host1, host2, ... dengan nomor-nomor IP dari host yang
berpartisipasi.)
# /usr/bin/distcc-config --set-hosts "localhost host1 host2 host3 ..."
Contoh: /usr/bin/distcc-config --set-hosts "localhost
192.168.0.4 192.168.0.6"

Sekarang distcc telah di-setup untuk bootstrap. Lanjutkan dengan petunjuk instalasi resmi dan jangan lupa untuk meng-emerge kembali distcc setelah emerge system. Hal ini untuk memastikan agar seluruh dependensi yang anda inginkan ikut terinstal.

Catatan: Selama proses bootstrap dan emerge system, distcc mungkin kelihatannya tidak digunakan. Hal ini disebabkan oleh beberapa ebuild yang tidak dapat menggunakan distcc, untuk itu distcc dinonaktifkan.

5.  Troubleshoot

Beberapa Paket Tidak Menggunakan Distcc

Ketika anda meng-emerge beberapa paket, anda akan melihat bahwa sebagian dari paket-paket tersebut tidak didistribusikan (dan tidak dibangun secara paralel). Hal ini bisa terjadi karena Makefile paket tersebut tidak mendukung operasi paralel atau sang maintainer dari ebuild tersebut dengan sengaja menonaktifkan operasi paralel karena beberapa masalah.

Terkadang distcc dapat menyebabkan sebuah paket gagal dikompilasi. Jika hal ini terjadi, tolong laporkan kepada kami.

Versi GCC yang Bercampuran

Jika anda memiliki versi-versi GCC yang berbeda pada host-host anda, kemungkinan besar anda akan mendapatkan masalah-masalah aneh. Solusinya adalah dengan memastikan agar semua host menggunakan versi GCC yang sama.

Update Portage yang terbaru telah menjadikan Portage menggunakan ${CHOST}-gcc sebagai ganti gcc. Artinya, jika anda menggunakan komputer i686 dengan jenis lain (i386, i586) anda akan mendapatkan masalah. Anda dapat mengatasinya dengan export CC='gcc' CXX='c++' atau menambahkan baris tersebut di /etc/make.conf.

Penting: Dengan melakukan ini, berarti anda telah mengubah beberapa tingkah laku Portage dan mungkin akan menyebabkan beberapa masalah nantinya. Hanya lakukan jika anda mencapur CHOST.

6.  Tambahan-tambahan Distcc

Pemantau Distcc

Distcc memiliki dua pemantau. Pemantau berbasis teks akan selalu dibangun dan dinamakan distccmon-text. Menjalankan pemantau ini untuk pertama kali cukup membingungkan, tetapi sebenarnya sangat mudah digunakan. Jika anda menjalankan program ini tanpa parameter apapun, maka ia hanya akan berjalan sekali. Tetapi, jika anda menambahkan sebuah nomor, maka program ini akan meng-update dirinya setiap N detik, dimana N merupakan argumen yang anda tambahkan tadi.

Pemantau lainnya hanya akan dibangun jika anda mengaktifkan flag gtk atau gnome pada flag USE anda. Pemantau yang satu ini berbasis GTK+, berjalan di lingkungan X dan cukup cantik. Untuk Gentoo, pemantau GUI ini dinamakan distccmon-gui agar tidak membingungkan. Distro lain mungkin akan menamakannya distccmon-gnome.

Daftar Kode 6.1: Menjalankan Pemantau

# distccmon-text N
(Atau)
# distccmon-gui
Untuk memantau penggunaan distcc Portage anda dapat menggunakan:
# DISTCC_DIR="/var/tmp/portage/.distcc/" distccmon-text N
(Atau)
# DISTCC_DIR="/var/tmp/portage/.distcc/" distccmon-gui

Penting: Jika direktori distcc anda berada di tempat lain, gantikan variabel DISTCC_DIR dengan yang sesuai.



Print

Diperbarui 10 Januari 2008

Versi asli dari dokumen ini terakhir diupdate 14 Juni 2009

Rangkuman: Dokumen ini merupakan panduan penggunaan distcc dengan Gentoo.

Lisa Seelye
Author

Mike Frysinger
Editor

Erwin
Editor

Sven Vermeulen
Editor

Lars Weiler
Editor

Tiemo Kieft
Reviewer

Dzikri Aziz
Translator

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.