Wiki Pengembangan Proyek BlankOn

Tim Pengembang

Wiki

Tujuan

Dokumen ini menjelaskan langkah-langkah pembuatan paket Debian sederhana.

Pengetahuan dasar

Pengetahuan akan hal-hal berikut akan membantu Anda membuat paket Debian dengan benar:

Dalam dokumen ini diasumsikan paket khayalan yang dibangun menggunakan autotools.

Peralatan

Silakan mulai dengan menginstal peralatan berikut:

Mulai bekerja

Siapkan paket yang belum ada paket Debiannya. Ciri-cirinya adalah dengan tidak ada direktori DEBIAN atau debian di dalamnya. Misalnya kita punya perangkat lunak bernama labusiyam. Perangkat lunak ini menggunakan autotools (ciri-cirinya, dibangun dengan cara ./configure kemudian make dan make install).

Pendataan berkas yang diinstal

Saat melakukan make install perangkat lunak ini akan menginstal:

Tahu dari mana bahwa berkas-berkas di atas yang diinstal? Silakan tengok Makefile.am di seluruh direktori yang ada di dalam kode sumbernya. Ciri-ciri berkas yang diinstal adalah berkas yang ada didefinisikan dalam variabel:

 configdir = $(sysconf)
 config_DATA = config.txt

berarti berkas-berkas yang ada di dalam variabel berikutnya (yang tanpa kata dir akan diinstal ke dalam direktori itu). Semua berkas yang akan diinstal harus dicatat dengan baik.

Pengategorian paket

Dalam daftar berkas ada tiga jenis paket yang akan kita buat:

Jadi dalam kasus kita kita akan buat paket-paket berikut:

X dalam liblabusiyamX belum kita ketahui. Namun nilainya dapat kita cari dengan cara:

 $ make                              #asumsi proses berjalan lancar
 $ cd src/.libs                      #asumsi lokasinya ada di src/
 $ objdump -x liblabusiyam.so.0.0.1 | grep SONAME

Perintah di atas akan menghasilkan sesuatu seperti

SONAME     liblabusiyam.so.0

Angka terakhir itulah (0) yang dijadikan X. Jadi daftar final paket kita adalah:

Pendefinisian paket

 mkdir debian 
 cd debian 
 touch changelog control rules 
 chmod +x rules 
 touch labusiyam.install labusiyam0.install labusiyam-dev.install 
 echo 4 > compat 

Sekarang kalau dilihat kita akan lihat:

ls -l

hasilnya:

total 8 
-rw-r--r-- 1 mdamt mdamt    0 2007-07-11 16:07 changelog 
-rw-r--r-- 1 mdamt mdamt    2 2007-07-11 16:07 compat 
-rw-r--r-- 1 mdamt mdamt    0 2007-07-11 16:07 control 
-rw-r--r-- 1 mdamt mdamt    0 2007-07-11 16:07 labusiyam0.install 
-rw-r--r-- 1 mdamt mdamt    0 2007-07-11 16:07 labusiyam-dev.install 
-rw-r--r-- 1 mdamt mdamt    0 2007-07-11 16:07 labusiyam.install 
-rwxr-xr-x 1 mdamt mdamt    0 2007-07-11 16:07 rules 

Membuat program pembangun paket

Sunting berkas rules. Isikan informasi berikut:

#!/usr/bin/make -f 

include /usr/share/cdbs/1/rules/debhelper.mk 
include /usr/share/cdbs/1/class/autotools.mk 

DEB_DH_STRIP_ARGS := --dbg-package=liblabusiyam0 --dbg-package=labusiyam

Berkas di atas menandakan bahwa pembangunan paket akan menggunakan skrip cdbs. Di situ juga didefinisikan dua paket debug yang kita punya.

Membuat definisi paket

Sunting berkas control. Isikan informasi berikut:

Source: labusiyam 
Section: base 
Priority: optional 
Maintainer: Prajurit Ryan <ryan@private.tentara.mil> 
Build-Depends: debhelper, cdbs, pkg-config, libgtk2.0-dev 
Standards-Version: 3.6.0 

Package: labusiyam 
Section: base 
Architecture: any 
Depends: ${shlibs:Depends}, ${misc:Depends},  
Description: Labusiyam 
Labusiyam digunakan untuk membuat sayur. 

Package: liblabusiyam0 
Section: base 
Architecture: any 
Depends: ${shlibs:Depends}, ${misc:Depends},  
Description: Pustaka Labusiyam 
Pustaka Labusiyam digunakan untuk membuat sayur lainnya. 

Package: labusiyam-dev 
Section: base 
Architecture: all 
Depends: ${shlibs:Depends}, ${misc:Depends},  
Description: Pengembangan Labusiyam 
Paket ini digunakan untuk membantu pembuatan sayur lain. 

Perhatikan untuk mengisi kolom-kolom Section, Architecture, dan Build-Depends dengan benar. Mari kita lihat satu-persatu:

Mendaftarkan berkas

Selanjutnya adalah mendaftarkan berkas yang akan diinstal dalam masing-masing paket. Mari kita sunting berkas-berkas berikut dan mengisinya dengan informasi yang juga diberikan di bawah.

Membuat catatan versi

Sunting berkas changelog, isikan:

labusiyam (0.0.1-0blankon1) konde; urgency=low 

/* New release. 
  
 -- Prajurit Ryan <ryan@private.tentara.mil>  Wed,  4 Jul 2007 11:37:37 +0300

Perhatikan bahwa penulisan tanggal harus dilakukan dengan bentuk seperti di atas. Silakan konsultasi dengan manual Debian untuk lebih jelasnya. Perhatikan di mana harus menulis spasi dan di mana tidak. Penomoran nomor versi bergantung dengan konvensi distribusi. Kata konde di atas menandakan bahwa paket ini ditujukan untuk distribusi konde. Pada Debian biasanya menggunakan unstable atau testing.

Membangun paket

Sekarang mari kita bangun paketnya:

cd ..    '''#tadi ada di dalam direktori debian/ sekarang kita naik satu tingkat''' 
dpkg-buildpackage -rfakeroot 

Bila tidak ada aral melintang, maka dalam direktori atasnya lagi kita akan punya berkas-berkas berikut:

 * labusiyam_0.0.1-0ubuntu1_i386.deb 
 * liblabusiyam0_0.0.1-0ubuntu1_i386.deb 
 * liblabusiyam-dev_0.0.1-0ubuntu1_all.deb 
 * liblabusiyam0-dbg_0.0.1-0ubuntu1_i386.deb 
 * labusiyam-dbg_0.0.1-0ubuntu1_i386.deb 
 * labusiyam_0.0.1-0ubuntu1.dsc 
 * labusiyam_0.0.1-0ubuntu1.tar.gz

Pengecekan

Pengecekan perlu kita lakukan pada tiap-tiap paket yang dihasilkan guna memastikan bahwa paket-paket tersebut berisi berkas-berkas yang benar.

Pengecekan daftar isi

Mengeceknya mudah. Gunakan perintah:

dpkg --contents nama-berkas.deb

Dalam hasil keluaran biasanya akan muncul bahwa ada berkas bernama changelog.gz, changelog.Debian.gz, dan copyright. Ini tidak apa-apa. Namun pastikan bahwa berkas-berkas yang sudah kita masukkan ke dalam berkas *.install benar-benar ada dalam hasil keluarannya.

Pengecekan instalasi

Cek dengan menginstal paket tersebut:

sudo dpkg -i nama-berkas.deb

Biasanya masalah yang timbul disini adalah ketidakcocokan dalam ketergantungan paket, dsb.

Pengecekan kesalahan lain

Gunakan perangkat lunak khusus pengecekan paket, misalnya linda atau lintian. Caranya silakan lihat halaman manualnya masing-masing.

Ada pertanyaan?

Silakan tanya ke milis ubuntu-id@… dengan subyek [PAKET].

Tautan penting


Konten ini dilisensikan di bawah CC-BY. [ sunting ]



Fajar baru perangkat lunak legal dan kreatif, untuk, dan oleh anak negeri