23.2. FreeBSD-CURRENT kontra FreeBSD-STABLE

Istnieją dwie gałęzie rozwoju FreeBSD: FreeBSD-CURRENT i FreeBSD-STABLE. Sekcja ta omówi każdą z nich po krótce oraz opisze w jaki sposób możemy utrzymać nasz system na bieżąco z każdym poszczególnym drzewem. FreeBSD-CURRENT zostanie omówiony jako pierwszy, następnie FreeBSD-STABLE.

23.2.1. Podążanie za FreeBSD-CURRENT

Czytając to pamiętajmy, że FreeBSD-CURRENT znajduje się “na czele” rozwoju FreeBSD. Od użytkowników FreeBSD-CURRENT oczekuje się wysokiego stopnia umiejętności technicznych oraz umiejętności samodzielnego rozwiązywania trudnych problemów systemowych. Jeżeli jesteśmy nowymi użytkownikami FreeBSD lepiej zastanówmy się dwa razy zanim się na to zdecydujemy.

23.2.1.1. Czym jest FreeBSD-CURRENT?

FreeBSD-CURRENT to zbiór najnowszych sprawnych źródeł FreeBSD. Zawiera niedokończone prace, eksperymentalne zmiany a także przejściowe mechanizmy które mogą lub nie, zostać umieszczone w kolejnym oficjalnym wydaniu oprogramowania. Podczas, gdy wielu deweloperów FreeBSD kompiluje kod źródłowy FreeBSD-CURRENT codziennie, zdarzają się okresy czasowe, kiedy źródła nie mogą zostać zbudowane. Takie problemy rozwiązywane są tak szybko jak to możliwe, ale to, czy FreeBSD-CURRENT spowoduje szkody, czy wniesie długo oczekiwane usprawnienia zależy często od momentu, w którym zastaniemy kod źródłowy!

23.2.1.2. Kto potrzebuje FreeBSD-CURRENT?

FreeBSD-CURRENT jest kierowany do 3 podstawowych grup zainteresowań:

  1. Członkowie społeczności FreeBSD którzy aktywnie pracują nad częściami drzewa źródłowego oraz dla których utrzymywanie “current” jest warunkiem koniecznym.

  2. Członkowie społeczności FreeBSD którzy są aktywnymi testerami, gotowymi poświęcić czas na rozwiązywanie problemów aby zapewnić, że FreeBSD-CURRENT pozostanie tak stabilny jak to możliwe. Są to rownież ludzie, którzy wysuwają pewne fachowe sugestie dotyczące zmian a także generalnego kierunku rozwoju FreeBSD, często nadsyłający łatki implementujące zmiany.

  3. Ci, którzy rzadko pilnują czegokolwiek lub używają źródeł current-a do celów informacyjnych (np. po to aby czytać kod, a nie go używać). Okazjonalnie zdarza im się wnosić wkład w rozwój, w postaci kodu czy komentarza.

23.2.1.3. Czym FreeBSD-CURRENT Nie jest?

  1. Szybkim sposobem na zdobycie przedwydaniowych części, ponieważ usłyszeliśmy, że mają one jakieś nowe, cudowne właściwości i chcemy być pierwszymi z naszego bloku, którzy je zdobędą. To, że jako pierwsi z naszego bloku zdobędziemy nową opcję znaczy, że będziemy rownież pierwszymi, u których pojawią się nowe błędy.

  2. Szybkim sposobem na zdobycie łatek naprawiających błędy. Każda dana wersja FreeBSD-CURRENT w podobnym zakresie naprawia poprzednie błędy co wnosi nowe.

  3. W żaden sposób “wspierana oficjalnie”. Robimy co w naszej mocy aby realnie pomóc ludziom z jednej z 3 “słusznych” grup FreeBSD-CURRENT, ale po prostu nie mamy czasu aby zapewnić odpowiednie wsparcie techniczne. Nie dla tego, że jesteśmy wrednymi i złymi ludzmi, którzy nie lubią pomagać innym (gdybyśmy byli, nie tworzylibyśmy nawet FreeBSD). Po prostu nie możemy odpowiadać na setki wiadomości codziennie i jednocześnie pracować nad FreeBSD! W wyborze pomiędzy ulepszaniem FreeBSD a odpowiadaniem na stosy pytań dotyczących eksperymentalnego kodu, deweloperzy optują za tym pierwszym.

23.2.1.4. Używanie FreeBSD-CURRENT

  1. Zapiszmy się na listy freebsd-current i cvs-all. Nie jest to tylko dobra rada, jest to wręcz niezbędne. Jeżeli nie jesteśmy zapisani na listę freebsd-current, nie będziemy mógli obserwować komentarzy ludzi, dotyczących obecnego stanu systemu i prawdopodobnie będziemy głowić się nad wieloma problemami, które inni już odkryli i rozwiązali. Co ważniejsze, przegapimy ważne biuletyny, które mogą mieć istotny wpływ na kondycję naszego systemu.

    Lista cvs-all pozwoli nam na obserwowanie dokumentacji każdej wprowadzanej zmiany razem ze stosownymi informacjami dotyczącymi jej ewentualnych efektów ubocznych.

    Aby dołączyć do wyżej wymienionych list lub jednej z innych dostępnych, przejdźmy do http://lists.FreeBSD.org/mailman/listinfo i kliknijmy listę, którą chcemy subskrybować. Tam znajdziemy resztę potrzebnych informacji.

  2. Zdobądźmy źródła ze strony lustrzanej FreeBSD. Można to zrobić na dwa sposoby:

    1. Użyjmy programu cvsup z supfile o nazwie standard-supfile znajdującego się w /usr/share/examples/cvsup. Jest to najbardziej zalecana metoda, ponieważ umożliwia pozyskanie całej kolekcji za jednym razem a przy kolejnych użyciach, jedynie tego co zostało zmienione. Wielu ludzi używa cvsup dopisanego do cron'a, automatycznie utrzymując swoje źródła zaktualizowane. Musimy zmienić przykładowy supfile zamieszczony powyżej, i skonfigurować cvsup dla potrzeb naszego środowiska

    2. Użyjmy CTM. Jeśli posiadamy bardzo kiepskie połączenie (np. drogie lub jedynie z dostępem do e-maila) opcją jest CTM. Niemniej jednak, jest z tym trochę męczenia i może także skutkować uszkodzonymi plikami. Doprowadziło to do tego, że metoda ta jest raczej rzadko używana, co zwiększa znowu szanse na niedziałanie przez długie okresy czasu. Zalecamy więc używanie CVSup każdemu, kto posiada modem o przepustowości 9600 bps lub szybsze łącze.

  3. Jeśli pozyskujemy źródła aby ich używać a nie tylko przeglądać, wybierzmy all z FreeBSD-CURRENT zamiast wybranych części. Powodem tego jest to, że różne częsci źródeł zależą od aktualizacji w innych częściach więc kompilacja podgrupy prawie zawsze gwarantuje wpędzenie się w kłopoty.

    Przed rozpoczęciem kompilacji FreeBSD-CURRENT, dokładnie przeczytajmy Makefile z /usr/src. Powinniśmy, przynajmniej za pierwszym razem zainstalować nowe jądro i przebudować świat jako część procesu aktualizacji. Czytanie FreeBSD-CURRENT mailing list i /usr/src/UPDATING zapewni, że będziemy na bieżąco ze wszystkimi innymi procedurami rozruchowymi, które czasem stają się niezbędne, kiedy przechodzimy do następnego wydania.

  4. Bądźmy aktywni! Jeśli używamy FreeBSD-CURRENT deweloperzy chcieliby wiedzieć co mamy o nim do powiedzenia, zwlaszcza jeśli posiadamy jakies sugestie dotyczące ulepszeń czy naprawy błędów. Sugestie z dołączonym kodem są przyjmowane wyjątkowo entuzjastycznie!

23.2.2. Podążanie za FreeBSD-STABLE

23.2.2.1. Czym jest FreeBSD-STABLE?

FreeBSD-STABLE jest gałęzią rozwojową, z której tworzone są główne wydania. Zmiany w tej gałęzi wprowadzane są z inną prędkością, zakładając, że najpierw pomyślnie przeszły testy w FreeBSD-CURRENT. Jednakże, jest to ciągle gałąź rozwojowa, co oznacza, że w danym czasie źródła FreeBSD-STABLE mogą, lub nie, być odpowiednie do konkretnego celu. Jest to po prostu kolejna deweloperska ścieżka a nie źródło dla zwykłych użytkowników.

23.2.2.2. Kto potrzebuje FreeBSD-STABLE?

Jeżeli jesteśmy zainteresowani śledzeniem, lub wniesieniem wkładu w proces rozwoju FreeBSD, zwlaszcza jeśli łączy się to z następnym “głównym” wydaniem FreeBSD, powinniśmy wtedy rozważyć podążanie za FreeBSD-STABLE.

Podczas, gdy prawdą jest, że łatki bezpieczeństwa również trafiają do gałęzi FreeBSD-STABLE, wcale nie musimy podążać za FreeBSD-STABLE aby je mieć. Każdy poradnik bezpieczeństwa (ang. security advisory) FreeBSD wyjaśnia jak naprawić problem w wydaniach, w których on występuję [1] a śledzenie całej gałęzi rozwojowej tylko ze względów bezpieczeństwa najpewniej przyniesie wiele niechcianych zmian.

Pomimo tego, że staramy się zapewnić żeby gałąź FreeBSD-STABLE kompilowała się i działała cały czas, nie można tego zagwarantować. Dodatkowo, podczas gdy kod jest rozwijany w FreeBSD-CURRENT przed wprowadzeniem go do FreeBSD-STABLE, więcej ludzi używa FreeBSD-STABLE niż FreeBSD-CURRENT więc nieuchronne jest, aby błędy lub przeoczenia, które nie były widoczne w FreeBSD-CURRENT odnajdywano czasem w FreeBSD-STABLE.

Z tych powodów nie zalecamy ślepego podążania za FreeBSD-STABLE i jest szczególnie ważne aby nie aktualizować żadnych serwerów produkcyjnych do FreeBSD-STABLE bez uprzedniego gruntownego prztesowania kodu w swoim środowisku deweloperskim.

Jeżeli nie ma możliwości zrobienia tego, zalecamy abyś używał jak najnowszego wydania FreeBSD i wykorzystywał binarny mechanizm aktualizacji do przesiadania się na kolejne wydania.

23.2.2.3. Używanie FreeBSD-STABLE

  1. Dołączmy do listy freebsd-stable. To pozwoli nam na bycie zorientowanymi w zależnościach dotyczących budowy, które mogą pojawić się w FreeBSD-STABLE a także w innych kwestiach wymagających uwagi. Również na tej liście mailingowej deweloperzy będą ogłaszać swoją niepewność dotyczącą jakiejś kontrowersyjnej poprawki czy aktualizacji, dając użytkownikom możliwość reakcji, jeśli będą oni mieli jakieś argumenty odnośnie proponowanej zmiany.

    Lista cvs-all pozwoli na obserwację dokumentacji każdej wprowadzanej zmiany, razem, ze stosownymi informacjami dotyczącymi jej ewentualnych efektów ubocznych.

    Aby dołączyć do wyżej wymienionych list lub jednej z innych dostępnych, przejdźmy do http://lists.FreeBSD.org/mailman/listinfo i kliknijmy listę, którą chcemy subskrybować. Tam znajdziemy resztę potrzebnych informacji.

  2. Jeżeli zamierzamy zainstalować nowy system i chcemy użyć comiesięcznej migawki zbudowanej z FreeBSD-STABLE, sprawdźmy stronę z Migawkami w celu uzyskania więcej informacji. Alternatywnie, możliwe jest zainstalowanie najnowszego FreeBSD-STABLE ze stron lustrzanych i podążanie za instrukcjami poniżej w celu zaktualizowania systemu do jak najnowszej wersji kodu źródłowego FreeBSD-STABLE.

    Jeżeli używamy poprzedniego wydania FreeBSD i chcemy zaktualizować go poprzez źródła, możemy to w prosty sposób zrobić korzystając ze stron lustrzanych $os;. Można tego dokonać na dwa sposoby:

    1. Użyjmy programu cvsup z supfile o nazwie stable-supfile znajdującego się w /usr/share/examples/cvsup. Jest to najbardziej zalecana metoda ponieważ pozwala na jednorazowe pozyskanie całej kolekcji, a przy kolejnych użyciach, jedynie tego co zostało zmienione. Wielu ludzi używa cvsup dopisanego do cron'a, automatycznie utrzymując swoje źródła zaktualizowane. Musimy zmienić przykładowy supfile wymieniony powyżej i skonfigurować cvsup dla potrzeb naszego środowiska

    2. Użyj CTM. Jeśli nie posiadamy szybkiego i taniego połączenia z internetem powinniśmy wziąść pod uwagę skorzystanie z tej metody.

  3. Szczególnie jeśli potrzebujemy błyskawicznego dostępu do źródeł na żądanie, a szerokośc pasma komunikacji nie gra roli, użyjmy cvsup lub ftp. W innym przypadku skorzystajmy z CTM.

  4. Przed rozpoczęciem kompilacji FreeBSD-STABLE, dokładnie przeczytajmy Makefile z /usr/src Powinniśmy, przynajmniej za pierwszym razem, zainstalować nowe jądro i przebudować świat jako część procesu aktualizacji. Czytanie FreeBSD-STABLE mailing list i /usr/src/UPDATING zapewni, że będziemy na bieżąco ze wszystkimi innymi procedurami rozruchowymi, które czasem stają się niezbędne, kiedy przechodzimy do następnego wydania.

Przypisy

[1]

Nie jest to do końca prawdą. Nie możemy kontynuować wspierania starych wydań FreeBSD w nieskończoność, aczkolwiek wspieramy je przez wiele lat. Po kompletny opis polityki bezpieczeństwa dotyczącej starych wydań FreeBSD, zobacz http://www.FreeBSD.org/security/.

Ten i inne dokumenty można pobrać z ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

W przypadku pytań o FreeBSD prosimy przeczytać dostępną dokumentację przed kontaktem z <questions@FreeBSD.org>.
W sprawie zapytań o tę dokumentację prosimy o kontakt z <doc@FreeBSD.org>.