Przygotujmy metapakiet, który zależy od następujących pakietów
Depends: A (=2),
B (=2),
C (=2)
Uwaga „=” - chcę zainstalować te konkretne wersje, a nie najnowsze.
Do tego:
B zależy od A (> = 1)
C zależy od B (> = 1) i A (> = 1)
Jeśli najnowsze wersje A, B, C w repozytorium to 2, to działa.
Ponieważ umieściłem wersję 3 A i wersję 3 B w repo sudo apt-get install mój-meta-pakiet odmawia zakończenia następującymi informacjami:
The following packages have unmet dependencies:
my-meta-package: Depends: B (= 2) but 3 is to be installed
Depends: A (= 2) but 3 is to be installed
Jeśli ręcznie zainstaluję wersje 2 A i B, wówczas metapakiet instaluje się poprawnie, co zdecydowanie sugeruje, że nie ma ukrytej zależności od A3 lub B3. Nie jest to rozwiązanie problemu, ponieważ metapakiet jest instalowany automatycznie na wielu komputerach.
PYTANIE: Co zrobić, aby sudo apt-get install my-meta-package install wersje 2,2,2?
Ponadto, czy jest sposób, aby uzyskać dodatkowe informacje, co tak naprawdę powoduje potrzebę wersji 3 A i wersji 3 B?
źródło
(a=2), (b=2)
?Odpowiedzi:
Musisz wybrać poszczególne wersje do zainstalowania i zainstalować je wszystkie w tym samym czasie, gdy instalujesz metapakiet.
Jak mówi odpowiedź int_ua , możesz znaleźć odwrotne zależności za pomocą tego:
Jeśli chcesz dowiedzieć się więcej informacji o dowolnym z tych pakietów ( dostępne wersje, zależności i wiele więcej ), skorzystaj z tego:
Po zakończeniu ich instalowania i chęci utrzymania ich w tych wersjach podczas aktualizacji systemu, będziesz musiał użyć apt-pinning zgodnie z sugestią belacqua .
Przypinanie APT
źródło
Możesz najpierw spróbować zainstalować zależności
sudo apt-get install package=2
gdzie 2 to wersjaMożesz dowiedzieć się, które pakiety zależą od pakietu
apt-cache rdepends package
źródło