Melakukan Backport Paket
Halaman ini berisi informasi dari awal sampai akhir bagaimana melakukan backport paket atau membangun kembali paket Debian dari rilis testing atau unstable ke stable secara bersih dengan pbuilder dan alat-alat standar pemaketan di sistem Debian.
Untuk penjelasan rinci mengenai proses backport secara manual lihat halaman ini.
Tujuan
Tujuan kita melakukan backport paket adalah keinginan untuk menggunakan program dengan versi terbaru di sistem dengan rilis lama, misal melakukan backport KTechlab 0.3.7 dari rilis testing (squeeze) agar dapat dijalankan di sistem dengan rilis stable (lenny).
Backport adalah proses membangun ulang program dari rilis terbaru tetapi dengan dependensi pustaka pada rilis lama. Jika saat proses pembangunan paket dibutuhkan pustaka yang hanya terdapat di rilis baru, maka kita perlu melakukan backport terhadap pustaka tersebut terlebih dahulu.
Kebutuhan
- Debian 5.0 (lenny) dan repositori paketnya. Isi dari /etc/apt/sources.list
deb http://repo/debian/ stable main contrib non-free
- Paket-paket pengembangan: build-essential, debhelper, debootstrap/cdebootstrap, devscripts, fakeroot, gpg, pbuilder
- Paket-paket pengujian pemaketan: linda dan lintian
- Ruang penyimpan yang cukup, tergantung seberapa besar program dan komponen yang akan dibangun, termasuk direktori temporer /tmp
- Kunci GPG pemaket
Persiapan
- Konfigurasikan pbuilder untuk pembangunan paket
- Tambahkan deb-src selain deb yang sudah ada khususnya untuk testing dan unstable, pada berkas /etc/apt/sources.list
deb-src http://repo/debian/ testing main contrib non-free deb-src http://repo/debian/ unstable main contrib non-free
- Lakukan APT pinning dengan prioritas ke rilis stable, sunting berkas /etc/apt/preferences
Package: * Pin: release a=stable Pin-Priority: 300 Package: * Pin: release a=testing Pin-Priority: 200 Package: * Pin: release a=unstable Pin-Priority: 100
- Mutakhirkan indeks paket dengan perintah
apt-get update
Langkah-Langkah
- Unduh paket sumber aplikasi yang akan kita backport
apt-get source aplikasi
- Masuk ke direktori hasil ekstrak
cd aplikasi-1.0/
- Ubah dan simpan berkas changelog yang berisi catatan perubahan pada paket atau kode sumber. Jalankan perintah1)
dch -v 1.0-2kuliax1
Isi changelog dengan catatan backport misal
* Rebuild from squeeze against lenny, for Kuliax
- Bangun paket sumber Debian untuk aplikasi tersebut
debuild -S -sa
Tanda tangani .dsc dan .changes dengan kunci GPG yang sudah dibuat
- Kembali ke direktori parent dan bangun aplikasi dengan pbuilder
cd .. sudo pbuilder build aplikasi_1.0-2kuliax1.dsc
- Hasil paket biner .deb, sumber .orig*, .dsc, dan .changes akan tersedia di direktori BUILDRESULT
- Tanda tangani .dsc dan .changes hasil pbuilder jika diinginkan, dengan perintah
debsign -kKEY *.changes debsign -kKEY *.dsc
Contoh Proses Backport
Catatan
- Dalam melakukan proses backport, pemaket akan banyak berhubungan dengan dependensi, apalagi jika program yang dibangun melibatkan banyak komponen. Jadi, pemaket membutuhkan kesabaran dan kegigihan dalam melakukannya. Bersyukurlah, kita sudah dibantu pbuilder

- Gunakan perintah `dpkg-deb` untuk memeriksa isi paket .deb
- Gunakan perintah `apt-cache showpkg [paket[` untuk menampilkan informasi paket: versi, dependensi, …
Package: gwenview Versions: 1.4.2-5+b1 (/var/lib/apt/lists/_media_repo_stable_dists_stable_main_binary-i386_Packages) (/var/lib/dpkg/status) Description Language: File: /var/lib/apt/lists/_media_repo_stable_dists_stable_main_binary-i386_Packages MD5: 51d126d64394176f9446caa85b2a2d9d Reverse Depends: gwenview-i18n,gwenview 1.4.0-1 gwenview-i18n,gwenview 1.4.2 education-desktop-kde,gwenview Dependencies: 1.4.2-5+b1 - kdelibs4c2a (2 4:3.5.9) libart-2.0-2 (2 2.3.18) libaudio2 (0 (null)) libc6 (2 2.7-1) libexiv2-4 (0 (null)) libexpat1 (2 1.95.8) libfontconfig1 (2 2.4.0) libfreetype6 (2 2.3.5) libgcc1 (2 1:4.1.1) libice6 (2 1:1.0.0) libidn11 (2 0.5.18) libjpeg62 (0 (null)) libkipi0 (0 (null)) libmng1 (2 1.0.3-1) libpng12-0 (2 1.2.13-4) libqt3-mt (2 3:3.3.8b) libsm6 (0 (null)) libstdc++6 (2 4.1.1) libx11-6 (0 (null)) libxcursor1 (4 1.1.2) libxext6 (0 (null)) libxft2 (4 2.1.1) libxi6 (0 (null)) libxinerama1 (0 (null)) libxrandr2 (0 (null)) libxrender1 (0 (null)) libxt6 (0 (null)) zlib1g (2 1:1.1.4) gwenview-i18n (0 (null)) kdegraphics-kfile-plugins (0 (null)) kipi-plugins (0 (null)) Provides: 1.4.2-5+b1 - Reverse Provides: - Jika paket sumber adalah hasil dari "wget" dengan semua kelengkapan berkas paket debian, gunakan perintah
dpkg-source -x [paket].dsc
Untuk mengekstrak paket dengan sebelumnya memeriksa checksum dan kelengkapan yang ada. Sehingga untuk melakukan backport ada beberapa langkah praktis:
- apt-get source [paket] atau wget [pohon direktori paket]
- dpkg-source -x [paket], jika pengembang menggunakan wget
- cd [paket]/ dan modifikasi sumber jika diperlukan
- dch -v [versi paket upstream]kuliaxY -D [distribusi kuliax] –force-distribution
- debuild -S -sa dan pbuilder ../[paket]kuliaxY.dsc