Dlaczego repozytoria Ubuntu nie mają najnowszych wersji oprogramowania?

145

Dlaczego pakiety w oficjalnych repozytoriach Ubuntu są starsze niż najnowsze (wcześniejsze) wersje Debian Sid, PPA, autorów itp.?

Thomas Ward
źródło
2
Tak się dzieje w przypadku każdej dystrybucji, nie tylko Ubuntu.
dr01
8
@ dr01 Istnieją dystrybucje, które mają ciągłe dystrybucje, które zawsze otrzymują aktualizacje - dlatego nie wszystkie dystrybucje są zgodne z tym pytaniem lub cyklami rozwojowymi Ubuntu
Thomas Ward

Odpowiedzi:

119

Wersja Ubuntu przechodzi kilka etapów, zanim trafi do publicznej wiadomości jako gotowy produkt:

  • Na jakiś czas przed wydaniem Ubuntu w pewnym momencie zamraża swoje pakiety.

  • Przed wydaniem wydania, ale po zamrożeniu pakietu, wykonywane są głównie naprawy wszystkich błędów i problemów, które mogą występować w tych pakietach. Nowe wersje pakietów nie są już importowane do repozytoriów po zawieszeniu pakietu lub funkcji.

  • Po wydaniu wydania dodatkowe zmiany w tych pakietach mają miejsce tylko w celu naprawy błędów i problemów związanych z bezpieczeństwem. Nie ma już żadnych aktualizacji pakietów w oficjalnym repozytorium, nawet jeśli zostaną wydane nowe wersje pakietów.

Nowa wersja pakietów jest konsekwentnie importowana (z Debiana) do następnej wersji Ubuntu, dopóki nie nastąpi kolejne zamrożenie i ten sam proces się nie powtórzy.

Jako przykład możesz zajrzeć do harmonogramu wydania 12.04 .

Widać, że chociaż 12.04 zostało wydane w kwietniu, 12 stycznia wydarzyło się coś o nazwie Debian Import Freeze .

Jest to tylko pierwszy z wielu etapów wstrzymania, które mają miejsce przed faktycznym wydaniem i oznacza, że ​​w tym momencie import pakietów z testowania Debiana lub niestabilnych zatrzymuje się i rozpoczyna się praca nad dostosowaniem i naprawieniem problemów z nimi.

Od tego momentu nie jest przeprowadzana żadna aktualizacja wielu pakietów, a wersja, którą pakiet miał w tym momencie, jest wersją obecną i utrzymywaną przez cały okres istnienia wydania.

Tak więc, mimo że w wersjach PPA deweloperów lub w repozytoriach Ubuntu + 1 są wyższe wersje tego samego pakietu, zostaną one uwzględnione tylko w następnej wersji Ubuntu.

Odbywa się to w celu zapewnienia stabilności, bezpieczeństwa i funkcjonalności. Nowe pakiety krwawienia importowane przez cały czas do głównego repozytorium oznaczałyby problemy i znacznie więcej problemów do rozwiązania. Zawieszenie w wersji pakietów pomaga rozwiązać ten problem i sprawia, że ​​Ubuntu jest bezpieczniejszy i bardziej stabilny dla użytkownika końcowego.

Nowa wersja Ubuntu jest wydawana co 6 miesięcy, więc co 6 miesięcy nowe pakiety są przygotowywane, testowane, dostosowywane i wydawane z nową wersją. Przyszłe wersje pakietów można zainstalować w systemie za pośrednictwem PPA lub po prostu pobierając je ze strony internetowej, ale wersja pakietu w oficjalnym repozytorium pozostaje taka sama.

Aby uzyskać więcej zrozumienia i interesujący przegląd tego, co stało się z Ubuntu od 10.04 do premiery 12.04, zajrzyj na ReleaseSchedule - LTS na LTS i na stronie Aktualizacje stabilnych wersji, aby uzyskać pełny przegląd i wyjaśnienie stabilnej wersji Ubuntu.

Bruno Pereira
źródło
2
Wydaje się, że istnieją wyjątki od tej zasady, szczególnie w przypadku przeglądarek internetowych (Firefox, Chromium). Podczas gdy ponad 95% pakietów może być zgodne z poniższymi wskazówkami, przeglądarka internetowa może być najczęściej używaną aplikacją dla większości użytkowników.
dotpush,
Jeśli chcesz mieć najnowsze oprogramowanie, użyj repozytorium PPA Launchpad.
iBug
@iBug lub użyj innej dystrybucji, takiej jak Arch Linux lub NixOS, lub zainstaluj Homebrew w systemie Ubuntu.
Boris
16

Dwa powody. Pierwszy jest dość oczywisty: wymaga od człowieka poświęcenia czasu na aktualizację pakietu, gdy pojawi się nowy pakiet. Po drugie, jeśli używasz stabilnej wersji, w przeciwieństwie do obecnej wersji programistycznej, pakiety celowo NIE są celowo aktualizowane bezmyślnie, aby uniknąć uszkodzenia. Zobacz http://wiki.ubuntu.com/StableReleaseUpdates .

psusi
źródło
3
„wymaga to od człowieka poświęcenia czasu na aktualizację pakietu, gdy pojawi się nowy pakiet”, to oczywiście nieprawda, wszystko można zautomatyzować. Prawdziwy powód jest drugim, o którym wspomniałeś.
gented
15

Pakiety są zamrożone do wydania i nie są później aktualizowane z wielu powodów. Jeśli nowe wersje zostały wprowadzone po wydaniu, to nowa wersja ...

  • może przynieść nowe błędy, a tym samym zresetować funkcjonalność obecną w momencie wydania
  • potrzebuje siły roboczej do pakowania, testowania i przesyłania
  • potrzebuje własnego zestawu aktualizacji zabezpieczeń
  • potrzebuje zaktualizowanych tłumaczeń interfejsu użytkownika
  • potrzebuje zaktualizowanej dokumentacji (i tłumaczeń)
  • sprawia, że ​​wsparcie techniczne jest trudniejsze
  • może denerwować użytkowników, którzy przyzwyczaili się do funkcji w starej wersji
  • mogą wymagać nowszych zależności, które mogłyby uszkodzić inne aplikacje, gdyby zostały zmienione w repozytorium
  • może uszkodzić inne pakiety, które zależą od tego
  • może uszkodzić skrypty użytkownika, szablony, narzędzia itp. utworzone dla starej wersji

To powiedziawszy, pamiętaj, że są przypadki, w których Ubuntu robi pełne aktualizacje wersji oprogramowania w repozytorium. Firefox na przykład.

Ponadto istnieje repozytorium ubuntu-backports, w którym użytkownicy mogą zdecydować, które aktualizacje pakietów oprogramowania nie powodują problemów takich jak te wymienione powyżej. Nie jest domyślnie włączony, więc użytkownicy muszą się na niego włączyć, co ma na celu wyeliminowanie niespodzianki, że oprogramowanie zmienia się spod ciebie. Ponadto, nie ma dużego personelu, więc nie jestem pewien, jak często pakiety faktycznie otrzymują aktualizacje.

Co więcej, zespół SRU niedawno zaktualizował trochę zasady, które, mam nadzieję, sprawią, że nieco łatwiej będzie uzyskać aktualizacje pakietu zawierającego tylko poprawki błędów.

Bryce
źródło
11

Zwykle aktualizacje w wydanych wersjach Ubuntu dotyczą bezpieczeństwa i poprawek błędów, przykłady takich błędów obejmują:

  • Błędy, które w realistycznych okolicznościach mogą bezpośrednio powodować lukę w zabezpieczeniach. Są one wykonywane przez zespół bezpieczeństwa i są udokumentowane w SecurityTeam / UpdateProcedures.

  • Błędy, które reprezentują poważne regresje z poprzedniej wersji Ubuntu. Obejmuje to pakiety, które są całkowicie bezużyteczne, takie jak niemożność odinstalowania lub awaria podczas uruchamiania.

  • Błędy, które w realistycznych okolicznościach mogą bezpośrednio powodować utratę danych użytkownika Błędy, które nie pasują do powyższych kategorii, ale (1) mają oczywiście bezpieczną łatkę i (2) wpływają na aplikację, a nie na pakiety infrastruktury krytycznej (takie jak X.org lub jądro).

  • W przypadku wersji wsparcia długoterminowego regularnie chcemy włączać nowy sprzęt. Takie zmiany są odpowiednie, pod warunkiem, że możemy zapewnić, że nie wpłyną na aktualizacje istniejącego sprzętu. Na przykład modyfikacje nowo wprowadzonych sterowników nie mogą pokrywać się z poprzednio dostarczonymi sterownikami. -Nowe wersje oprogramowania komercyjnego w archiwum partnerów Canonical.

    -FTBFS (nie można zbudować ze źródła) można również rozważyć. Należy pamiętać, że zasadniczo proces wydania zapewnia, że ​​nie ma plików binarnych, które nie są zbudowane z bieżącego źródła. Zazwyczaj te błędy powinny być usuwane tylko w połączeniu z inną poprawką.

    -W przypadku nowych wcześniejszych wersji pakietów, które zapewniają nowe funkcje, ale nie naprawiają krytycznych błędów, zamiast tego należy poprosić o backport.

Zaczerpnięte z doskonałej strony wiki StableReleaseUpdates .

pl1nk
źródło
11

Postaram się odpowiedzieć na twoje pytania w oparciu o moje wcześniejsze doświadczenia z forów ubuntu i planety ubuntu.

Chyba zastanawiam się, w jaki sposób repozytoria apt są aktualizowane i przez kogo.

Repozytoria APT są aktualizowane przez zespół zajmujący się pakowaniem w Ubuntu. Zespół zajmujący się pakowaniem otrzymuje wszystkie pakiety wysyłane od deweloperów, którzy przeprowadzają wstępne testy opakowań i inne rzeczy. Następnie zespół testujący wykonuje testy końcowe, dając sygnał do uruchomienia. Ale zespół pakujący i zespoły testujące bardzo ostrożnie podchodzą do zależności, a ich strona wpływa na stabilny system.

Czy występuje opóźnienie, czy to dlatego, że deweloper nie opublikował najnowszej wersji na odpowiednim serwerze?

Jeśli zobaczysz zmiany w górę, są tysiące programistów, którzy chcą wypchnąć swoje pakiety. Ale nie wszystkim udało się wejść do głównego strumienia, ponieważ z różnych powodów. Załóżmy, że aplikacja Gedit jest zgodna z wersją 2.2 i działa dobrze z Dbus 2.1 i Gtk 2.4 itd. Tam, gdzie jako wersja Gedit 2.4 (bardzo nowa) potrzebuje Gtk 2.5 i Dbus2.3 do działania. Teraz zespół testujący i pakujący (także zespół wydający) nie akceptuje tego, ponieważ zmiana istniejącego systemu ze starym dbus i gtk na nowy psuje wszystko inne. Mam nadzieję, że masz punkt piekła zależności.

Czy programista ma o wiele więcej pracy przy wprowadzaniu wersji do formy, z której może korzystać repozytorium?

Nie do kanału upstream. Ale do kanału wydania tak :).

PS: W kanonicznym procesie może nastąpić trochę zmian w porównaniu z tym, co wyjaśniono powyżej. Ale mniej więcej tak samo.

Zenwalker
źródło
6

Zaakceptowana odpowiedź w linku fossfreedom opublikowanym jako komentarz jest bardzo dobra.

Zasadniczo wersje pakietów wydane po pierwszej części procesu opracowywania nowej wersji nie pojawiają się w głównych repozytoriach tej wersji, aby można było dokładnie przetestować niezawodną wersję Ubuntu.

Może się okazać, że niektóre pakiety zostały wydane do repozytorium backports, jeśli zostaną pomyślnie włączone do przyszłej wersji Ubuntu i jeśli programiści uważają, że będzie działać również z wcześniejszymi. Backports można aktywować i dezaktywować w Centrum oprogramowania (Edycja-> Źródła oprogramowania-> Karta Aktualizacje-> Nieobsługiwane aktualizacje)

John S Gruber
źródło
1
Jak wspomniano w innym miejscu, backports są rzadkie i nie ma ich wiele.
Thomas Ward
-3

Odpowiedź nie jest pełna.

Istnieje NIEKTÓRY pakiet, który można zainstalować w wersji backport z Software Center. Po prawej stronie okna, tuż po lewej stronie przycisku Instaluj / Zmień znajduje się pole wyboru, w którym możesz zmienić wersję.

Exempli gratia: Domyślnie conkyjest teraz 1.8.xi masz tam 1.9.0 (precise-backports)jako backport. Oczywiście najpierw należy włączyć backporty.

Źródło: http://bugs.launchpad.net/ubuntu/+source/conky/+bug/1003727

EDYCJA: Jak stwierdzono poniżej, nie każda paczka ma backport, ale możesz mieć wczesny dostęp, jeśli masz szczęście.

Benzoes
źródło
3
Backports nie są dostępne dla każdej paczki ...
papukaija