Linux

Gentoo Linux – dystrybucja dla wymagających

Ostatnia aktualizacja: 14 września 2023, 00:09

felieton Gentoo Linux jest dystrybucją przeznaczoną dla osób wymagających i ambitnych.
Wydajność i konfigurowalność stawiana jest w niej ponad prostotą użytkowania czy instalacji.
Jest to tzw. dystrybucja oparta o źródła, gdzie każdy jeden program, czy biblioteka ściągane są na komputer użytkownika w postaci kodu źródłowego, następnie kompilowane i instalowane, w przeciwieństwie do dystrybucji binarnych (jak np. Ubuntu czy Fedora), gdzie przy instalacji oprogramowania ściągane są już wersje skompilowane. Daje to użytkownikowi niesamowitą kontrolę nad każdym aspektem funkcjonowania systemu, a także nieosiągalny dla innych dystrybucji poziom wydajności.

Gentoo nie ma stałego modelu wydań (kwartalnie tworzone są tylko profile konfiguracyjne).
Jest dystrybucją aktualizowaną na bieżąco (tzw. „rolling release”), jednak raz na jakiś czas (średnio raz w roku) publikowany jest LiveCD dla osób, które chcą się z nią zapoznać.

Krótka historia.

Na początek chciałbym wspomnieć, że opisana tutaj historia nie jest w 100% poprawna.
Bazowałem na paru różnych źródłach, które niestety nieco inaczej opisywały historię Gentoo.
Główne różnice przypadają na moment zmiany nazwy z Enoch na Gentoo.

Historia Gentoo sięga lat 90., kiedy to utworzony został projekt Stampede Linux, dzisiaj już porzucona dystrybucja (ostatnia aktualizacja na stronie odbyła się ponad 6 lat temu i mówi w skrócie: “…wrócimy… kiedyś…”). Przy okazji właśnie tej dystrybucji pojawia się postać Daniela Robbinsa.
Daniel zajmował się rozwojem systemu pakietów tejże dystrybucji, jednak wskutek konfliktu ze społecznością Stampede, która miała własną wizję tego systemu, Robbins opuścił ten projekt.

Mniej więcej w 1999 roku rozpoczął pracę nad własną dystrybucją, zwaną Enoch.
Miał on być dystrybucją, która koncentruje się głównie wokół wydajności. Pracując na początku samotnie, a później w niewielkim gronie (ok. 10) programistów Daniel potrzebował czegoś, co ułatwiłoby zarządzanie instalacją i kompilacją pakietów, czegoś, co zautomatyzowałoby najczęściej wykonywane czynności. Tak zaczęły powstawać skrypty, które stanowiły podstawę systemu “ebuildów”, obecnych w Gentoo do dzisiaj.

O powstaniu Gentoo źródła piszą różnie. Podam dwa przykłady:

  • w momencie kiedy Enoch miał już ok. 10 programistów Daniel Robbins czuł, że czas na zmianę nazwy, więc została wybrana nowa nazwa projektu: Gentoo;
  • nową nazwę wprowadzono po wznowieniu prac na projektem, którego przyczyny zatrzymania są również różne w zależności od źródła (jedni piszą o problemie z nowo zakupioną przez Robbinsa maszyną, która miała wadliwy chipset, a inni o poważnym problemie z GNU Compiler Collection, co skutkowało przewrotem wśród używanych do budowania tej dystrybucji narzędzi);

Patrząc na ten drugi wątek szerzej, jedna rzecz się zgadza: na czas zatrzymania prac nad Enoch/Gentoo, Daniel zaczął udzielać się przez parę miesięcy w projekcie FreeBSD. Wracając do projektu (po rozwiązaniu wspomnianych wcześniej problemów) Daniel był już mocno zainspirowany systemem zarządzania pakietów Ports. Ta inspiracja doprowadziła do powstania charakterystycznego dla Gentoo systemu zarządzania pakietami oprogramowania: Portage. Nieco później (31 marca 2002 roku) pojawiło się pierwsze, oficjalne wydanie Gentoo Linux.

W roku 2004 Daniel Robbins wycofał się z projektu, motywując swoje posunięcie potrzebą poświęcenia większej ilości czasu rodzinie. Wszystkie prawa autorskie i znaki towarowe przekazał stworzonej przez niego fundacji Gentoo Foundation.
Przez wiele lat później Gentoo urosło w siłę, przyciągając ogromne rzesze użytkowników i programistów. Przez długi czas społeczność Gentoo była wręcz uniwersalnym źródłem wiedzy na temat systemu Linux, a także miejscem, gdzie rozwiązywano praktycznie wszystkie problemy z nim związane. Niestety z powodu częstych “różnic zdań” między fundacją, programistami i użytkownikami, dystrybucja zaczęła podupadać. Przez pewien moment w 2008 roku sama fundacja przestała także istnieć (członkom fundacji nie udało się dopełnić formalności w terminie).

Dzisiaj Gentoo nie jest już tak potężną “siłą” wśród dystrybucji. Częste kłótnie wśród społeczności doprowadziły do masowego porzucania przez programistów jej rozwoju. Tempo prac znacząco spadło, a wraz z nim jej popularność. Kiedyś w pierwszej dziesiątce DistroWatch (przez pewien czas nawet w pierwszej trójce), dzisiaj Gentoo z trudem utrzymuje się na końcu pierwszej dwudziestki. Na szczęście nadal dysponuje dość potężną i wierną społecznością.

Wady i zalety dystrybucji.

Jak każdy kawałek oprogramowania, Gentoo ma swoje mocne i słabe strony. Zaczniemy od słabych:

  • wiedza – Gentoo wymaga od użytkownika znacznie większej wiedzy na temat systemów GNU/Linux, niż inne dystrybucje;
  • czas – do instalacji i konfiguracji Gentoo potrzeba relatywnie dużo czasu, w porównaniu do innych dystrybucji;
  • zasoby – jest to dystrybucja budowana ze źródeł, więc jej instalacja w rozsądnym czasie wymaga dość potężnego komputera (jak na ironię do samego działania dobrze skonfigurowana instalacja Gentoo potrzebuje bardzo niewiele zasobów);

Są to trzy główne grzechy Gentoo, jednak po jakimś czasie w ogóle przestają nam przeszkadzać, głównie z powodu zalet:

  • po raz kolejny wiedza – w tym ujęciu użytkownik Gentoo zdobywa spory zasób wiedzy o dystrybucji i ogólnie systemach GNU/Linux oraz poszczególnych jego składowych;
  • aktualizacje – jak już poświęcimy czas na instalację i konfigurację Gentoo, to etap aktualizacji sprowadza się tylko do wydania 2-3 odpowiednich poleceń, gdzie na każdym etapie będziemy mieli wgląd w to, co zostanie zmienione (nadal jednak aktualizowane pakiety są kompilowane, więc może to chwilę potrwać);
  • dokumentacja – jest potężna i przewiduje znaczą część czynności i spotykanych problemów, przy okazji prowadząc użytkownika za rękę (przykładem może być Gentoo Handbook, który krok po kroku opisuje sposób instalacji i wstępnej konfiguracji);
  • społeczność – mimo, iż w ostatnim czasie się zmniejszyła, nadal jest ogromnym źródłem informacji i pomocy (moc społeczności Gentoo nie leży w jej liczebności, a w poziomie zaawansowania);
  • wydajność – to chyba koronna zaleta Gentoo: system można dopasować do sprzętu, na którym został zbudowany (np. poprzez zastosowanie optymalizacji kodu specyficznych dla danego procesora i dostrojenie do sprzętu konfiguracji jądra Linux), uzyskując prędkość działania i wydajność nieosiągalną dla innych dystrybucji;
  • długowieczność – Gentoo jest dystrybucją, która potrafi przetrwać całe lata, bez konieczności reinstalacji (jest to też cecha innych dystrybucji GNU/Linux);
  • konfiguracja – sami decydujemy, jak będzie wyglądał docelowo nasz system, co będzie w nim zainstalowane oraz w jakich zestawieniach (np. “chcemy obsługę serwera JACK, czy nie?”, “PulseAudio – niepotrzebne”, “GNOME – nie trzeba, wystarczy mi KDE”, “Ffmpeg poproszę z akceleracją sprzętową”, itd.);

Podstawy użytkowania.

Gentoo jest oczywiście dystrybucją Linuksa, więc nie będę tutaj poruszał kwestii, które dla każdej dystrybucji są wspólne. Wymienię za to parę poleceń, które warto znać, aby swobodnie instalować dodatkowe oprogramowanie, a sam system był aktualny i uporządkowany.

1. Polecenie „emerge”
Emerge jest głównym poleceniem systemu Portage. Za jego pomocą realizujemy większość czynności instalacyjno-administracyjnych w systemie. Służy ono przede wszystkim do:

  • instalacji/aktualizacji/usuwania pakietów oprogramowania (reprezentowanych przez tzw. ebuildy, które są swoistym opisem procesu instalacji);
  • czyszczenia nieużywanych zależności;
  • aktualizowania drzewa Portage.

Opcji jest oczywiście więcej, ale skupiam się tutaj tylko na tych najczęściej używanych.
Polecenie jest częścią pakietu sys-apps/portage, który zainstalowany jest domyślnie.

2. Polecenie „revdep-rebuild”
To polecenie (pełna nazwa: reverse dependency rebuild) służy w głównej mierze do badania systemu pod kątem spójności zależności między zainstalowanymi paczkami oprogramowania. Dzięki niemu jesteśmy w stanie przeanalizować cały system pod kątem problemów, a także od ręki go naprawić. Powinna to być pierwsza czynność, jaką wykonujemy po aktualizacji, ponieważ czasami mogą zdarzyć się aktualizacje, które psują zależności (niestety programiści różnie piszą oprogramowanie i jedni dobrze adresują biblioteki, a inni nie… cóż, życie… 😉 ).
Polecenie jest częścią pakietu app-portage/gentoolkit, który zainstalowany jest domyślnie.

3. Polecenie „module-rebuild”
Dzięki tej komendzie możemy przebudować wszystkie opcjonalnie dodane do systemu moduły jądra (np. sterowniki własnościowe nVidia, AMD, czy Broadcom). Przydatne jest wtedy, gdy dokonaliśmy aktualizacji jądra systemowego i potrzebujemy przebudować ręcznie instalowane (poprzez Portage) moduły, a nie pamiętamy konkretnych nazw pakietów lub po prostu chcemy przebudować wszystkie bez zbędnego wysiłku.
Polecenie znajduje się w pakiecie sys-kernel/module-rebuild, który należy doinstalować.

4. Polecenie „equery”
Equery jest kolejnym poleceniem pracującym na drzewie Portage, jednak jego zadaniem jest wyciąganie informacji. Możemy nim znaleźć listę paczek o podanej nazwie, wyświetlić szczegóły danej paczki, sprawdzić jej zależności, czy chociażby uzyskać listę plików należących do danej paczki (lub odwrotnie: sprawdzić do której paczki należy dany plik). Możliwości jest oczywiście więcej.
Polecenie jest częścią pakietu app-portage/gentoolkit, który zainstalowany jest domyślnie.

5. Polecenie „layman”
Layman jest programem zarządzającym tzw. nakładkami (ang. overlay), w których znajdują się dodatkowe, rozwojowe pakiety z oprogramowaniem. Dodając nakładki możemy zyskać dostęp do programów, których nie ma w głównym drzewie Portage. Przykładami takich nakładek mogą być „proaudio”, w którym znajduje się mnóstwo oprogramowania służącego do odtwarzania, konwersji czy tworzenia muzyki lub „gnome”, gdzie rezydują rozwojowe wersje środowiska GNOME.
Polecenie znajduje się w pakiecie app-portage/layman, który należy doinstalować.

6. Polecenie „genlop”
Genlop pozwala nam na uzyskanie informacji statystycznych o procesie budowania paczki.
Jego istotność jest dość duża ze względu na jego zdolności do pokazywania informacji o tym, ile czasu budowały się konkretne paczki, w konkretnych wersjach (łącznie z historią, każdy jeden proces budowania zostaje odnotowany). Potrafi także pokazać informacje o tym, ile czasu zajmie budowanie aktualnie kompilującej się paczki. Jest ono bardzo przydatne przy planowaniu dłuższych aktualizacji (np. dla pakietu LibreOffice, którego kompilacja może trwać od godziny do dwóch, w zależności od możliwości sprzętowych).
Polecenie znajduje się w pakiecie app-portage/genlop, który należy doinstalować.

7. Polecenie „genkernel”
Genkernel pozwala na stworzenie bazowej konfiguracji jądra bez większego wysiłku. Utworzona konfiguracja jądra jest generyczna i bardzo podobna do tej, jaką spotkamy w Gentoo LiveCD. Może też stanowić podstawę do stworzenia własnej konfiguracji, poprzez wyeliminowanie zbędnych elementów.
Polecenie znajduje się w pakiecie sys-kernel/genkernel, który należy doinstalować.

8. Polecenie „eselect”
Eselect to polecenie to zarządzania konfiguracją systemu. Pozwala na ustawianie takich elementów systemu, jak np. domyślna maszyna wirtualna Java, domyślny sterownik OpenGL, włączone moduły „bash completion” (uzupełnianie parametrów poleceń w powłoce Bash za pomocą klawisza TAB), a także pozwala na odczytywanie ważnych komunikatów od twórców Gentoo (np. przy ważniejszych aktualizacjach).
Polecenie znajduje się w pakiecie app-admin/eselect, który zainstalowany jest domyślnie.

9. Polecenie „etc-update”
To polecenie powinno być trzecim w kolejności (po „emerge –update” i „revdep-rebuild”) wywoływanym poleceniem podczas aktualizacji systemu. Jego zadaniem jest (przynajmniej częściowe) zaktualizowanie plików konfiguracyjnych systemu. Sam z siebie potrafi zaktualizować trywialne zmiany, a o te bardziej skomplikowane zapyta użytkownika, pozwalając mu na porównanie plików i zadecydowanie co zrobić dalej (zaktualizować, edytować, zignorować zmiany).
Polecenie znajduje się w pakiecie sys-apps/portage, który zainstalowany jest domyślnie.

Gdzie szukać?

Głównym miejscem, w które należy zajrzeć jest oczywiście strona główna tej dystrybucji: Gentoo.org. Dla potencjalnych użytkowników przydatne są także następujące adresy:

  • gentoo.org/doc/en/handbook/ – podręcznik użytkownika Gentoo (instalacja i podstawy użytkowania);
  • forums.gentoo.org – forum użytkowników Gentoo (z reguły są naprawdę pomocni);
  • wiki.gentoo.org/wiki/Main_Page – nowo uruchomiona witryna Gentoo Wiki;
  • packages.gentoo.org – witryna informacyjna o najnowszych aktualizacjach drzewa Portage, czyli o dodanych i poprawionych paczkach z oprogramowaniem;
  • hplanet.gentoo.org – Planeta Gentoo, czyli informacje na temat projektu od twórców oraz od społeczności (prywatnych blogów wchodzących w skład Planety);
  • bugs.gentoo.org – Gentoo BugZilla, czyli ostatnia deska ratunku, gdy wszystkie sposoby już zawiodły.

Zapraszam więc wszystkich, którzy lubią eksperymentować lub są głodni wiedzy o systemie GNU/Linux do zabawy i eksperymentowania z Gentoo. Być może (tak, jak w moim przypadku) stanie się on Waszym ulubionym systemem na dobre i na złe. 😉

 
Więcej o Gentoo Linux dowiesz się na moim blogu dnadesign.pl

 
Autor: MoroS

 

Click to rate this post!
[Total: 0 Average: 0]

MoroS

profil do usunięcia...

2 komentarze do “Gentoo Linux – dystrybucja dla wymagających

  • Gentoo miało w swojej historii parę takich wybryków. Może wtedy akurat trafiłeś na jeden z nich? Czasami też przy aktualizacji ważniejszych pakietów trzeba robić na zmianę emerge i revdep-rebuild, gdy sam emerge zawiedzie. Takie uroki dystrybucji budowanej ze źródeł: sami doświadczamy problemów, z którymi muszą mierzyć się programiści dystrybucji binarnych. 😉

    Pozdrawiam. 🙂

    Odpowiedz
  • Nie wspominam zbyt dobrze tej dystrybucji, bo ciągle wyrzucała jakieś błędy w konsoli, ale z drugiej strony system po dobrej konfiguracji jest genialny.

    Odpowiedz

Skomentuj Denis Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.