Menggunakan program dengan versi terbaru di sistem dengan rilis lama, misal menjalankan OpenOffice.org 3.1.1 dari rilis unstable di sistem dengan rilis stable.
Cara yang umum digunakan adalah membangun ulang program dari rilis terbaru dengan dependensi pustaka pada rilis lama. Jika dibutuhkan pustaka yang hanya terdapat di rilis baru, kita perlu melakukan backport terhadap pustaka tersebut.
Cara yang paling cepat untuk menjalankan program dengan versi baru di sistem dengan rilis stable adalah menggunakan repositori backports yang sudah disediakan oleh backports.org dan repo lainnya seperti debian-unofficial, apt-get.org.
Pengembang diharapkan menggunakan paket-paket yang sudah di-backport dari backports.org untuk menghindari aktivitas yang berulang (reinventing the wheel) dan masalah keamanan isi paket (trust).
Jadi yang perlu dilakukan adalah:
Untuk melihat daftar kunci gpg
gpg --list-keys
/home/stwn/.gnupg/pubring.gpg ----------------------------- pub 1024D/F0D6B1E0 2004-06-06 uid TrueCrypt Foundation <contact@truecrypt.org> sub 4077g/6B136ECF 2004-06-06 pub 1024D/517D0F0E 2000-10-10 uid Linux Kernel Archives Verification Key <ftpadmin@kernel.org> sub 4096g/E50A8F2A 2000-10-10 pub 1024D/16BA136C 2005-08-21 uid Backports.org Archive Key <ftp-master@backports.org> sub 2048g/5B82CECE 2005-08-21
Untuk mengekspor kunci gpg backports ke format teks ascii adalah dengan perintah
gpg --armor export 16BA136C > backports.asc
deb-src http://repo/debian/ stable main contrib non-free deb-src http://repo/debian/ testing main contrib non-free deb-src http://repo/debian/ unstable main contrib non-free
Package: * Pin: release a=stable Pin-Priority: 300 Package: * Pin: release a=testing Pin-Priority: 200 Package: * Pin: release a=unstable Pin-Priority: 100
apt-get update
apt-get build-dep paket
apt-get -b source paket
Aplikasi yang digunakan sebagai contoh backport adalah KTechlab. Kita akan melakukan proses backport dari rilis unstable Debian ke stable.
Masalah yang dihadapi adalah pada versi lama program ini terdapat kutu yang membuat crash saat komponen dimasukkan ke lembar kerja, selain itu terdapat versi baru dari upstream pada bulan November 2009.
sudo apt-get build-dep ktechlab
dpkg-checkbuilddeps?
sudo apt-get build-dep chrpath sudo apt-get -b source chrpath sudo dpkg -i chrpath_0.13-2_i386.deb
sudo apt-get build-dep automake1.9 sudo apt-get -b source automake1.9 sudo dpkg -i automake1.9_1.9.6+nogfdl-3_all.deb
sudo apt-get build-dep dbs sudo apt-get -b source dbs sudo dpkg -i dbs_0.45_all.deb
sudo apt-get build-dep cvs sudo apt-get -b source cvs sudo dpkg -i cvs_1.12.13-12_i386.deb
sudo apt-get -b source gpsim sudo dpkg -i gpsim_0.22.0-5.2_i386.deb sudo dpkg -i gpsim-dev_0.22.0-5.2_i386.deb
sudo apt-get -t stable install cmake kdelibs4-dev libreadline5-dev \ libpopt-dev flex libtool libgtkextra-x11-2.0-dev libopts25-dev kdesdk-scripts
sudo apt-get -b source ktechlab
sudo dpkg -i ktechlab_0.3.7-3_i386.deb
sha256sum *.deb > sha256sum.deb
Bila perlu lakukan sign, akan dibahas pada saat mendatang
sudo apt-get -t testing source squashfs-tools
sha256sum * > squashfs-tools.sha256
apt-get -b source squashfs-tools
ekstrak, tambal, dan bangun
dpkg -i squashfs-tools_4.0-6_i386.deb
Langkah-langkah melakukan backport sebenarnya tidak semudah yang sudah ditulis di atas
Kita perlu mengulang dua langkah terakhir untuk masing-masing dependensi paket yang tidak terdapat pada rilis stable, atau paket program membutuhkan fitur pada versi yang hanya ada pada rilis baru. Selain itu diperlukan proses troubleshooting dan debugging jika terdapat pesan kesalahan
Contoh kita akan membangun paket abiword 2.8 yang hanya ada di unstable:
$ sudo apt-get build-dep abiword
Reading package lists... Done Building dependency tree Reading state information... Done E: Build-Depends dependency for abiword cannot be satisfied because no available versions of package libasio-dev can satisfy version requirements
Kita perlu melakukan backport libasio-dev terlebih dulu
sudo apt-get build-dep libasio-dev
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: automake libboost-date-time-dev libboost-date-time1.34.1 libboost-dev libboost-doc libboost-filesystem-dev libboost-filesystem1.34.1 libboost-graph-dev libboost-graph1.34.1 libboost-iostreams-dev libboost-iostreams1.34.1 libboost-program-options-dev libboost-program-options1.34.1 libboost-python-dev libboost-python1.34.1 libboost-regex-dev libboost-serialization-dev libboost-serialization1.34.1 libboost-signals-dev libboost-signals1.34.1 libboost-test-dev libboost-test1.34.1 libboost-thread-dev libboost-thread1.34.1 libboost-wave-dev libboost-wave1.34.1 libicu-dev python-dev python2.5-dev 0 upgraded, 29 newly installed, 0 to remove and 85 not upgraded. Need to get 0B/35.2MB of archives. After this operation, 163MB of additional disk space will be used. Do you want to continue [Y/n]?
sudo apt-get -b source libasio-dev
Reading package lists... Done Building dependency tree Reading state information... Done