cz. 1 | Gentoo - (Dystrybucje GNU/Linux)
Witam.
W tym artykule opiszę moje pierwsze wrażenia z użytkowania Gentoo, jakie są plusy oraz minusy tej dystrybucji według mnie.
UWAGA: Gentoo nie jest dystrybucją dla osób które chcą dopiero zacząć przygodę z Linuksem, dla takich osób jest Ubuntu.
Gentoo jest dystrybucją ciągłą nie podzieloną na wydania, aby mieć zawsze aktualny system wystarczy po prostu aktualizować pakiety na bieżąco - niema żadnej potrzeby aktualizacji wydania, pakiety są zawsze świeże.
Według opinii wielu ludzi Gentoo jest trudne w obsłudze, jednak ja myślę, że wystarczy coś poznać aby to stało się bliższe i łatwiejsze - ludzie boją się tego co niewiadome.
Instalacja
Wbrew pozorom nie jest trudna dla kogoś kto majstrował przy systemach Uniksowych wiedząc co wklepuje do konsoli. Wystarczy podążać za wskazówkami Handbooka ze strony Gentoo aby zainstalować system bez problemów.
Gentoo nie posiada domyślnie instalatora, niektórzy mogą zadać sobie pytanie - "to jak można zainstalować to Gentoo" jednak zasada jest prosta. Potrzebujemy już zainstalowanego systemu Linux, może być na dysku twardym, pendrive czy jako live na płycie CD/DVD. Instalacja polega na rozpakowaniu głównych plików Gentoo na specjalnie utworzonej partycji dla systemu, przy pomocy chroot wejść do rozpakowanego systemu, skompilować jądro, ustawić punkty montowania w /etc/fstab, język systemu, skonfigurować boot loader oraz zainstalować opcjonalne pakiety potrzebne do np. połączenia z siecią przy pierwszym włączeniu.
Dla tych którzy jeszcze są nie wtajemniczeni i nic Im nie mówi nazwa chroot postaram się krótko i treściwie wytłumaczyć.
Chroot inaczej "change root", zmiana katalogu głównego zarówno w teorii jak i w praktyce. Otwieramy dowolną powłokę (terminal), następnie wpisujemy chroot /mnt/gentoo aby zmienić katalog systemowy z / na /mnt/gentoo - wtedy / jest jako /mnt/gentoo. Jednak najpierw trzeba zamontować główne systemy plików - /dev z urządzeniami czy /proc.
Działanie
Ręcznie skompilowane jądro z ręcznie wybranymi modułami tylko takimi które potrzebujemy wydaje się być responsywniejsze lecz nie przeprowadzalem żadnych testów porównawczych.
System na starym dysku ATA startuje ok. 10 sec razem z usługą /etc/init.d/net.eth0 która zajmuje kilka sek. aby podłączyć system do sieci.
Jeżeli chodzi o reposnsywność to środowisko zbudowane z gotowych różnych elementów zbliżone do LXDE chodzi bardzo szybko. Wydaje się jakby nie było żadnych opóźnień, jeden klik i coś znika lub pojawia się zanim zdążymy spuścić lekko palec z myszki.
Mam dla porównania Ubuntu 10.10 i muszę powiedzieć, że to straszny muł w porównaniu do Gentoo, może nawet kilka razy wolniej chodzi - a szczególnie nautilus ;)
Instalacja pakietów
Portage to bardzo zaawansowany system zarządzania pakietami napisany w języku Python. Pozwala na bardzo elastyczne operacje jak instalowanie kilku pakietów w jednym czasie czy możliwość instalacji dowolnej wersji z repozytorium - w repozytorium może być kilka wersji danego programu, zawsze można zainstalować starszą jeśli nowsza nie działa lub odwrotnie.
Sama instalacja pakietów jest prosta i składa się z takich etapów: 1. Sprawdzenie możliwych flag użytkowych "USE" 2. Wybranie pasujących nam flag 3. Instalacja pakietu
W razie jakichkolwiek błędów log kompilacji dostarcza wszelkich potrzebnych informacji do rozwiązania problemu - błąd kompilacji znajduje się na samym dole czyli tam gdzie kompilacja została przerwana z powodu błędu dlatego nie trudno go wykryć.
Muszę przyznać, że Gentoo nie jest dla ludzi którzy nie myślą przed wydaniem jakiegokolwiek polecenia bo przepisują lub kopiują je z forów - tutaj trzeba często pogooglować, przeanalizować logi czego się nie robi w zwykłych dystrybucjach oferujących binarne pakiety.
Konfiguracja
AKTUALIZACJA: 23.12.2010
Pliki konfiguracyjne w Gentoo są przemyślane i bardzo estetyczne.
W pliku /etc/make.conf znajdują się opcje dotyczące kompilacji i instalacji oprogramowania które informują menadżer pakietów w jakim języku są instalowane aplikacje, z jakimi flagami USE (obsługa dodatkowych funkcji np. obsługa bazy danych MySQL, SQLite przez aplikację), czy pod jaką architekturę sprzętową mają być optymalizowane programy.
W /etc/conf.d znajdują się ważniejsze pliki konfiguracyjne różnych programów.
Przykładowo:
/etc/conf.d/fsck
# Pass any arguments to fsck. # By default we preen. # Linux systems also force -C0 and -T. # If fsck_args is not specified then Linux systems also use -A # (and -R if / is rw) #fsck_args="-p" # We can also specify the passno in /etc/fstab to check # If you multiplex fsck (ie ln -s fsck /etc/init.d/fsck.late) then you can # do an fsck outside of the normal scope, say for /home. # Here are some exampes:- #fsck_passno="=1 =2" #fsck_passno=">1" #fsck_passno="<2" # Most modern fs's don't require a full fsck on boot, but for those that do # it may be advisable to skip this when running on battery. # WARNING: Do not turn this off if you have any JFS partitions. fsck_on_battery="YES" # fsck_shutdown causes fsck to trigger during shutdown as well as startup. # The end result of this is that if any periodic non-root filesystem checks are # scheduled, under normal circumstances the actual check will happen during # shutdown rather than at next boot. # This is useful when periodic filesystem checks are causing undesirable # delays at startup, but such delays at shutdown are acceptable. fsck_shutdown="NO"
Do edycji konfiguracji systemu oraz jego programów służy także wbudowane narzędzie eselect.
Usage: eselect <global options><module name><module options> Global options: --brief Make output shorter --no-color,--no-colour Disable coloured output Built-in modules: help Display a help message usage Display a usage message version Display version information Extra modules: bashcomp Manage contributed bash-completion scripts binutils Manage installed versions of sys-devel/binutils boost Manage boost installations ctags Manage /usr/bin/ctags implementations editor Manage the EDITOR environment variable env Manage environment variables set in /etc/env.d/ esd Select esound daemon or wrapper fontconfig Manage fontconfig /etc/fonts/conf.d/ symlinks java-nsplugin Manage the Java plugin for Netscape-like Browsers java-vm Manage the Java system and user VM kernel Manage the /usr/src/linux symlink mesa Manage the OpenGL driver architecture used by media-libs/mesa modules A module for querying modules. By default, it lists all available modules news Read Gentoo ("GLEP 42") news items opengl Manage the OpenGL implementation used by your system pager Manage the PAGER environment variable php Manage php installations pinentry Manage /usr/bin/pinentry symlink profile Manage the /etc/make.profile symlink python Manage Python symlinks rc Manage /etc/init.d scripts in runlevels visual Manage the VISUAL environment variable wxwidgets Manage the system default wxWidgets profile. xvmc Manage the XvMC implementation used by your system
Przy pomocy eselect możemy czytać komunikaty od deweloperów Gentoo, zarządzać usługami startowymi, ustawiać zmienne środowiskowe, ustawiać domyślne aplikacje, czy konfigurować niektóre programy/usługi.
Narzędzie dispatch-conf służy do aktualizowania plików konfiguracyjnych. Pokazuje zmiany w plikach konfiguracyjnych po aktualizacji i przed aktualizacją co bardzo ułatwia aktualizowanie konfiguracji bez utraty poprzednich danych konfiguracyjnych.
Podsumowanie
[color=#32CD32]Plusy: [color=#32CD32]+ Szybkość, responsywność przez optymalizację dla naszego sprzętu [color=#32CD32]+ Dostosowywalność, konfiguralność przez dużo autorskich narzędzi czy najważniejsze flagi kompilacyjne [color=#32CD32]+ Możliwości Portage które trudno znaleźć w innych menadżerach pakietów [color=#32CD32]+ Dobra dokumentacja [color=#32CD32]+ Duże repozytorium, bardzo proste w użyciu nakładki przez narzędzie "layman" [color=#32CD32]+ Metoda instalacji [color=#32CD32]+ Bajecznie prosta konfiguracja i kompilacja jądra
[color=#FF4500]Minusy: [color=#FF4500]- Często kompilacja trwa bardzo długo [color=#FF4500]- Trudności przy kompilacji niektórych pakietów z niestabilnego repozytorium [color=#FF4500]- Na początku wszystko jest bardzo skomplikowane
Pozostałe części "Dystrybucje GNU/Linux": cz. 1 | Gentoo cz. 2 | Debian cz. 3 | Arch Linux