Product SiteDocumentation Site

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).