Tạo kho lưu trữ deb với một số phiên bản của cùng một gói


16

Tôi muốn tạo kho lưu trữ deb của riêng tôi để lưu trữ một số gói. Tôi đã thử reprepro và nó hoạt động tốt, ngoại trừ một tính năng cơ bản. Reprepro không thể lưu trữ một số phiên bản của cùng một gói trong kho lưu trữ.

Khả năng lưu trữ một số phiên bản của cùng một gói là điều cần thiết đối với tôi, vì vậy tôi đang hỏi phần mềm nào có thể làm điều này.

Đây là một phần của Câu hỏi thường gặp reprepro cho thấy rằng nó không thể làm điều đó:

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.

Câu trả lời:


11

Theo tôi hiểu, mini-dinstall yêu cầu debian .changes các tệp khi thêm gói. Như tôi đã chỉ có file .deb sẵn tôi thấy rằng aptly hỗ trợ nhiều phiên bản là tốt.

Một tùy chọn nhẹ hơn khác là cước vận chuyển là tập hợp các kịch bản shell để duy trì kho lưu trữ debian. Bây giờ tôi (2017) đã sử dụng vận tải hàng hóa trong ba năm để duy trì một kho lưu trữ nhỏ nhưng được cập nhật tích cực, với kết quả tốt. Một tính năng chính là khả năng giữ nhiều phiên bản của một gói.

Chỉnh sửa: Cập nhật liên kết đến repo vận chuyển hàng hóa mới như trước đây đã không được cập nhật kể từ năm 2014.


1
Downvoter: quan tâm đến công phu?
bohrax

1
Lưu ý rằng freightđã được rẽ nhánh và hiện đang được duy trì tại github.com/freight-team/freight - phiên bản gốc chưa được cập nhật kể từ năm 2014.
Wolfgang

@WolfgangThanks, đã cập nhật liên kết trong câu trả lời!
bohrax

9

Giải pháp là sử dụng mini-dinstall để quản lý bản sửa lỗi. Nó không xóa phiên bản trước của gói khỏi kho lưu trữ.


2
Điều này dường như chỉ đúng nếu "keep_old = 1" được đặt trong mini-dinstall.conf. Mặc định (theo trang man & kinh nghiệm gần đây) là xóa các phiên bản cũ hơn. Đã thử nghiệm với phiên bản 0.6,29ubfox1.
chuyền

2

Tôi đã nghe những điều tốt về một sự thay thế, vận chuyển hàng hóa:

https://github.com/rcrowley/freight

HTH, nhầm


Không chắc chắn tại sao câu trả lời này đã bị hạ cấp, trừ khi đó là do thiếu chi tiết. Freight thực sự trông giống như một sự thay thế khả thi cho reprepro, một thứ mà tôi dự định dùng thử vì tôi có cùng nhu cầu với OP
killthrush

Tôi không phải là người hạ cấp, nhưng có lẽ vì vận tải hàng hóa đã được đề cập trong câu trả lời của tôi một năm trước. Nhưng dù sao, tôi có thể bảo đảm nó là một lựa chọn khả thi. Tôi đã sử dụng nó trong hơn một năm cho một kho lưu trữ nhỏ nhưng được cập nhật tích cực. Chúng tôi đã bị cắn bởi vấn đề này mặc dù: github.com/rcrowley/freight/pull/65
bohrax

1
@bohrax: Có vẻ như freightđã bị rẽ nhánh và hiện đang được duy trì tại github.com/freight-team/freight .
Wolfgang

-1

Nếu bạn sẵn sàng tự viết tệp Gói (ví dụ: với tập lệnh tùy chỉnh), bạn có thể đặt một số phiên bản của cùng gói đó vào đó và apt-get sẽ cho phép bạn cài đặt một phiên bản cụ thể với cú pháp

apt-get install packagename=version

Bạn có thể nhận được tất cả thông tin bạn cần để viết gói này với

dpkg-deb --info package.deb

md5sum package.deb

nâng cấp apt-get cũng sẽ chọn số phiên bản cao nhất (ít nhất là trong thử nghiệm giới hạn của tôi).


Cảm ơn bạn đã trả lời, nhưng tôi thích sử dụng một số hệ thống sẽ tạo tệp Gói.
bessarabov

Điều này không trả lời câu hỏi về việc tạo một kho lưu trữ gói với nhiều phiên bản của cùng một gói. Đó là một câu trả lời cho một câu hỏi khác.
gertvdijk

-2

Như phần mềm cho bạn biết, những cái cũ hơn sẽ bị xóa khi một cái mới xuất hiện. Thông thường, điều này được thực hiện với nhiều repos. Giống như Ubuntu và Debian có nhiều repos ổn định và không ổn định hoặc Natty, Oneiric, lỗi, bạn sẽ cần phải có nhiều repos.

Thông thường các nhà quản lý gói chọn phiên bản mới nhất của gói, do đó người dùng cũng khó có thể chọn.


1
Tạo nhiều repos không giải quyết được vấn đề của tôi. Tôi cần nhiều phiên bản của cùng một gói để ở trong cùng một repo. Đối với những người quan tâm tại sao tôi cần điều này ở đây là một chủ đề với lời giải thích của tôi: answer.launchpad.net/launchpad/+question/171452
bessarabov

Tôi sợ rằng bạn phải xem xét vấn đề của mình từ một góc độ khác vì các repos Debian thông thường không hỗ trợ nhiều phiên bản.
Martin Uting

2
Bạn không đúng. Vui lòng xem bản sửa lỗi thường xuyên ftp.us.debian.org/debian/pool/main/p/perl và thấy rằng có một số phiên bản của cùng một gói cho cùng một bản lưu trữ.
bessarabov
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.