Saya ingin mengatur repositori APT di server yang akan menyediakan beberapa paket.
Apakah ada cara untuk mengaturnya tanpa menginstal perangkat lunak apa pun di server?
Bagaimana cara mengatur file?
Sunting: Saya pasti melakukan kesalahan ... bisakah seseorang tolong saya? Saya memiliki repositori di http://quickmediasolutions.com/apt/dists
Saya tidak yakin di mana atau apa, tetapi ada yang salah konfigurasi. Saat ini saya hanya memiliki satu paket dan itu untuk semua arsitektur.
Inilah yang telah ditambahkan ke saya /etc/apt/sources.list
:
deb http://quickmediasolutions.com/apt stable main
apt
package-management
repository
Nathan Osman
sumber
sumber
Jawaban:
Menyiapkan repositori sepele sangat mudah menggunakan paket dpkg-scanpackage. Halaman ini menjelaskan cara mengatur repo yang sepele, dan yang ini menjelaskan cara menggunakannya (gulir ke bawah untuk contoh 4).
sumber
deb http://quickmediasolutions.com/apt binary/
.Hanya menyiapkan repositori yang sederhana namun bertanda tangan di server web. Karena kebanyakan tutorial lain agak ketinggalan jaman atau rumit, saya akan mencoba meniru prosedur di sini. Konfigurasi awal membutuhkan sedikit usaha, tetapi skrip build sederhana membuatnya mudah untuk dikelola. Dan Anda bisa
*.deb
memasukkan file baru , kemudian memperbarui, atau membiarkan pekerjaan cron mengatasinya.Hasilkan beberapa kunci masuk
Pertama, Anda perlu membuat
gpg
kunci penandatanganan untuk paket dan repositori Anda. Jadikan (4) kunci penandatanganan RSA, tanpa kata sandi, dan berikan keunikan$KEYNAME
saat diminta. (Contoh lebih lanjut menganggap "dpkg1
" sebagai nama kunci.)Saya bilang tidak ada kata sandi, karena server web Anda tidak memiliki monyet bawaan untuk mengetiknya berulang kali. Dan paket dan repositori yang telah ditandatangani hanya dimaksudkan untuk memuaskan keluhan manajer pembaruan tentang hal itu. Unggah kedua kunci ke
/apt/
direktori repositori baru di server web Anda, tetapi hapussecret.gpg
kunci setelah inisialisasi.Perbarui skrip CGI
Ini adalah skrip shell / CGI pembaruan sederhana untuknya:
Tiga
gpg
baris hanya perlu dijalankan sekali, untuk menginisialisasi pengaturan GPG di beberapa direktori$GNUPGHOME
(di atas root dokumen). Hapus hanyasecret.gpg
setelah sukses.Salah satu fitur unik dari skrip shell kecil ini adalah ia menerima
*.deb
file apa pun yang Anda singgahi, tetapi juga mencari secara rekursif (mulai dari satu tingkat ke atas) untuk yang lain, dan menyinkronkannya. (Butuh .htaccessOptions FollowSymLinks
akhirnya.)Anda dapat menjalankan skrip ini secara manual sebagai CGI atau per cron-job. Tapi sembunyikan, atau lebih baik pindahkan dari root dokumen.
Karena itu adalah repositori apt "trivial" maka perlu
apt-sources.list
entri berikut :Itu cocok untuk repositori arsitektur tunggal, dan jika Anda tidak mengharapkan ratusan paket.
Penandatanganan paket
Menandatangani paket individual Anda juga sepele, setelah Anda menyiapkan kunci gpg Anda:
(Ini harus dilakukan pada workstation tempat paket dibangun, bukan pada server web repositori.)
Repositori yang tidak ditandatangani
Jika Anda tidak perlu paket yang ditandatangani, maka Anda dapat memangkas skrip pembaruan menjadi hanya:
Yang masih dapat digunakan oleh pengguna biasa, tetapi membutuhkan bendera khusus untuk
apt.sources
:Tapi tolong jangan gunakan
trusted=yes
bendera biasa untuk semuanya, atau jika Anda tidak benar-benar yakin tentang asal paket.Untuk kegunaan
Untuk pengguna akhir, cukup masukkan a
HEADER.html
ke dalam direktori repositori. Apachemod_auto_index
akan menambahkan catatan itu:Alternatif
Ada beberapa alat untuk mengotomatisasi manajemen repositori hari ini. Dan bahkan ada hoster repositori online dan layanan pembuatan paket ( gemfury , packagecloud , bintray dll.)
Alternatif yang agak nyaman adalah prm . Ini adalah skrip Ruby, yang membangun repo APT dan YUM yang kompleks. (Tapi mari kita berharap RPM akhirnya mati dalam waktu dekat ..) - Lebih baik diinstal per
gem install prm
.Dan saya juga telah menulis sebuah skrip kecil untuk mengotomatiskan ini dengan cara yang sama: http://apt.include-once.org/apt-phparchive - Tolong jangan bahwa itu tidak terlalu kuat dan ditulis dalam PHP (untuk sekali, ini kebetulan), dan pada awalnya dimaksudkan untuk DEB, dan bundel RPM-over-APT dan Phar.
Karena ini terkait erat dengan pertanyaan awal, ada juga alat untuk membuat paket Debian lebih mudah. Agak ketinggalan jaman: EPM . Jauh lebih kontemporer: FPM . Dan garpu pribadi saya: XPM (pendekatan yang lebih malas untuk pengemasan aplikasi bahasa scripting.)
sumber
wget …/public.gpg -O- | apt-key add -
dpkg-scanpackages -m
mungkin cukup. Ini akan mencantumkan semua arsitektur dalam file Rilis yang sama. Tetapi selama masing-masing .deb memiliki nama unik / atau disimpan dalam subdirir yang berbeda (amd64 /, semua /) itu harus berhasil. Lain pergi untuk salah satu alat repositori yang lebih kompleks.Iya. Kamu bisa melakukan ini. Anda hanya perlu mengatur file dengan cara yang benar dan membuat file indeks. Jika Anda meletakkan struktur direktori di dalam root dokumen server web Anda, paket hanya dapat diakses melalui server web.
Berikut ini adalah uraian terperinci bagaimana file perlu diatur dan bagaimana file indeks dibuat.
Anda juga dapat menggunakan alat yang disebut reprepro jika Anda ingin menginstal satu paket itu. Ini akan membuat administrasi sedikit lebih nyaman.
sumber
Anda mungkin juga dapat mempertimbangkan PPA Launchpad
sumber
Bagi siapa pun yang menghadapi kesalahan ini setelah mengikuti jawaban mario:
lakukan hal berikut:
Saya meletakkan
*.deb
file saya didebs
folder.sumber