2012-11-15 47 views
5

Ví dụ: tôi duy trì một ứng dụng sử dụng libmemcached. Tôi có thể biên dịch nó bằng cách sử dụng libmemcached5 hoặc libmemcached6, cũng xây dựng gói .deb trỏ đến libmemcached5, libmemcached6 hoặc thậm chí libmemcached5 | libmemcached6 như là phụ thuộc, nhưng thực sự nhị phân của tôi được biên dịch chỉ với một trong số chúng. Cách tốt nhất tôi có thể giải quyết vấn đề này để triển khai gói của tôi mà không cần nâng cấp/hạ cấp bất kỳ phụ thuộc nào ở phía người dùng là gì?Làm thế nào để xây dựng và triển khai gói với các phiên bản khác nhau của một phụ thuộc?

Trả lời

1

Nếu bạn đang sử dụng kho lưu trữ, hoặc nếu nhiều phiên bản được biên dịch của ứng dụng của bạn được chấp nhận, thì tốt nhất bạn nên biên dịch ứng dụng hai lần, một lần với libmemcached5 và một lần với libmemcached6 và gói chúng riêng biệt với các tên gói khác nhau , và sử dụng một gói phần mềm ảo để cài đặt một trong những quyền tự động:

Package: myapplication-memchched5 
Version: 1.3.17-1 
Depends: libmemcached5 
Provides: myapplication 
Conflicts: myapplication 
Replaces: myapplication 

Package: myapplication-memchched6 
Version: 1.3.17-1 
Depends: libmemcached6 
Provides: myapplication 
Conflicts: myapplication 
Replaces: myapplication 

Bây giờ aptitude install myapplication sẽ tự động chọn một trong hai myapplication-memchched5 hoặc myapplication-memchched6 dựa trên những thứ khác cần được cài đặt.

Các vấn đề liên quan