2012-11-15 13 views
5

Na przykład utrzymuję aplikację korzystającą z biblioteki libmemcached. Mogę go skompilować za pomocą libmemcached5 lub libmemcached6, także skompiluję pakiet .deb wskazujący na libmemcached5, libmemcached6 lub nawet libmemcached5 | libmemcached6 jako zależność, ale w rzeczywistości mój plik binarny jest skompilowany tylko z jednym z nich. Jaki jest najlepszy sposób, w jaki mogę rozwiązać ten problem, aby wdrożyć pakiet bez aktualizowania/obniżania jakichkolwiek zależności po stronie użytkownika?Jak zbudować i wdrożyć pakiet z różnymi wersjami jednej zależności?

Odpowiedz

1

Jeśli korzystasz z repozytorium lub akceptujesz wiele skompilowanych wersji aplikacji, najlepiej jest skompilować aplikację dwa razy, raz z libmemcached5 i raz z libmemcached6, i spakować je osobno, z różnymi nazwami pakietów i używać pakiet wirtualny zainstalować właściwy się automatycznie:

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

i

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

teraz aptitude install myapplication automatycznie wybierze albo myapplication-memchched5 lub myapplication-memchched6 w oparciu o to, co jeszcze trzeba zainstalować.

Powiązane problemy