Co należy rozumieć przez „zależy” i „wstępnie zależy” oraz różnicę między tymi 2 typami wymagań dotyczących pakietów, gdy instaluję coś w Ubuntu?
źródło
Co należy rozumieć przez „zależy” i „wstępnie zależy” oraz różnicę między tymi 2 typami wymagań dotyczących pakietów, gdy instaluję coś w Ubuntu?
Zgodnie z tym linkiem: https://www.debian.org/doc/debian-policy/#document-ch-relationships
Istnieje 5 rodzajów zależności:
Znaczenie pięciu pól zależności jest następujące:
To deklaruje absolutną zależność. Pakiet nie zostanie skonfigurowany, chyba że wszystkie pakiety wymienione w jego polu Zależności zostaną poprawnie skonfigurowane. Pola Zależy należy użyć, jeśli pakiet zależny jest wymagany, aby pakiet zależny zapewniał znaczną ilość funkcjonalności. Pola Depends należy również użyć, jeśli skrypty postinst lub prerm wymagają rozpakowania lub skonfigurowania pakietu zależnego od komputera w celu uruchomienia. W przypadku konfiguracji postinst pakiety zależne zostaną najpierw rozpakowane i skonfigurowane.
W przypadku działań prerm lub innych akcji postinst zależności pakietu będą zwykle co najmniej rozpakowywane, ale mogą być tylko częściowo zainstalowane, jeśli poprzednie uaktualnienie zależności nie powiedzie się. Na koniec należy użyć pola Depends, jeśli skrypt zależny jest potrzebny skryptowi postrm do pełnego wyczyszczenia po usunięciu pakietu. Nie ma gwarancji, że zależności pakietu będą dostępne po uruchomieniu postrm, ale pakiet zależny jest bardziej dostępny, jeśli pakiet deklaruje zależność (szczególnie w przypadku usunięcia postrm). Skrypt postrm musi z wdziękiem pomijać działania wymagające zależności, jeśli ta zależność nie jest dostępna.
To pole jest podobne do Depends, z tą różnicą, że zmusza także dpkg do ukończenia instalacji nazwanych pakietów jeszcze przed rozpoczęciem instalacji pakietu deklarującego wcześniejszą zależność. Działa to tak, gdy pakiet deklarujący wcześniejszą zależność ma zamiar być rozpakowanym, zależność wstępna może być spełniona, jeśli pakiet zależny jest albo w pełni skonfigurowany, albo nawet jeśli pakiety zależne są tylko rozpakowane lub w stanie „Half-Configured”, pod warunkiem, że zostały skonfigurowane poprawnie w pewnym momencie w przeszłości (i nie został usunięty lub częściowo usunięty od tego czasu).
W takim przypadku zarówno poprzednio skonfigurowane, jak i obecnie rozpakowane lub w połowie skonfigurowane wersje muszą spełniać warunki dowolnej klauzuli wersji w polu Pre-Depends. Kiedy pakiet deklarujący wcześniejszą zależność ma zostać skonfigurowany, taka zależność będzie traktowana jak normalna Zależność. Zostanie uznany za spełniony tylko wtedy, gdy pakiet zależny został poprawnie skonfigurowany. Jednak w przeciwieństwie do Depends, Pre-Depends nie pozwala na zerwanie zależności cyklicznych. W przypadku napotkania zależności cyklicznej podczas próby uwzględnienia opcji Zależności wstępne instalacja zostanie przerwana.
Pre-Depends są również wymagane, jeśli skrypt preinst zależy od nazwanego pakietu. Najlepiej unikać tej sytuacji, jeśli to możliwe. Zależności wstępne powinny być używane oszczędnie, najlepiej tylko w pakietach, których przedwczesna aktualizacja lub instalacja utrudniłaby systemowi kontynuowanie aktualizacji, które mogą być w toku.
Mniejsza wersja:
Termin „zależność” może być szeroko stosowany w celu uwzględnienia relacji „Zależy” i „Zależności wcześniejszych” (a czasem nawet innych, słabszych relacji) lub może być wąsko używany jako synonim „Zależności”.
Różnica między relacjami pakietu „Zależy” i „Zależności wstępne” polega na tym, że jeśli X zależy od Y, to Y musi zostać w pełni skonfigurowane, zanim X zostanie skonfigurowany. (Konfiguracja to etap instalacji, w którym pakiet, po rozpakowaniu plików do odpowiednich lokalizacji - tj. Po „zainstalowaniu” - wprowadza wszelkie inne niezbędne zmiany, aby można było faktycznie korzystać z dostarczonego oprogramowania. Na przykład , konfiguracja serwera HTTP może wymagać upewnienia się, że istnieje
www
użytkownik o odpowiednich umiejętnościach i/var/www
katalogu z odpowiednimi uprawnieniami.) Natomiast jeśli X wstępnie zależy od Y, to Y musi zostać zainstalowany i (zazwyczaj) w pełni skonfigurowany, zanim X wyrówna zainstalowany .Więcej informacji znajduje się w Sekcji 7.2 Podręcznika Polityki Debiana . Cytuję tutaj dwie najbardziej odpowiednie sekcje, ale w tej sekcji (i bardziej ogólnie w rozdziale 7) są inne informacje, które pomagają wyjaśnić, jak działają zależności.
źródło