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/
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
.
ALTERNATIF apt-ftparchive
Jika mini-dinstall tampaknya terlalu rumit untuk kebutuhan arsip Debian, Anda juga dapat menggunakan perintah apt-ftparchive. Alat ini memindai isi direktori dan menampilkan (pada keluaran standar) berkas Package yang cocok. Dalam kasus Falcot Corp, administrator dapat mengunggah paket langsung ke /srv/vhosts/packages/updates/ atau /srv/vhosts/packages/internal/, kemudian menjalankan perintah berikut untuk membuat berkas Packages.gz:
Perintah apt-ftparchive sources mengizinkan membuat berkas Sources.gz dengan cara yang mirip.
Jika mini-dinstall tampaknya terlalu rumit untuk kebutuhan arsip Debian, Anda juga dapat menggunakan perintah apt-ftparchive. Alat ini memindai isi direktori dan menampilkan (pada keluaran standar) berkas Package yang cocok. Dalam kasus Falcot Corp, administrator dapat mengunggah paket langsung ke /srv/vhosts/packages/updates/ atau /srv/vhosts/packages/internal/, kemudian menjalankan perintah berikut untuk membuat berkas Packages.gz:
$ cd /srv/vhosts/packages
$ apt-ftparchive packages updates >updates/Packages
$ gzip updates/Packages
$ apt-ftparchive packages internal >internal/Packages
$ gzip internal/Packages
$ apt-ftparchive packages updates >updates/Packages
$ gzip updates/Packages
$ apt-ftparchive packages internal >internal/Packages
$ gzip internal/Packages
Perintah apt-ftparchive sources mengizinkan membuat berkas Sources.gz dengan cara yang mirip.
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
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
.
SECURITY mini-dinstall dan permission
Karena mini-dinstall telah dirancang untuk dijalankan sebagai pengguna biasa, tidak perlu dijalankan sebagai root. Cara termudah adalah untuk mengkonfigurasi semuanya dalam akun pengguna milik administrator yang bertanggung jawab menciptakan paket-paket Debian. Karena hanya administrator ini yang memiliki izin yang diperlukan untuk menempatkan berkas-berkas dalam direktori incoming/, kita dapat simpulkan bahwa administrator mengotentikasi asal dari masing-masing paket sebelum penggelaran dan mini-dinstall tidak perlu untuk melakukannya lagi. Ini menjelaskan parameter verify_sigs = 0 (yang berarti bahwa tanda tangan tidak perlu diverifikasi). Namun, jika isi paket sensitif, kami dapat membalik pengaturan dan memilih untuk melakukan otentikasi dengan keyring berisi kunci publik dari orang-orang yang diperbolehkan untuk membuat paket (dikonfigurasi dengan parameter extra_keyrings); mini-dinstall kemudian akan memeriksa asal masing-masing paket masuk dengan menganalisis tanda tangan yang terintegrasi ke berkas *.changes.
Karena mini-dinstall telah dirancang untuk dijalankan sebagai pengguna biasa, tidak perlu dijalankan sebagai root. Cara termudah adalah untuk mengkonfigurasi semuanya dalam akun pengguna milik administrator yang bertanggung jawab menciptakan paket-paket Debian. Karena hanya administrator ini yang memiliki izin yang diperlukan untuk menempatkan berkas-berkas dalam direktori incoming/, kita dapat simpulkan bahwa administrator mengotentikasi asal dari masing-masing paket sebelum penggelaran dan mini-dinstall tidak perlu untuk melakukannya lagi. Ini menjelaskan parameter verify_sigs = 0 (yang berarti bahwa tanda tangan tidak perlu diverifikasi). Namun, jika isi paket sensitif, kami dapat membalik pengaturan dan memilih untuk melakukan otentikasi dengan keyring berisi kunci publik dari orang-orang yang diperbolehkan untuk membuat paket (dikonfigurasi dengan parameter extra_keyrings); mini-dinstall kemudian akan memeriksa asal masing-masing paket masuk dengan menganalisis tanda tangan yang terintegrasi ke berkas *.changes.
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).
EKSTRA Membuat sebuah signed archive
Keluarga APT memeriksa rantai tanda tangan kriptografik dari paket yang ditanganinya sebelum memasang mereka, untuk memastikan keaslian mereka (lihat Bagian 6.5, “Pemeriksaan Otentikasi Paket”). Arsip APT privat dapat menjadi masalah, karena mesin yang menggunakan mereka akan terus menampilkan peringatan tentang paket tanpa-tanda-tangan. Maka administrator yang rajin akan mengintegrasikan arsip pribadi dengan mekanisme APT aman. Untuk membantu dengan proses ini, mini-dinstall memuat release_signscript opsi konfigurasi yang memungkinkan menspesifikasikan sebuah script untuk digunakan untuk menghasilkan signature. Titik mulai yang bagus adalah script sign-release.sh yang disediakan oleh mini-dinstall paket /usr/share/doc/mini-dinstall/examples/; perubahan lokal bisa jadi relevan
Keluarga APT memeriksa rantai tanda tangan kriptografik dari paket yang ditanganinya sebelum memasang mereka, untuk memastikan keaslian mereka (lihat Bagian 6.5, “Pemeriksaan Otentikasi Paket”). Arsip APT privat dapat menjadi masalah, karena mesin yang menggunakan mereka akan terus menampilkan peringatan tentang paket tanpa-tanda-tangan. Maka administrator yang rajin akan mengintegrasikan arsip pribadi dengan mekanisme APT aman. Untuk membantu dengan proses ini, mini-dinstall memuat release_signscript opsi konfigurasi yang memungkinkan menspesifikasikan sebuah script untuk digunakan untuk menghasilkan signature. Titik mulai yang bagus adalah script sign-release.sh yang disediakan oleh mini-dinstall paket /usr/share/doc/mini-dinstall/examples/; perubahan lokal bisa jadi relevan
0 komentar:
Berikan Tanggapan Positif Dan Membangun