Buat repositori deb dengan beberapa versi dari paket yang sama

16

Saya ingin membuat repositori deb saya sendiri untuk menyimpan beberapa paket. Saya sudah mencoba reprepro dan berfungsi dengan baik, kecuali untuk satu fitur mendasar. Reprepro tidak dapat menyimpan beberapa versi dari paket yang sama di repositori.

Kemampuan untuk menyimpan beberapa versi dari paket yang sama sangat penting bagi saya, jadi saya bertanya perangkat lunak apa yang dapat melakukan ini.

Berikut ini adalah bagian dari reprepro FAQ yang menunjukkan bahwa ia tidak dapat melakukannya:

3.1) Can I have two versions of a package in the same distribution?
-------------------------------------------------------------------
Sorry, this is not possible right now, as reprepro heavily optimizes
at only having one version of a package in a suite-type-component-architecture
quadruple.
You can have different versions in different architectures and/or components
within the same suite. (Even different versions of a architecture all package
in different architectures of the same suite). But within the same
architecture and the same component of a distribution it is not possible.
bessarabov
sumber

Jawaban:

11

Sejauh yang saya mengerti, mini-dinstall membutuhkan debian .changes file saat menambahkan paket. Karena saya hanya memiliki file deb. Saya menemukan bahwa aptly mendukung beberapa versi juga.

Opsi lain yang lebih ringan adalah pengiriman yang merupakan set skrip shell untuk mempertahankan repositori debian. Saya sekarang (2017) telah menggunakan barang selama tiga tahun untuk mempertahankan repositori yang kecil namun diperbarui secara aktif, dengan hasil yang baik. Salah satu fitur utama adalah kemampuan untuk menyimpan beberapa versi paket.

Sunting: Tautan yang diperbarui ke repo pengiriman baru karena yang sebelumnya belum diperbarui sejak 2014.

bohrax
sumber
1
Downvoter: peduli untuk menjelaskan?
bohrax
1
Catatan yang freighttelah bercabang dan sekarang sedang dipertahankan di github.com/freight-team/freight - versi aslinya belum diperbarui sejak 2014.
Wolfgang
@Wolfgang Terima kasih, perbarui tautan dalam jawabannya!
bohrax
9

Solusinya adalah menggunakan mini-dinstall untuk repo manajemen . Itu tidak menghapus versi paket sebelumnya dari repositori.

bessarabov
sumber
2
Tampaknya ini hanya benar jika "keep_old = 1" disetel dalam mini-dinstall.conf. Default (menurut halaman manual & pengalaman terkini) adalah untuk menghapus versi yang lebih lama. Diuji dengan versi 0.6.29ubuntu1.
pendor
2

Saya mendengar hal-hal baik tentang alternatif, pengiriman:

https://github.com/rcrowley/freight

HTH, mistige

mistige
sumber
Tidak yakin mengapa jawaban ini dibatalkan, kecuali karena kurang detail. Pengangkutan memang terlihat sebagai alternatif yang layak untuk reprepro, yang saya ingin coba karena saya memiliki kebutuhan yang sama dengan OP
killthrush
Saya bukan downvoter, tapi mungkin karena pengiriman sudah disebutkan dalam jawaban saya setahun yang lalu. Bagaimanapun, saya bisa menjamin itu sebagai opsi yang layak. Saya telah menggunakannya selama lebih dari setahun untuk repositori yang kecil namun diperbarui secara aktif. Kami telah digigit oleh masalah ini: github.com/rcrowley/freight/pull/65
bohrax
1
@bohrax: Tampaknya freightsudah bercabang dan sekarang sedang dipertahankan di github.com/freight-team/freight sebagai gantinya.
Wolfgang
-1

Jika Anda ingin menulis sendiri file Paket (mis. Dengan skrip khusus), Anda dapat meletakkan beberapa versi dari paket yang sama di sana dan apt-get akan memungkinkan Anda untuk menginstal versi spesifik dengan sintaksis

apt-get install packagename=version

Anda bisa mendapatkan semua info yang Anda butuhkan untuk menulis paket ini

dpkg-deb --info package.deb

dan

md5sum package.deb

upgrade apt-get juga akan memilih nomor versi tertinggi (setidaknya dalam pengujian saya terbatas).

pfyon
sumber
Terima kasih atas jawabannya, tetapi saya lebih suka menggunakan beberapa sistem yang akan menghasilkan file Paket.
bessarabov
Ini tidak menjawab pertanyaan tentang membuat repositori paket dengan beberapa versi dari paket yang sama. Ini jawaban untuk pertanyaan lain.
gertvdijk
-2

Seperti yang dikatakan perangkat lunak kepada Anda, yang lama dihapus saat yang baru masuk. Biasanya, ini dilakukan dengan beberapa repo. Sama seperti Ubuntu dan Debian memiliki beberapa repo untuk stabil dan tidak stabil atau Natty, Oneiric, ..., Anda perlu memiliki beberapa repo.

Biasanya manajer paket memilih versi terbaru dari sebuah paket, sehingga akan sulit bagi pengguna untuk memilih juga.

Martin Ueding
sumber
1
Membuat banyak repo tidak menyelesaikan masalah saya. Saya perlu beberapa versi dari paket yang sama untuk berada di repo yang sama. Bagi mereka yang tertarik mengapa saya harus ini di sini adalah topik dengan penjelasan saya: answers.launchpad.net/launchpad/+question/171452
bessarabov
Saya khawatir Anda harus melihat masalah Anda dari sudut yang berbeda karena repo Debian biasa tidak memiliki dukungan untuk beberapa versi.
Martin Ueding
2
Kamu tidak benar. Silakan lihat repo debian reguler ftp.us.debian.org/debian/pool/main/p/perl dan lihat bahwa ada beberapa versi dari paket yang sama untuk archicture yang sama.
bessarabov