Jaki jest cel poprawek jądra systemu Linux?

21

Dla każdej wersji jądra Linux dostępny jest plik łatki do pobrania. Na przykład linux-3.12.22 ma odpowiednią łatkę 3.12.22 .

Jaki jest cel tej łatki? Czy zawsze łatać odpowiednie jądro przed skompilowaniem go, czy też aktualizować poprzednią wersję jądra za pomocą jądra, które pasuje do łaty (w tym przypadku 3.12.22)?

Elena
źródło

Odpowiedzi:

31

Celem jest zaoszczędzenie dużego ruchu.

Tarball Linuksa ma około 75 MB, podczas gdy łatki zwykle mają tylko kilka KB.

Jeśli więc skompilujesz własne jądro i zaktualizujesz każdą nową wersję mniejszą w dniu jej wydania, zamiast ponownie pobierać nowe archiwum 75 MB dla każdej niewielkiej aktualizacji, wystarczy pobrać (na przykład) główny plik archiwalny dla danej wersji raz, a następnie łatka dla wersji, którą naprawdę chcesz. Gdy pojawi się aktualizacja, ponownie korzystasz z już pobranego głównego archiwum.

linux-3.14.tar.xz+ patch-3.14.{1..n}.xzjest w sumie poniżej 100 MB.

linux-3.14.tar.xz+ linux-3.14.{1..n}.tar.xzjest kilka razy 100 MB.

Nie ma negatywnego wpływu na łatanie, końcowy wynik jest identyczny, chyba że zrobisz coś złego.

frostschutz
źródło
9
Jak napisano, nie do końca odpowiada to pytanie. Mówiąc wprost, celem poprawki jest to, że zastosowanie jej do wersji n-1 źródła „uaktualnia” ją do wersji n. Zaletą jest to, że oszczędza dużo ruchu, jako odpowiedź opisuje.
David Richerby
1
Nie jestem native speakerem. Ale przewaga brzmi dla mnie zbyt słabo. Oszczędzanie przepustowości / ruchu jest ważne dla każdego serwera. Ma cel.
frostschutz
Część, na którą nie odpowiedziałeś wyraźnie, brzmi: „Zawsze łatać odpowiednie jądro przed kompilacją lub zaktualizować poprzednią wersję jądra do jądra, które pasuje do łaty (w tym przypadku 3.12.22)? „ Aktualizacja 3.12.22 ma na celu aktualizację z wersji 3.12.21 do .22, nie ma zastosowania do źródeł 3.12.22 przed ich skompilowaniem.
David Richerby
Łaty są zwykle przeznaczone .0np VERSION = 3 PATCHLEVEL = 12 -SUBLEVEL = 0 +SUBLEVEL = 22. Do
Przejście
W jaki sposób taki schemat oszczędzania ruchu byłby lepszy niż np. Posiadanie klona git repozytorium i działanie git pullpo wydaniu nowej wersji?
Ruslan
5

Są to tak zwane „łaty”. Zestaw poprawek to grupy poprawek, które obsługują tę samą funkcjonalność, są powiązane lub implementują funkcję krokami. Są to w szczególności różnica między główną wersją jądra (XY) a kolejnymi drobnymi zmianami / aktualizacjami (XY Z ) z kilkoma propozycjami:

  • Oszczędzaj miejsce na serwerach.
  • Oszczędzaj przepustowość.
  • Łatwość zastosowania i dystrybucji

Pamiętaj, że te zestawy poprawek są przyrostowe. Najpierw musisz zastosować łatkę .1 przed łatką .2, a następnie możesz zastosować .3.

Braiam
źródło