Post Top Info

Post Top Info

linuxubuntu

Cara Compile Program Dari Source Code Hingga Siap Pakai Pada Ubuntu

Cara Compile Program – cara terbaik dan termudah menginstall software/aplikasi/program/paket dalam sistem ubuntu adalah dengan mencari instalasi .deb nya, karena sangat menghemat waktu, cukup double klik saja. Paket-paket software tersebut bersarang pada ubuntu software center.

Namun adakalanya, ada program yang tidak memiliki versi .debnya, biasanya program-program ini ditujukan untuk OS linux secara universal, jadi biarlah user yang meng-compile-nya sendiri, jika anda menemukan hal seperti ini, anda masih bisa berusaha mencari file .deb lewat google ataupun situs yang menyediakan versi .deb dari program-program yang tidak ada di repository.

Jika mentok juga, masih juga nggak dapet versi .deb nya padahal anda sangat butuh dan pengen banget program ini bisa diinstall pada komputer anda, maka..yah…mau nggak mau , suka nggak suka anda harus meng-compile-nya sendiri ke komputer anda.

ilustrasi source:freepik.com


Masalahnya adalah , meng-compile sebuah program itu membutuhkan kemampuan dan pemahaman tentang OS ubuntu atau linux dengan level intermediate, itupun tidak semua program memiliki jalan yang sama untuk di compile, Program A mungkin saja memilii cara compile yang berbeda dengan Program B, program B bisa saja berbeda cara compile nya dengan program C, jadi tidak ada cara baku untuk mengcompile sebuah program.

Hal ini sangat bergantung dari sebarapa siap dan sebarapa matangnya program/paket yang di publish oleh vendor, dan seberapa siapnya sistem anda, karena masing-masing program memiliki dependensi paket yang berbeda-beda. Maka dari itu biasanya dalam publishnya vendor sebuah aplikasi atau program menyertakan file “readme”, atau “install” yang berisi informasi tentang bagaimana cara meng-compile program yang mereka publish.

Oke, meskipun demikian, tetap saja, terdapat sebuah POLA atau PATTERN dalam melakukan compile program, jika anda menguasai pola ini, maka insyaAllah anda akan mendapatkan titik terang tentang cara mengompile sebuah program, yah meskipun hanya basicnya saja.



Dasar-dasar compile Program

ilustrasi


Berikut ini merupakan pola dasar compile program yang umumnya bisa diterapkan di berbagai kasus compiling, namun sebelum kita bisa mengompile sebuah program dari source code hingga bisa diaplikasikan di komputer, kita perlu mempersiapkan sistem anda terlebih dahulu..


A. Mempersiapkan sistem

Secara default ubuntu tidak di lengkapi dengan paket-paket yang anda butuhkan untuk mengcompile sebuah program, untuk itu, pada tahap pertama kita harus mempersiapkan sistem anda terlebih dahulu agar bisa digunakan untuk compiling.

Paket pertama yang anda butuhkan adalah build-essential untuk membuat sebuah paket dan paket checkinstall untuk menempatkan paket kedalam package manager, cara install ke dua paket ini gampang banget , anda cukup menggunakan code berikut ini:

sudo apt-get install build-essential checkinstall


paket ini tersedia baik pada repo online ataupun DVD repo anda, tunggu proses instalasi selesai.

Selanjutnya, terkadang program yang anda download itu tidak memiliki released version, ituloh misalnya gimp 2.0 atau vlc 5.3 nah 2.0 dan 5.3 ini merupakan released version, terkadang ada juga program atau paket yang tidak memiliki released version seperti itu, agar nantinya program yang tidak memiliki released version ini dapat diinstall dengan baik di komputer anda , maka kita harus memiliki package manager yang mau untuk menerima program-program tanpa released version tersebut , kita bisa mendapatkannya dengan code berikut:

sudo apt-get install cvs subversion git-core mercurial


B. Teknik dasar compiling

Oke, secara garis besar tahapan compiling saya bagi menjadi beberapa tahap berikut ini:
  1. 1. Mempersiapkan file source code yang akan di compile
  2. 2. Melakukan perpindahan direktori ke direktori source code menggunakan command cd
  3. 3. Melakukan configure file dengan ./configure
  4. 4. Compile program dengan perintah make
  5. 5. Install program dengan make install
  6. 6. lalu checkinstall (optional recomended)


1. mepersiapkan file source code

Biasanya, program yang nggak ada .deb nya, atau program yang di release dalam bentuk source code, disimpan dalam format tarball (.tar, .tar.gz, .tar.bz2 dlsb), yah kalo di windows seperti format .zip lah.., didalam file tarball inilah terdapat kode-kode yang harus anda compile agar bisa anda jalankan di sistem anda.

Selanjutnya, extract file tarball tersebut dengan mengklik kanan file lalu pilih extract here atau bagi anda para macan terminal bisa menggunakan perintah berikut:

tar -xzvf namafiletarball.tar.gz

atau untuk .tar.bz2

tar -xjvf namafiletarball.tar.bz2

anda harus menyesuaikan dengan nama file tarball anda, misalnya nama file tarball anda gparted.tar.gz maka untuk mengekstarct file tersebut gunakan perintah

tar -xzvf gparted.tar.gz

begitu juga untuk format tarball lainnya.


Perhatian:

direktori tempat anda menyimpan file source code haruslah writable, direktori yang terletak pada /home/username-anda (itulah yang ada Document, Downloads, dlsb) secara default semuanya sudah writable, jika anda menyimpan file tarball source code pada direktori yang belum wirtable maka anda perlu membuatnya writable terlebih dahulu, agar anda bisa melakukan ekstrak dan compiling program nantinya, untuk melakukannya ketikan perintah berikut ini:

sudo chown username-anda path-direktori-anda

lalu:

sudo chmod u+rwx path-direktori-anda

 

  • username-anda : isikan dengan username anda
  • path-direktori-anda: isikan dengan path direktori tempat anda menyimpan file anda misalnya /usr/local atau /media/data, dlsb
  • chmod : perintah untuk mengatur user permission
  • u+rwx : membuat user bisa me-Read , Write dan eXcute (membaca, menulis/membuat dan meng-eksekusi file yang terdapat di direktori tersebut )

 

contoh perintah :

sudo chown eridesktop /media/Data/Downloads

lalu

sudo chmod u+rwx /media/Data/Downloads

perintah diatas akan membuat direktori /media/Data/Downloads menjadi writable

 

2. melakukan perpindahan direktori

Tahapan berikutnya dalam proses compiling adalah melakukan perpindahan direktori menggunakan perintah CD, seperti yang sudah anda ketahui, ketika anda membuka terminal maka direktori yang aktif secara default adalah direktori ~ (/home/usernameanda), nah agar anda dapat melakukan compiling sebuah source code maka anda harus melakukan perpindahan direktori ke direktori source code yang sudah anda extract pada langlah pertama.

Contoh:

Anda mendownload sebuah paket dengan nama gparted.tar.gz, paket ini anda simpan di ~/Downloads, maka setelah anda extract, akan terbentuk sebuah folder baru dengan nama yang sama persis dengan nama file tarballnya, yaitu gparted.

Nah  anda harus melakukan perpindahan direktori ke folder gparted yang baru terbentuk ini,kita bisa menggunakan perintah :

cd /Downloads/gparted

jika anda mengekstract source codenya pada direktori  /media/Data/Paket misalnya maka anda harus melakukan

cd /media/Data/Paket/gparted

jika nama folder source code anda misalnya gparted2.0-beta dan terletak di direktori /media/Data/Paket maka perintah cd yang harus anda ketikan

cd /media/Data/Paket/gparted2.0-beta

 

3. Configure Program

Langkah selanjutnya dalam tahapan meng-compile program adalah melakukan konfigurasi program menggunakan perintah :

./configure

Perintah ./configure berfungsi untuk melakukan pengecekan apakah lingkungan sistem anda sudah memenuhi syarat yang dibutuhkan oleh program..? apakah paket-paket pendukung dan libraries yang dibutuhkan oleh program sudah terinstall di komputer anda…? apakah sistem anda sudah benar-benar siap untuk menginstall paket tersebut…? jika belum maka ./configure script akan memberitahukannya kepada anda mana paket/libraries yang harus diinstall, mana settingan yang tidak sesuai dlsb agar anda bisa melakukan penyesuaian sistem. Jika ./configure sudah menyatakan bahwa semuanya OK , berarti sistem anda sudah siap untuk melakukan compiling dan instalasi program.

contoh proses configure program


Tapi adakalanya sebuah paket belum disertai dengan ./configure script , jadi anda harus membuatnya sendiri, waduuuuh…..??? tenang aja cukup ketikan beberapa huruf dibawah ini:

./autogen.sh

command diatas secara otomatis akan membuat ./configure script dan sekaligus menjalankannya, jadi anda tidak perlu melakukan perintah ./configure lagi

 

4. Masalah Dependensi paket

Tahapan selanjutnya adalah masalah dependensi paket, Loh diatas tadi kan nggak ada tahapan ini…?? sekarang kok jadi ada…??

Yuup…! memang sebenernya tahapan ini nggak ada JIKA anda tidak menemukan error pada saat melakukan ./configure, tapi kenyataan itu terkadang memang pahit anak muda….., kenyataan tidak semanis apa yang tertulis pada teori-teori di buku (termasuk buku ini), anda akan sering dan banyak menjumpai error saat melakukan ./configure , yakin lah apa yang dikatakan eri…:D.

Kenapa…?? karena bisa saja sistem anda tidak memenuhi syarat yang diajukan oleh program, biasanya ini adalah masalah dependensi paket yang belum terinstall di sistem anda. Dan anda harus mencari dan menginstall semua paket-paket dependensi yang dibutuhkan oleh program agar proses compile dan install bisa berjalan.

Dalam tahap compiling paket, tahap ini adalah tahapa paling susah dan paling merepotkan kenapa…??

Dalam distribusi linux modern khususnya di ubuntu, masalah dependensi paket ini memang sudah ditangani sepenuhnya, ketika anda menginstall sebuah program anda tidak perlu lagi mengkritingkan rambut untuk memikirkan dan mencari-cari dependensi paket yang dibutuhkan agar sebuah program bisa berjalan dengan baik, karena semua sudah dikerjakan secara otomatis oleh sistem.

Satu contoh, ketika anda mengisntall sebuah program baik itu melalui ubuntu software center, synaptic, ataupun apt-get anda tidak perlu kan memikirkan paket-paket dependensi yang dibutuhkan apa aja..? anda juga nggak perlu repot-repot menginstall paket-paket dependensi tersebut secara manual…

Menginstall paket beserta dependensi-nya


Lihat gambar diatas, ketika saya menginstall browser chromium, terdapat beberapa paket dependensi yang ikut diinstall, saya cukup mengetikan Y dan browser chromuim beserta seluruh paket dependensinya juga ikut diinstall secara otomatis, tanpa harus saya mencari-cari secara manual.

Nah yang jadi masalah disini andalah, kemudahan dan ke-otomatisan ini tidak kita dapatkan saat kita mengcompile paket yang disimpan dalam bentuk tarball, jadi ketika kita akan mengcompile sebuah program kita harus mencari dan menginstall sendiri paket dependensinya secara manual.

Inilah yang kadang membuat bingung dan stress, apalagi jika sebuah program tidak memiliki dokumentasi yang baik, kan kita bingung mencari-cari nih program paket dependensinya apaan aja…? walaupun memang tidak sedikit program yang memiliki dokumentasi yang baik dan lengkap sehingga untuk menginstall dependensi paketnya kita tidak akan menemui kesulitan karena tinggal ngikut petunjuk yang tertera di dokumentasi saja, apalagi jika sudah disediakan perintahnya, kan tinggal copy paste aja…:D (tapi jadinya nggak belajar kan….? ).

Namun intinya, dependensi paket ini merupakan masalah tersendiri (sesuatu banget…:D) yang harus kita hadapi dan pecahkan saat kita memutuskan untuk meng-compile sebuah program, Lalu bagaimana pemecahan masalahnya…??

4.1 Pemecahan masalah super manual

Masalah dependensi paket dapat kita selesaikan dengan cara super manual, yang artinya ini akan sangat merepotkan anda, karena kita harus mencari paket atau libraries yang dibutuhkan, lalu mendownloadnya , kemudian menginstallnya secara manual.

Untuk meringankan beban pekerjaan kita , kita bisa meminta bantuan synaptic package manager, untuk itu anda harus menginstall synaptic package manager dulu ya..

Lalu mulailah mencari paket-paket atau libraries yang diminta oleh ./configure melalui bantuan synaptic, jika paket-paket tersebut ada di repo anda, Alhamdulillah beban pekerjaan anda bisa lebih ringan, tapi jika nggak ada ya terpaksa anda cari secara manual dengan bantuan om google..:D.

paket-paket atau libraries yang diminta oleh ./configure adalah paket developmentnya (-dev), misalnya ./configure memberitahukan anda bahwa anda harus menginstal libpopt , setelah anda cari pada synaptic ternyata ada dua entri yang menggunakan nama libpopt , yang mana yang diinstall nih…? nah ingat, anda harus menginstal paket development-nya, untuk itu pilih paket yang ada akhiran -dev nya. (libpopt-dev),

Cari paket yang anda butuhkan pada kolom quick filter


Begitu juga dengan libraries lainnya yang mungkin saja diminta oleh si ./configure

Setelah anda memenuhi permintaan ./configure, dengan menginstall libraries yang dibutuhkan, lakukan ./configure kembali, jika paket-paket dependensi dan libraries yang dibutuhkan oleh program yang ingin anda compile belum terinstall semuanya disistem anda, maka ./configure akan terus menerus mengeluarkan pesan error, ya anda harus memenuhi permintaan yang muncul pada pesan error tersebut, karena jika proses ./configure ini tidak sukses maka anda tidak bisa melanjutkan ke proses selanjutnya…

 

4.2 Cara semi manual

Cara termudah untuk menyelesaikan masalah dependensi paket adalah menggunakan auto-apt, auto-apt dapat mencari paket-paket yang dibutuhkan oleh sebuah program agar dapat berjalan dengan sempurna secara otomatis, jika semuanya berlangsung secara otomatis mengapa saya menamakan cara ini adalah cara semi manual…??? ya karena ke-otomatis-an auto-apt ini juga terbatas, terkadang ada beberapa paket atau libraries yang tidak bisa di download secara otomatis oleh auto-apt, apalagi paket atau libraries tersebut tidak tersedia di repo, jika hal ini terjadi maka anda harus mencarinya secara manual. Itulah mengapa saya menyebut cara ini semi otomatis, karena anda tidak bisa melepaskan jari anda seratus persen dalam prosesnya….cara ini tetap membutuhkan input dan perhatian dari anda.

Namun walaupun demikian, cara ke dua ini jauh lebih praktis dan hemat waktu ketimbang cara super manual diatas. Anda bisa merasakan sendiri nanti bedanya….

Satu hal lagi yang perlu anda catat, bahwa tingkat keberhasilan cara ini tidaklah 100%, ada kalanya sebuah program tidak bisa di compile dengan cara ini, dan jika itu terjadi anda harus menggunkan cara super manual diatas. Tapi tidak ada salahnya anda mencoba dengan cara ini terlebih dahulu ketika meng-compile sebuah source code

Okeh yuk kita bahas bagaimana menggunakan auto-apt

Pertama kita install dulu auto-apt kedalam sistem anda.

sudo apt-get install auto-apt
sudo auto-apt update
sudo auto-apt updatedb && sudo auto-apt update-local

tunggu proses instalasi selesai, baru kita bisa menggunakan auto-apt dalam proses ./configure

 

4.3 penggunaan auto-apt

jika dengan menggunakan cara super manual kita harus mendownload dan mengecek satu persatu dependensi paket yang belum terinstall pada sistem anda, nah dengan menggunakan auto-apt kita bisa meminimalisir “kerepotan” tersebut, caranya…?? caranya dengan menggunakan auto-apt untuk melakukan ./configure.

Setelah anda meng-extract source code dan melakukan perpindahan direktori dengan cd, lakukan ./configure dengan menggunakan perintah berikut:

sudo auto-apt run ./configure

auto-apt akan melakukan ./configure seperti biasa,  hanya saja kali ini paket-paket dependensi yang dibutuhkan akan terinstall secara otomatis, ditandai dengan munculnya jendela-jendela terminal baru yang memberikan informasi bahwa saat ini sistem sedang melakukan download dan instalasi paket.

Namun terkadang, auto-apt tidak dapat menyelesaikan proses ini secara otomatis (failed), jika hal ini terjadi maka anda harus menginstall paket yang dibutuhkan secara manual, tapi anda tidak perlu menggunakan synaptic karena anda bisa menggunakan fungsi search yang ada pada auto-apt (CLI based)

Oke , untuk menggunakan fitur search dari auto-apt silahkan anda gunakan perintah berikut :

auto-apt search namalibraries

jadi misalkan saat proses ./configure anda diminta untuk menginstall libraries libpopt, maka untuk mencari libraries tersebut anda bisa mengetikan perintah

auto-apt search libpopt

hasil pencarian akan muncul pada terminal anda, pilihlah libraries dengan akhiran -dev, lalu gunakan perintah apt-get untuk menginstall libraries tersebut

sudo apt-get install libpopt-dev


4.4 Cara super cepat

Cara ini hanya berlaku jika program yang akan anda compile terdaftar di repositories ubuntu anda, misalnya anda ingin mengisntall vlc, sebenarnya program ini ada di repo ubuntu anda, anda sebenernya bisa dengan mudah menginstall vlc, tapi karena anda kepengen belajar bagaimana sih cara meng-compile sebuah source code, maka anda pun mendownload source codenya kemudian mencoba untuk mengcompilenya sendiri.

Ketika proses ./configure, anda diminta agar menginstall berbagai macam libraries atau dependensi paket yang dibutuhkan oleh VLC agar bisa di compile, nah karena VLC ada di repositories ubuntu maka anda bisa dengan sangat cepat menyelesaikan masalah ini, caranya anda cukup mengetikan perintah berikut:

sudo apt-get build-dep nama-program

karena nama program kita adalah VLC maka

sudo apt-get build-dep vlc

dan libraries serta paket-paket dependensi yang dibutuhkan oleh vlc semuanya akan terinstall secara otomatis.

 

5. compile

jika proses ./configure berhasil maka akan terbentuk makefile, makefile inilah yang anda butuhkan untuk dapat compile program, jika anda sudah sampai pada tahap 4 ini, maka anda sudah boleh bernafas lega, karena tahapan terberat dari proses compile sudah berhasil anda lewati dengan selamat. Untuk melakukan compile program gunakan perintah:

sudo make


6. install program

proses compile selesai, itu bukan berarti program sudah terinstall di komputer anda, program baru berhasil di “terjemahkan” tapi belum terpasang pada sistem anda (baca kembali pengertian compile ubuntu from zero 1). Nah untuk menginstall program gunakan perintah :

sudo make install
build .deb

tahap ini merupakan tahap optional, artinya anda boleh melakukannya boleh juga nggak, setelah anda berhasil menginstall sebuah program melalui proses compiling, anda bisa menyimpan paket program yang telah berhasil anda compile tersebut kedalam bentuk .deb, jadi jika nanti anda install ulang, anda nggak perlu compile dari awal lagi, karena anda sudah punya versi .deb nya, tinggal double klik aja ntar…

lagi pula dengan membuat versi .deb nya anda nanti bisa mendistribusikannya, itung-itung nambah amal lah…dengan meringankan kesulitan orang lain yang belum bisa melakukan compiling sebuah source code.

Okeh, agar program yang sudah berhasil anda compile dan install juga dibuat paket .debnya maka anda tinggal mengetikan command berikut :

Sudo checkinstall

Dan tunggu proses building hingga selesai, anda nanti akan diberitahu oleh terminal hasil building .deb anda disimpan dimana.

 

Related Posts

Tidak ada komentar:

Posting Komentar