O co chodzi?

Czym właściwie jest Linux From Scratch?
Bardzo często jest nazywany dystrybucją linuksa, jest wymieniony na distrowatch . Dystrybucja to w wielkim skrócie zestaw programów dobranych w ten sposób, że razem tworzą po zainstalowaniu gotowy do pracy system. Jej instalacja to zazwyczaj wykorzystanie gotowych obrazów płyt cd/dvd przygotowywanych przez twórców dystrybucji.

Tymczasem Linux From Scratch nie dostarcza gotowego do instalacji zestawu oprogramowania. Dostarcza instrukcji jak samemu taki zestaw przygotować i zainstalować na swoim komputerze. Poczynając od instrukcji pobrania podstawowych programów, będących nieodłącznymi elementami systemu operacyjnego, poprzez ich konfigurację, kompilację, instalację aż do uzyskania samodzielnie uruchamiającego się systemu operacyjnego.

Czemu miałbym to wszystko robić?
Zwłaszcza jeśli istnieje spora ilość stabilnych, często aktualizowanych i dostarczających najnowszego oprogramowania dystrybucji? Odpowiedź nie jest prosta i chyba nie da się udzielić jednoznacznej. Z jakichś przyczyn ludzie składają od zera różnego rodzaju elektronikę lutując mozolnie podzespoły zamiast kupić gotowca w sklepie RTV, zbijają meble z desek zamast wybrać się do salonu meblowego. Wkładają w to dużo czasu, energii a efekt na pierwszy rzut oka może wyglądać nie najlepiej.

Zwykła ludzka ciekawość jak coś działa od podstaw i satysfakcja z wykonanej pracy – to mogą być dobre motywy na początek.

Kogo może zainteresować projekt LFS?
Stwierdzenie, że osoby chcące poznać działanie systemu linuksowego od podstaw jest banalne ale najbardziej trafne. Instalacja i codzienne użytkowanie dystrybucji w rodzaju Ubuntu jest dzisiaj na tyle łatwe i bezproblemowe, że systemy z logiem pingwina coraz częściej goszczą na desktopach. Po opatrzeniu się na dopieszczone okna Gnome czy KDE zaczyna się pojawiać ciekawość jak to właściwie działa, co dzieje się podczas startu i jakie procesy zachodza na zapleczu.

Mogą to być również osoby od lat korzystające z różnych dystrybucji i powodowane niezadowoleniem ze stosowanych w nich rozwiązań decydujące się wziąść sprawy w swoje ręce.

Możliwość pełnej kontroli nad systemem pozwala na zbudowanie systemu o rozmiarach kilkudziesięciu (czy nawet kilku) MB. To może zainteresować osoby dysponujące ograniczonym miejscem (np. systemy wbudowane)

Powodów może być wiele i długo by mnożyć przykłady. Zawsze jednak w tle przewija się wątek edukacyjny – i to jest główny cel projektu LFS.

Podjęcie wyzwania
Śmiałek decydujący się na realizację projektu nie jest pozostawiony sam sobie. Funkcjonuje kilka list dyskusyjnych, na których zawsze można liczyć na pomocną dłoń. Można też szukać pomocy na IRC-uInstrukcje w książce są na tyle dopracowane i jednoznaczne, że można metodą kopiuj-wklej skończyć budowę w parę dni. I w tym momencie zaczynają pojawiać się problemy:

Problemy z samym sobą
Po przerobieniu kilku rozdziałów (kilku programów) przeklejając polecenia zdajesz sobie sprawę, że to nie o w tym chodzi, że trzeba zwolnić, doczytać, przejrzeć logi, przemyśleć i zrozumieć co się robi. Kolejne kilka rozdziałów i odnotowujesz niepokojąco duży upływ czasu. Szybko licząc wychodzi na to, że w tym tempie czas ukończenia zamknie się w miesiącach więc znowu przyśpieszasz… zwalniasz… itd. Niestety, jest to projekt dla cierpliwych. Całość musi trochę potrwać. Pocieszeniem jest, że w miarę postępów pewne kwestie zaczniesz chwytać w lot i wszystko zacznie nabierać tempa nie tracąc z widoku podstawowego celu – nauki i zrozumienia co się właściwie dzieje.

Problemy techniczne
Błędy podczas konfiguracji, kompilacji i instalacji programów. Dociekanie przyczyn i ich likwidowanie to od teraz Twoja codzienność. Wersje programów wybrane do książki są celowo tak dobrane, by umożliwić bezproblemowy przebieg całego przedsięwzięcia. Pojawiające się błędy to prawie na pewno wynik Twoich odstępstw od instrukcji (nieustawione zmienne środowiskowe, literówki, pominięcie któregoś z kroków)

Teraz to się dopiero zacznie
Ukończenie budowy LFS jest stosunkowo łatwe i da się to zrobić w sensownym czasie. Otrzymujemy surowy, podstawowy system. Na tym etapie większość zainteresowanych kończy swoją przygodę z LFS. Jeśli jednak mamy ambicje by korzystać z niego w codziennej pracy to kolejnym krokiem jest instalacja środowiska graficznego i instalacja programów w nich działających (zobacz projekt BLFS). Tych, którzy przejdą ten etap czeka jeszcze problem przeprowadzania aktualizacji programów, pilnowania zależności, kontrolowania co i gdzie zostaje instalowane z poszczególnym programem itd. Jednym słowem wszystko, co związane z rozbudową i utrzymaniem systemu w dobrym stanie.

+ i –
Samo przerobienie książki LFS i zbudowanie systemu od zera to zdecydowanie same plusy. Utrzymywanie, rozbudowywanie i korzystanie na co dzień z takiego systemu to już suma wad i zalet. Poniżej subiektywny bilans + i – w luźnej kolejności

+:

  • Zdobywasz na prawdę solidny kawał wiedzy o tym jak działa system Linux i jak jest zbudowany
  • Masz całkowitą kontrolę nad systemem. Bardzo stabilnym systemem.
  • Uczysz się pracy z kompilatorem, radzenia sobie z pojawiającymi się problemami
  • Uczysz się w pewnym sensie programowania poznając struktury źródeł programów
  • Szybkość działania systemu – po prawidłowym dobraniu flag kompilatora, opcji skryptu konfiguracyjnego można trochę zyskać, przy standardowym configure,make, make install raczej trudno mówić o jakimś istotnym przyśpieszeniu.

-:

  • Czasochłonność – nie tylko czas kompilowania, czas w sensie ogólnym jaki trzeba poświęcić całości może być spory.
  • Konieczność zastosowania jakiejś metody śledzenia zmian zachodzących w systemie (np. menadżer pakietów)
  • Trzeba samemu dbać o wszelkie zależności pomiędzy programami. Cały łańcuch zależności może być na prawdę długi, może się pojawić wzajemna zależnośc: A wymaga B, B wymaga A.
  • Aktualizacja pakietów – konieczność bycia na bieżąco z pojawiającymi się nowymi wersjami programów
  • NIE nauczysz się administrowania serwerami. To, że ktoś jest w stanie zbudować samochód rajdowy nie oznacza, że jest dobrym kierowcą rajdowym.