15.3. Membuat Repositori Paket untuk APT
Falcor Corp perlahan mulai mengelola sejumlah paket Debian baik dimodifikasi lokal dari paket yang sudah ada atau membuat dari awal untuk mendistribusikan data internal dan program.
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 = [email protected]
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).