Kuliax

GNU/Linux untuk Kampus

Alat Pengguna

Alat Situs


devel:pkg:build:manual

Perbedaan

Ini menunjukkan perbedaan antara versi yang terpilih dengan versi yang sedang aktif.

Tautan ke tampilan pembanding ini

devel:pkg:build:manual [2008/12/30 14:55]
devel:pkg:build:manual [2008/12/30 14:55] (sekarang)
Baris 1: Baris 1:
 +====== 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 [[https://nm.debian.org/|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:<code>$ apt-cache search [kata kunci]</code>
 +  * Kunjungi situs aplikasi atau pustaka yang ingin kita paketkan ke Kuliax. Kita ambil aplikasi [[http://www.csse.uwa.edu.au/cnet/|cnet]] sebagai contoh saja ;-)
 +  * Periksa lisensi dari aplikasi atau pustaka dan ketersediaan kode sumber di situsnya. Cnet berlisensi GNU GPL versi 2, lihat [[http://www.csse.uwa.edu.au/cnet/install.html|Downloading and installing cnet]] sebelum bagian Requirements.
 +
 +===== Pengunduhan Aplikasi/Pustaka =====
 +  * Buat direktori tempat kita akan bekerja dengan paket cnet dan masuklah ke direktori tersebut.<code>$ mkdir kuliax-devel
 +$ cd kuliax-devel/</code>
 +  * Unduh paket sumber aplikasi atau pustaka yang ingin kita paketkan ke Kuliax.<code>$ wget -c http://www.csse.uwa.edu.au/cnet/cnet-2.0.10.tgz</code>
 +
 +===== 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>.<code>$ mkdir cnet-2.0.10
 +$ tar zxvf cnet-2.0.10.tgz -C cnet-2.0.10/</code>
 +  * Masuk ke direktori cnet-2.0.10/<code>$ cd cnet-2.0.10/</code>
 +  * 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|Modifikasi Kode Sumber]]
 +
 +===== Debianisasi =====
 +  * Set variabel DEBFULLNAME dan DEBEMAIL yang akan digunakan dh_make<code>$ export DEBFULLNAME="Iwan Setiawan" DEBEMAIL="stwn@NOSPAMkuliax.org"</code>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<code>$ dh_make -c gpl -e stwn@NOSPAMkuliax.org -s -f ../cnet-2.0.10.tgz</code><code>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 / .</code>
 +
 +===== Modifikasi Kode Sumber =====
 +
 +===== Penyuntingan Berkas di debian/ =====
 +  * Masuk ke direktori debian/<code>$ cd debian/</code>
 +  * Hapus berkas-berkas contoh berekstensi .ex dan .EX yang tidak diperlukan.<code>$ rm *.ex *.EX</code>
 +  * 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<code>$ gpg --gen-key</code><code>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:    signed:    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</code>
 +
 +
 +===== Pembangunan Paket Debian =====
 +
 +  * Lakukan pembangunan paket dengan perintah:<code>$ fakeroot debuild</code> atau <code>$ fakeroot debian/rules binary</code>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<code>$ cd paket-0.1.2/
 +$ dch -i</code>
 +  * Mutakhirkan berkas yang diperlukan
 +  * Bangun ulang paket debian
 +
 +
 +
 +===== Referensi =====
 +  * [[http://www.debian.org/doc/manuals/developers-reference/index.en.html|Debian Developer's Reference]]
 +  * [[http://www.debian.org/doc/devel-manuals|Debian New Maintainers' Guide]]
 +  * [[http://www.debian.org/doc/debian-policy/|Debian Policy Manual]]
 +  * [[http://wiki.debian.org/HowToPackageForDebian|HowToPackageForDebian]]
 +  * [[http://www.youtube.com/user/ubuntudevelopers|Learning MOTU*]]
 +  * [[http://people.debian.org/~walters/descriptions.html|Writing Debian package descriptions]]
devel/pkg/build/manual.txt ยท Terakhir diubah: 2008/12/30 14:55 (Perubahan eksternal)