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ć.
Powiązane problemy
- 1. boost :: TIME_UTC (_) z różnymi wersjami doładowań
- 2. Rozładuj pakiet i wszystkie zależności.
- 3. Przesyłanie do sklepu z różnymi wersjami pakietu różnych wersji Pythona
- 4. Użyj różnych ikon z różnymi wersjami Androida SDK
- 5. Czy komunikaty protobuf są kompatybilne z różnymi wersjami protobuf
- 6. Jak zbudować program z 2 różnymi wartościami zmiennej w CMake
- 7. Jak wdrożyć/zaimportować pakiet wojny do Netbeans
- 8. Jak zbudować/przetestować Scala bez zależności IDE?
- 9. komponent Dagger2 z więcej niż jednej zależności
- 10. Skąd znasz różnice w interfejsach między dwiema różnymi wersjami?
- 11. Jak zarządzać wieloma wersjami gemsetów i rubinów za pomocą RVM?
- 12. buildr: Pakiet Zależności w jednym słoiku
- 13. Szyfrowanie/odszyfrowywanie nie działa dobrze między dwiema różnymi wersjami openssl
- 14. Zgodność boost :: interprocess :: managed_shared_memory między różnymi wersjami boost
- 15. Circleci: jak wdrożyć w zależności od tagu git
- 16. Przełączanie między różnymi wersjami szyn w tym samym zestawie klejnotów
- 17. Jak zbudować bezpieczne pojedyncze logowanie Django między różnymi witrynami?
- 18. Nie można zbudować własny pakiet Zepto
- 19. capistrano 3 nie wiem jak zbudować zadanie 'wdrożyć: updated'
- 20. Importować projekt Android Studio z innego komputera z różnymi wersjami Gradle?
- 21. Jak używać SqlDependency i SignalR z 2 różnymi bazami danych przy użyciu jednej funkcji w C#?
- 22. Jak najlepiej wdrożyć dwie czynności udostępniania jednej usługi (połączenie Bluetooth)?
- 23. Jak zbudować x64 z monodevelop?
- 24. Jak zbudować wykonywalny o nazwie innej niż pakiet Golang
- 25. Jak zbudować prosty pakiet bazy danych dla mojej aplikacji Pythona?
- 26. Jak mogę zbudować pakiet docelowy dla bibliotek przenośnych klasy?
- 27. Jak zbudować pakiet APK "wydania" w Android Studio?
- 28. Jak zbudować OpenCV z TBB?
- 29. Jak mogę zbudować pakiet SharePoint 2010 za pomocą wiersza poleceń?
- 30. Zarządzaj wersjami i wersjami modułów AngularJS za pomocą Grunta