Membangun Paket Debian
Status: in progress
Halaman ini berisi langkah-langkah untuk membangun paket Debian dari awal dengan standar yang benar-benar Debian.
Diharapkan pengembang Kuliax dapat menggunakan, mengembangkan, dan memeliharanya untuk menghasilkan paket Debian yang OK. Jika dimungkinkan bisa saja pengembang Kuliax dapat melamar juga menjadi pengembang Debian lewat prosedur Debian New Maintainer.
Ke depan, langkah-langkah ini bisa dijadikan secara otomatis menjadi sebuah sistem dimana pengembang tinggal memberikan masukan dan mendapatkan keluaran paket Debian.
Kebutuhan Mesin
- Minimal mesin x86 600 MHz dengan RAM 128 MB atau lebih tinggi
- Terinstal Debian GNU/Linux 4.0r3, sebaiknya dimutakhirkan ke testing/lenny
- Tersedia ruang disk cukup untuk menyimpan kode sumber dan hasil pembangunan paket
Kebutuhan Perangkat Lunak
- build-essential, paket ini hanyalah meta-package yang akan menginstal paket-paket dasar untuk melakukan pengembangan yaitu dpkg-dev, gcc, g++, libc6-dev, make
- Paket-paket yang direkomendasikan untuk mempermudah proses pembangunan paket, dan administrasi: debhelper, deborphan, dh-make, devscripts, fakeroot, gnupg.
- Paket-paket untuk pemeriksaan paket .deb yang dihasilkan: linda, lintian
- Paket opsional: cdbs, pbuilder
Pemilihan dan Pemeriksaan Aplikasi/Pustaka
- Periksa dan pastikan bahwa aplikasi atau pustaka yang ingin kita paketkan tidak ada di dalam repositori Debian dan kita ingin menyertakannya di Kuliax. Paling tidak kita akan memaketkan aplikasi, skrip, pustaka, karya seni yang dibuat khusus di Kuliax. Gunakan perintah:
$ apt-cache search [kata kunci]
- Kunjungi situs aplikasi atau pustaka yang ingin kita paketkan ke Kuliax. Kita ambil aplikasi cnet sebagai contoh saja

- Periksa lisensi dari aplikasi atau pustaka dan ketersediaan kode sumber di situsnya. Cnet berlisensi GNU GPL versi 2, lihat Downloading and installing cnet sebelum bagian Requirements.
Pengunduhan Aplikasi/Pustaka
- Buat direktori tempat kita akan bekerja dengan paket cnet dan masuklah ke direktori tersebut.
$ mkdir kuliax-devel $ cd kuliax-devel/
- Unduh paket sumber aplikasi atau pustaka yang ingin kita paketkan ke Kuliax.
$ wget -c http://www.csse.uwa.edu.au/cnet/cnet-2.0.10.tgz
Ekstrak dan Uji Coba
- Paket cnet-2.0.10.tgz ketika diekstrak, isinya akan tersebar pada direktori kerja bukan pada sebuah direktori dengan nama cnet-2.0.10/, tentu saja jika Anda sudah mencobanya.
- Buat direktori paket terlebih dahulu. Perhatikan bahwa standar untuk penamaan dan versi paket adalah <nama paket>-<versi>.
$ mkdir cnet-2.0.10 $ tar zxvf cnet-2.0.10.tgz -C cnet-2.0.10/
- Masuk ke direktori cnet-2.0.10/
$ cd cnet-2.0.10/
- Cobalah membaca dokumentasi yang tersedia seperti README atau sejenisnya untuk mencari tahu bagaimana mengkompilasi, menginstal, dan lokasi instalasi di dalam sistem. Umumnya kode sumber aplikasi disertai dengan skrip configure untuk mengkonfigurasi lingkungan kompilasi dan dependensi. Tiga langkah yang umum digunakan adalah: ./configure-make-make install

- Pada paket cnet direktori dokumentasi ada di DOC/. Coba untuk melakukan kompilasi dan catat pesan kesalahan, periksa dan telusuri permasalahan. Buat tambalan jika kita mengubah berkas pada kode sumber. Detail selanjutnya bisa lihat ke Modifikasi Kode Sumber
Debianisasi
- Set variabel DEBFULLNAME dan DEBEMAIL yang akan digunakan dh_make
$ export DEBFULLNAME="Iwan Setiawan" DEBEMAIL="stwn@NOSPAMkuliax.org"
Masukkan ke .bashrc jika kita ingin variabel-variabel tersebut terset secara otomatis ketika kita login.
- Jika semuanya baik-baik saja, lakukan debianisasi dengan dh-make
$ dh_make -c gpl -e stwn@NOSPAMkuliax.org -s -f ../cnet-2.0.10.tgz
Maintainer name : Iwan Setiawan Email-Address : stwn@NOSPAMkuliax.org Date : Sun, 29 Jun 2008 15:11:00 +0700 Package Name : cnet Version : 2.0.10 License : gpl Using dpatch : no Type of Package : Single Hit <enter> to confirm: y Done. Please edit the files in the debian/ subdirectory now. You should also check that the cnet Makefiles install into $DESTDIR and not in / .
Modifikasi Kode Sumber
Penyuntingan Berkas di debian/
- Masuk ke direktori debian/
$ cd debian/
- Hapus berkas-berkas contoh berekstensi .ex dan .EX yang tidak diperlukan.
$ rm *.ex *.EX
- Sunting berkas-berkas di dalam direktori debian/, ini adalah berkas-berkas yang diperlukan untuk membangun paket debian
- changelog: catatan perubahan paket
- control: berkas kontrol berisi informasi paket dari nama paket, dependensi, sampai dengan deskripsi. Pastikan sesuai dengan aturan yang ada di dokumen New Maintainer's Guide dan Debian Policy.
- copyright: berkas berisi informasi pengarang, hak cipta, dan lisensi aplikasi/pustaka. Isilah dengan benar dan periksa kesahihan sumbernya.
- rules: aturan-aturan pembangunan paket, mirip dengan Makefile. Gunakan skrip helper Debian sebisa mungkin

- Berkas-berkas lain yang diperlukan seperti dir untuk membuat direktori, docs untuk nama berkas dokumentasi, dst.
Pembuatan Kunci GPG
- Buat kunci GPG jika kita belum sama sekali membuatnya. Kunci GPG dibuat untuk melakukan penandatangan dan otentifikasi terhadap paket yang kita buat dan berkas-berkas yang berhubungan. Jika Anda sudah mempunyai kunci GPG lewati saja bagian ini.
- Ketik perintah untuk menghasilkan kunci GPG dan ikut langkah-langkahnya
$ gpg --gen-key
gpg (GnuPG) 1.4.6; Copyright (C) 2006 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. Please select what kind of key you want: (1) DSA and Elgamal (default) (2) DSA (sign only) (5) RSA (sign only) Your selection? DSA keypair will have 1024 bits. ELG-E keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) Requested keysize is 2048 bits Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) 0 Key does not expire at all Is this correct? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" Real name: Iwan Setiawan Email address: stwnNOSPAM@NOSPAMkuliax.NOSPAMorg Comment: stwn You selected this USER-ID: "Iwan Setiawan (stwn) <stwnNOSPAM@NOSPAMkuliax.NOSPAMorg>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O You need a Passphrase to protect your secret key. We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. ++++++++++++++++++++.+++++++++++++++.++++++++++++++++++++.+++++....+++++..+++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++>+++++.+++++........+++++ We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. .++++++++++..+++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++.+++++++++++++++++++++++++.+++++..+++++.+++++++++++++++.+++++>+++++..+++++>..+++++...<+++++..........>..+++++....................+++++^^h^^ gpg: key 301A3CAF marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u pub 1024D/301A3CAF 2008-06-13 Key fingerprint = 5B0B FFDE B470 C54E 4CB6 B938 E328 A6D6 301A 3CAF uid Iwan Setiawan (stwn) <stwnNOSPAM@NOSPAMkuliax.NOSPAMorg> sub 2048g/44E05D80 2008-06-13
Pembangunan Paket Debian
- Lakukan pembangunan paket dengan perintah:
$ fakeroot debuild
atau
$ fakeroot debian/rules binary
Jika ada dependensi atau pesan kesalahan segera perbaiki, sesuaikan dengan instruksinya
Ujicoba Paket Debian
Gunakan linda dan lintian
Pemutakhirkan Paket
- Gunakan dch untuk melakukan catatan perubahan paket
$ cd paket-0.1.2/ $ dch -i
- Mutakhirkan berkas yang diperlukan
- Bangun ulang paket debian