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?
5
A
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ć.