Tôi có thể có hai phiên bản của cùng một gói trong kho apt không?


19

Tôi đang chạy Ubuntu 10.04 trên toàn bộ môi trường của mình. Để làm cho mã triển khai dễ dàng hơn, chúng tôi đang triển khai một kho lưu trữ apt riêng nơi chúng tôi có thể triển khai các bản dựng mã của mình.

Một trong những yêu cầu của kho lưu trữ này là bộ phận QA của chúng tôi sẽ có thể cài đặt bất kỳ phiên bản nào của ứng dụng của chúng tôi bất cứ lúc nào.

Tôi có thể lưu trữ nhiều phiên bản của cùng một gói trong kho apt (tốt nhất là trong cùng một bản phân phối) không? Nếu không, một số cách giải quyết có thể mà tôi có thể sử dụng để có được hành vi được mô tả ở trên là gì?

Câu trả lời:


19

Có, bạn có thể, và bạn không cần phải làm gì đặc biệt. Trong thực tế, các kho lưu trữ Debian và Ubuntu thông thường thường có một số phiên bản của mỗi gói (từ cũ ổn định / ổn định / thử nghiệm / không ổn định hoặc dapper / hardy / lucid / maverick / natty). Các bản phân phối chỉ có một gói duy nhất trong tệp chỉ mục của mỗi phiên bản (các Packagestệp), nhưng bạn không phải tuân theo.

Tất nhiên, apt-get install myappsẽ chỉ cài đặt phiên bản mới nhất (trừ khi có cấu hình khác). Bạn có thể chạy apt-get install myapp=1.42để buộc cài đặt phiên bản 1.42.

Hãy cẩn thận: nếu tất cả các phiên bản có cùng tên gói, bạn không thể cài đặt nhiều hơn một phiên bản cùng một lúc. Nếu điều này quan trọng, hãy đặt cho mỗi phiên bản một tên gói khác nhau : myapp-1.42, myapp-1.43v.v. Debian và Ubuntu thực hiện điều này cho các phiên bản chính của thư viện, nơi bạn có thể cần nhiều hơn một nếu bạn có các tệp thực thi được liên kết với các thư viện khác nhau (ví dụ libcap1libcap2) như đối với một vài gói khác như kernel.


1
Cảm ơn lời giải thích tuyệt vời. Theo dõi, nếu tôi đi vào con đường nối các số phiên bản vào các gói của mình, điều đó có phá vỡ "apt-get nâng cấp" không? Dường như với tôi rằng mỗi lần tôi nâng cấp ứng dụng của mình, nó sẽ được coi là một bản cài đặt mới và tôi sẽ mất cấu hình của mình. Tôi có thể giải quyết vấn đề này, nhưng tôi muốn nắm bắt những hạn chế là gì trước khi tôi đưa ra quyết định bằng cách này hay cách khác. Cảm ơn.
GregB

2
Cách thông thường trong trường hợp này là có myapp-1.42và cứ thế, cộng với một gói myappchỉ phụ thuộc vào hiện tại myapp-VERSION(hoặc thậm chí myapp-stable, myapp-betav.v.).
Gilles 'SO- ngừng trở nên xấu xa'

1
Chỉ là một lời cảnh báo: hãy chắc chắn rằng bạn không quên -mkhi chạy dpkg-scanpackagesđể xây dựng chỉ mục kho lưu trữ của mình. Nếu không, bạn sẽ không nhận được nhiều phiên bản gói trên Packagestệp của mình .
bruno nery
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.