Budilaksonoputra......Kompilasi program
biasanya sangat sederhana; tidak ada yang perlu dicemaskan dan pastinya tidak
akan terlalu sulit daripada membuat program itu sendiri, tetapi kompilasi tidak
digaransi 100%. Berikut ini adalah petunjuk kompilasi bagi pemula. Hal ini
berarti 90% solusi bagi mereka yang mulai mengenal Linux.
Cepat atau lambat,
setiap orang pasti akan mendownload sebuah program dalam bentuk kode sumber dan
mengkompilasinya. Walaupun anda mungkin penggemar berat Red Hat atau Debian,
pada akhirnya anda akan menemukan sebuah program yang terlalu tua, atau terlalu
baru, dan mencarinya dalam bentuk precompiled binary. Sayangnya
kode tersebut tidak selalu dapat dikompilasi, apapun yang anda lakukan. Ingat
bahwa kebanyakan program-program di Linux masih dalam tahap beta. Kabar baiknya
adalah bahwa prosentase dari program yang dapat dikompilasi tanpa masalah telah
meningkat secara signifikan pada lima tahun terakhir, dan ada sesuatu yang
dapat anda lakukan untuk "memperbaiki" kode yang tidak dapat
dikompilasi, tanpa harus menjadi seorang programmer.
Setelah anda
mendownload: sekarang anda memiliki beberapa buah tarball (file dalam bentuk tar.gz)
dalam harddisk anda. Pertama kali yang harus anda lakukan adalah mengekstrak
dan untar ke sebuah direktori. Pada umumnya, program di-untar ke dalam
direktori /usr/src. Ini akan menjaga semua kode sumber berada pada satu tempat
sehingga anda dapat membersihkannya jika sudah tidak digunakan lagi, juga untuk
mengetahui versi berapa dari program yang telah anda kompilasi. Anda harus
menjadi root untuk dapat menggunakan direktori ini. Program tar di Linux dapat
mengekstrak dan untar sebuah file secara bersamaan jika file tersebut dikompres
dengan menggunakan gzip. Jika anda memiliki sebuah file yang bernama
filename.tar.gz, anda harus masuk ke direktori /usr/src dengan perintah cd, dan
ketikkan:
tar
-xzvf /{path to file}/{filename.tar.gz} [Enter]
Perintah tersebut akan
melakukan ekstrak dan untar. Penjelasan dari opsi yang digunakan adalah sebagai
berikut:
x - untar file
z - unkompres (ekstrak) file
v - verbose - sehingga anda bisa mengetahui apa yang sedang
terjadi
f - menunjukkan file yang akan di-untar
Jika anda menggunakan Netscape untuk
mendownload file tersebut, mungkin anda akan mendapatkan pesan kesalahan.
Kadang-kadang Netscape akan langsung mengekstrak file tarball hasil download.
Sehingga jika anda mencoba untuk meng-untar file tersebut seperti yang
dijelaskan di atas, mungkin anda akan mendapatkan pesan berikut:
gzip: stdin: not in
gzip format
tar: Child returned
status 1
tar: Error exit
delayed from previous errors
Gunakan perintah yang sama, namun
hilangkan opsi z. Sehingga perintah di atas menjadi seperti berikut ini:
tar -xvf /{path to
file}/{filename.tar.gz} [Enter]
Ada juga file-file yang menggunakan
kompresi bzip2, sehingga file anda akan terlihat seperti berikut :
the-program.tar.bz2. Opsi z untuk tar tidak akan bekerja. Cara termudah untuk
meng-untar file ini adalah dengan mengetikkan: bunzip2 the-program.tar.bz2.
Perintah ini akan menghasilkan file the-program.tar, yang bisa di-untar dengan
perintah:
tar -xvf /{path to
file}/{filename.tar.gz} [Enter]
Setelah untar: masuk (cd) ke
direktori yang telah dihasilkan saat anda melakukan untar. Perhatikan file-file
di direktori tersebut dengan perintah ls. Anda harus membaca file README dan
INSTALL. Jangan berpikir bahwa anda akan mendapatkan bantuan dari orang lain
jika anda belum membaca file-file tersebut. Itulah alasan mengapa RTFM menjadi
istilah yang paling sering digunakan di Internet. File README dan INSTALL pasti
akan mengajarkan kepada anda bagaimana mengkompilasi dan menginstal sebuah
program.
Untuk mengkompilasi,
berikan perintah "make". Agar "make" bisa melakukan
kompilasi, anda harus memiliki sebuah file yang bernama Makefile (anda bisa
saja memberikan perintah make diikuti dengan opsi-opsi tertentu, namun itu
diluar topik bahasan artikel ini). Ada tiga cara yang umum digunakan untuk
memulai kompilasi : cara sederhana, Imake, dan configure.
Kompilasi sederhana: Jika anda melihat
sebuah file yang bernama Makefile - bukan Imake atau configure, anda harus
menggunakan metode ini untuk melakukan kompilasi. Metode ini memiliki tingkat
kesulitan yang paling tinggi karena tidak ada yang dikonfigurasi khusus untuk
komputer anda. Biasanya, file README dan INSTALL akan membantu anda untuk
mengedit beberapa file sehingga program tersebut dapat dikompilasi. Biasanya
anda kemudian mengetikkan :
make [Enter]
make install [Enter]
dan jika segala
sesuatunya berjalan dengan baik, anda sekarang dapat menjalankan program
tersebut.
Imake: Jika anda melihat
isi direktori (dengan perintah ls) dan terdapat file Imake dan tidak ada
Makefile, maka anda harus menggunakan metode ini. Ini adalah cara tertua untuk
melakukan setup dan kompilasi. Ketikkan perintah:
xmkmf [Enter]
make [Enter]
make install [Enter]
Configure: Gunakan metode
kompilasi ini jika terdapat file yang bernama configure di dalam direktori. Ini
adalah cara termudah untuk mengkompilasi dan memiliki kemungkinan keberhasilan
tertinggi. Pada dasarnya ia akan mengecek keseluruhan sistem anda untuk setiap
kemungkinan pustaka dan file-file pendukung untuk meyakinkan bahwa anda bisa
mengkompilasi program tersebut, dan kemudian membuat Makefile dengan informasi
yang tepat. Untuk mengkompilasi, ketikkan :
./configure [Enter]
make [Enter]
make install [Enter]
Perhatikan tanda ./ di
depan perintah pertama. Ketika anda mengetikkan sebuah perintah, shell yang
anda gunakan akan mencari file perintah tersebut di path. Shell tidak mulai
mencari dari direktori kerja anda, sehingga jika ./ (yang berarti direktori
kerja yang sedang anda gunakan) tidak termasuk di path, walaupun ls dapat
melihat file tersebut, shell anda tidak dapat melihatnya. Shell dapat
mengeksekusi make karena biasanya file perintah make berada di /usr/bin yang
termasuk dalam path anda. Untuk melihat path di sistem anda, ketikkan :
echo $PATH [Enter]
Jika ada kesalahan :
Penyebab utama kegagalan
kompilasi adalah adanya file-file yang tidak ditemukan. Hampir semua program
bergantung pada program/file/pustaka pendukung lain. Jika mereka tidak
diketemukan, program tidak dapat dikompilasi. File README/INSTALL seharusnya
telah memberitahu anda file-file apa saja, dan versi berapa, yang anda butuhkan
untuk mengkompilasi program. Ingat bahwa versi yang salah dapat membunuh anda
sama seperti anda sama sekali tidak memiliki file tersebut. Biasanya anda akan
mengetahui sendiri apa masalahnya, sebab pesan kesalahan pada akhir kompilasi
akan memberitahu anda bahwa ia tidak dapat menemukan beberapa file. Ingat
sekali lagi bahwa kadang-kadang anda memiliki file yang dibutuhkan, tetapi
tidak berada di tempat yang dicari oleh Makefile. Gunakan program instalasi
distribusi Linux anda, misalnya RPM, dan periksalah apakah anda memiliki file
yang hilang. Jika tidak, carilah di Internet. Jika anda memang memilikinya, dan
itu adalah versi yang benar, periksa Makefile untuk melihat dimana seharusnya
file tersebut berada. Sebagai contoh, katakanlah file moc berada di
/usr/local/bin, namun Makefile mengatakan bahwa moc=/opt/bin/moc. Lalu edit
Makefile (dengan menggunakan vi atau editor lain yang anda sukai) dan ubahlah
sehingga sama dengan lokasi file tersebut di sistem anda.
Masalah lain yang
paling sering ditemui adalah tidak ditemukannya file-file header. Kebanyakan
file di direktori sumber program memiliki baris yang terlihat seperti ini :
#include <gtk/gtk.h>
#include
<netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h
File-file
"h" (atau header) tersebut harus ada di dalam komputer anda. Minimal,
cek apakah anda memiliki file header kernel dengan perintah ls
/usr/include/linux/. Jika anda memiliki pustaka-pustaka yang telah terinstal,
seperti gtk, yakinkan bahwa anda juga telah menginstal file-file devel.
Terkadang memiliki banyak versi untuk pustaka yang sama dapat menyebabkan
masalah, sebab tiap versi bisa meletakkan file-file headernya di mana saja dan
anda tidak akan tahu file mana yang digunakan saat kompilasi.
Jika anda sudah
membuat semua perubahan yang diperlukan pada Makefile dan telah memiliki semua
pustaka dan file-file header yang dibutuhkan, namun tetap saja program tersebut
tidak dapat dikompilasi, lakukan urutan langkah berikut :
- Jika anda
mendownload program dari sebuah situs yang bukan situs utama dari program
tersebut, pergilah ke situs utamanya dan perhatikan apakah ada versi terbaru
yang tersedia.
- Pergi ke www.dejanews.com dan cari program
yang anda butuhkan. Kemungkinan ada orang lain yang memiliki masalah yang sama
dan mengirimkan solusinya
- Jika semua cara gagal, kirimkan email
ke penulis program. Kebanyakan penulis program sangat tertarik untuk meningkatkan
programnya dan laporan adanya bug atau saran perbaikan biasanya diterima dengan
senang hati (ingat, ini Linux, bukan program komersial). Ingat, laporan bug
dari anda sebaiknya tidak hanya berisi "program ini tidak dapat
dikompilasi"! Saya biasanya mengirimkan sepuluh baris terakhir atau lebih
dari pesan yang muncul ketika kompilasi sehingga penulis program dapat
mengetahui betul dimana letak kesalahannya. Jika saya sangat menyukai program
tersebut, saya akan mengirimkan email ke penulisnya setiap kali muncul versi
baru dan memberikan sebanyak mungkin saran yang dapat saya berikan. Mohon
dicatat: programmer juga manusia biasa, mereka juga butuh liburan, berpindah
pekerjaan dan lokasi, dan beberapa bahkan harus masuk sekolah. Jadi jangan
mengharapkan balasan yang cepat.
Terakhir, ada beberapa
program yang memiliki cara kompilasi yang unik, misalnya qt dan kernel. Untuk
mengkompilasinya, saya ingatkan sekali lagi, baca file README dan INSTALL!
Copyright ? 1999, JC
Pollman
Published in Issue 38 of Linux Gazette, March 1999