15.3. Membuat Repositori Paket untuk APT
Falcot Corp gradually started maintaining a number of Debian packages, either locally modified from existing packages or created from scratch to distribute internal data and programs.
Agar penggelaran lebih mudah, mereka ingin mengintegrasikan paket-paket ini ke dalam sebuah arsip paket yang dapat digunakan secara langsung oleh APT. Untuk alasan-alasan pengelolaan yang gamblang, mereka ingin memisahkan paket internal dari paket yang dibangun-ulang-lokal. Tujuannya adalah agar entri yang cocok dalam berkas /etc/apt/sources.list.d/falcot.list
menjadi sebagai berikut:
deb http://packages.falcot.com/ updates/
deb http://packages.falcot.com/ internal/
Maka administrator mengonfigurasi suatu host virtual pada server HTTP internal mereka, dengan /srv/vhosts/packages/
sebagai root dari ruang web terkait. Manajemen arsip itu sendiri didelegasikan ke perintal mini-dinstall
(dalam paket yang bernama mirip). Alat ini mengawasi suatu direktori incoming/
(dalam kasus kita, /srv/vhost/packages/mini-dinstall/incoming/
) dan menunggu paket-paket baru di sana; ketika suatu paket diunggah, itu dipasang ke dalam sebuah arsip Debian pada /srv/vhosts/packages/
. Perintah mini-dinstall
membaca berkas *.changes
yang dibuat saat paket Debian dijangkitkan. Berkas-berkas ini memuat suatu daftar dari semua berkas lain yang terkait dengan versi paket (*.deb
, *.dsc
, *.diff.gz
/*.debian.tar.gz
, *.orig.tar.gz
, atau ekuivalennya dengan alat kompresi lain), dan ini mengizinkan mini-dinstall
untuk tahu berkas mana yang akan dipasang. Berkas *.changes
juga memuat nama distribusi target (seringkali unstable
) yang disinggung dalam entri debian/changelog
terakhir, dan mini-dinstall
memakai informasi ini untuk menentukan di mana paket mesti dipasang. Inilah kenapa administrator mesti selalu mengubah ruas ini sebelum membangun suatu paket, dan menatanya ke internal
atau updates
, bergantung pada lokasi target. mini-dinstall
kemudian menjangkitkan berkas-berkas yang diperlukan oleh APT, seperti misalnya Packages.gz
.
Mengkonfigurasi mini-dinstall
membutuhkan menyiapkan sebuah berkas ~/.mini-dinstall.conf
; dalam kasus Falcot Corp, isinya adalah sebagai berikut:
[DEFAULT]
archive_style = flat
archivedir = /srv/vhosts/packages
verify_sigs = 0
mail_to = admin@falcot.com
generate_release = 1
release_origin = Falcot Corp
release_codename = stable
[updates]
release_label = Recompiled Debian Packages
[internal]
release_label = Internal Packages
Satu keputusan yang perlu diperhatikan adalah membuat berkas
Release
untuk setiap arsip. Hal ini bisa membantu mengelola prioritas instalasi paket menggunakan berkas konfigurasi
/etc/apt/preferences
(lihat
Bagian 6.2.5, “Mengelola Prioritas Paket” untuk detailnya).
Menjalankan mini-dinstall
sebenarnya memulai daemon di latar belakang. Selama daemon ini berjalan, itu akan memeriksa paket baru di direktori incoming/
setiap setengah jam; ketika suatu paket baru telah tiba, itu akan dipindahkan ke arsip dan berkas-berkas Packages.gz
dan Sources.gz
yang sesuai akan diregenerasi. Jika menjalankan daemon adalah masalah, mini-dinstall
dapat juga secara manual dipanggil dalam mode batch (dengan opsi -b
) setiap kali sebuah paket diunggah ke dalam direktori incoming/
. Kemungkinan lain yang disediakan oleh mini-dinstall
didokumentasikan di halaman manual mini-dinstall(1).