Kuliax

GNU/Linux untuk Kampus

Alat Pengguna

Alat Situs


devel:pkg:backport

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

  1. Unduh paket sumber aplikasi yang akan kita backport
    apt-get source aplikasi
  2. Masuk ke direktori hasil ekstrak
    cd aplikasi-1.0/
  3. 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
  4. Bangun paket sumber Debian untuk aplikasi tersebut
    debuild -S -sa

    Tanda tangani .dsc dan .changes dengan kunci GPG yang sudah dibuat

  5. Kembali ke direktori parent dan bangun aplikasi dengan pbuilder
    cd ..
    sudo pbuilder build aplikasi_1.0-2kuliax1.dsc
  6. Hasil paket biner .deb, sumber .orig*, .dsc, dan .changes akan tersedia di direktori BUILDRESULT
  7. 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:

    1. apt-get source [paket] atau wget [pohon direktori paket]
    2. dpkg-source -x [paket], jika pengembang menggunakan wget
    3. cd [paket]/ dan modifikasi sumber jika diperlukan
    4. dch -v [versi paket upstream]kuliaxY -D [distribusi kuliax] –force-distribution
    5. debuild -S -sa dan pbuilder ../[paket]kuliaxY.dsc
1) Opsi -v adalah revisi paket, karena kita melakukan backport maka kita perlu membedakan dengan paket resmi Debian supaya tidak terjadi konflik. Standar Kuliax adalah $versi_upstream-XkuliaxY, dimana X adalah revisi paket Debian dan Y adalah revisi paket Kuliax.
devel/pkg/backport.txt · Terakhir diubah: 2010/03/19 02:07 oleh stwn