Cechą wolnego oprogramowania jest to, iż próżno szukać go w jednym miejscu. Różne narzędzia rozwijane są przez różnych ludzi w wielu różnych miejscach. Tendencja ta stanowi jeden z filarów tworzenia oprogramowania na zasadzie doboru naturalnego, dlatego trudno tu raczej o centralizację. Użytkownik, który chce od zera, samodzielnie skompletować system GNU z jądrem Linux musi więc wykazać się średnim bądź wysokim poziomem znajomości systemów uniksopodobnych. Tę niedogodność zauważono już po uwolnieniu pierwszych wersji jądra i spontanicznie pojawili się ludzie, którzy dobierając potrzebne im elementy (aplikacje GNU, jądro, biblioteki, skrypty startowe) zaczęli udostępniać je innym jako pewne logiczne całości zwane dystrybucjami.

Czym jest dystrybucja

Dystrybucja zawiera dopasowane do siebie elementy oprogramowania, zgodne ze sobą i przygotowane do bezkonfliktowej pracy. Zawiera też jądro systemu wraz z potrzebnymi modułami i dokumentacją. Ponieważ przygotowywanie takiego wydania systemu pochłania relatywnie dużo czasu i energii, niektóre organizacje i instytucje oferujące dystrybucje żądają za ich używanie symbolicznej opłaty, nieporównywalnie mniejszej niż cena jaką trzeba zapłacić za konkurencyjne, komercyjne systemy. Oferowana często bywa też płatna pomoc techniczna.

Czym dystrybucje różnią się od siebie

Dystrybucje różnią się między sobą zawartością oprogramowania i wersjami poszczególnych składników. Nierzadko też wyposażone są w aplikacje ułatwiające instalowanie składników systemu i administrowanie przy pomocy wygodnego menu. Popularnym standardem stały się systemy zarządzania składnikami oprogramowania (menedżery pakietów). Najbardziej znane to RPM Package Manager (RPM) oraz Advanced Packaging Tool (APT). Istotną cechą pozwalającą odróżnić od siebie dystrybucje jest sposób rozmieszczania plików konfiguracyjnych, drobne różnice w strukturze katalogów głównego systemu plików (ang. root filesystem) i używany menedżer pakietów.

Każda dystrybucja ma swoje zalety i wady. Jedną łatwiej się instaluje, drugą łatwiej zmodyfikować i przystosować do własnych celów. Doświadczony użytkownik nie powinien mieć zbytnich problemów przy przechodzeniu z jednej na drugą. Często dzieje się tak, że wybór pada na wersję, którą najłatwiej się instaluje, albo na tą, która jest akurat dostępna dla naszej platformy sprzętowej. Różnice występują głównie w:

budowie i lokalizacji skryptów inicjalizujących poszczególne elementy systemu położeniu katalogów sposobie dostarczania oprogramowania i kontroli spójności wersji dodatkowych narzędziach ułatwiających (lub utrudniających) administrowanie

Tyle "wnętrze", od strony "zewnętrznej", czyli wizualnej, poszczególne dystrybucje różnią się głównie środowiskiem graficznym. Obecnie istnieją dwa duże środowiska: KDE oraz GNOME i tuż obok nich Xfce oraz kilka pomniejszych które jako używające mało zasobów, nadają się szczególnie na starsze, wolniejsze komputery.

Wybór właściwej dystrybucji

Wybór dystrybucji i znaczenie tego wyboru zależy mocno od zaawansowania użytkownika (administratora) i przeznaczenia systemu. Jeśli priorytetem jest wydajność warto zwrócić uwagę na rozwiązania enterprise oferowane przez Red Hata i SuSE, jeśli chcemy czysty i stabilny system można zastanowić się nad Debianem, Slackware, jeśli zaś chcemy komputer na biurko to można użyć Ubuntu, Auroksa lub Mandrivy. Osobom zainteresowanym programowaniem można polecić Gentoo lub PLD. Jeśli chodzi o Slackware to ma on jeszcze jedną ciekawą cechę — budowę skryptów startowych wzorowano na rozwiązaniach z BSD, a nie jak w większości dystrybucji rozwiązaniach pochodzących z System V. Oznacza to, że mamy tam większą swobodę w konfigurowaniu startu systemu i usług (jeśli potrafimy pisać skrypty powłoki POSIX), ale kosztem naszego czasu.

Podczas gdy doświadczony lub średnio-zaawansowany użytkownik nie powinien mieć większych problemów z wyborem ulubionej dystrybucji systemu, użytkownik początkujący może czuć się tutaj bardzo zagubionym, w związku z ogromną różnorodnością. Wystarczy tylko zajrzeć choćby do serwisu Distrowatch.com, monitorującego dystrybucje GNU/Linuksa i innych wolnych systemów operacyjnych - w bazie zarejestrowane jest ich kilkaset. Spośród tego ogromu jednak wyłania się kilka najważniejszych niejako, najbardziej przyjaznych początkującym a nawet tworzonych szczególnie z myślą o nich. Przyjrzyjmy się im z bliska.

Wybór oprogramowania

Wiele dystrybucji zawiera instalowany domyślnie zestaw programów, które są przydatne w określonych zastosowaniach (np. na komputerze biurkowym będą to inne programy niż na serwerze). Pozwala to na zaoszczędzenie czasu, który poświęcilibyśmy na wyszukiwanie potrzebnych nam aplikacji - z drugiej jednak strony, zazwyczaj utrudnia instalowanie bardzo nietypowych pakietów; utrudnia też stworzenie instalacji z minimalnym zestawem niezbędnych programów.

Dystrybucje z dobranym wstępnie zestawem oprogramowania to np. Mandriva, Suse, Ubuntu, natomiast te, w których możemy każdy pakiet dobierać ręcznie, to np. Debian, Slackware, Arch. Jeżeli instalujemy system na komputer domowy, lub stację roboczą (biurko) w firmie, to znacznie wygodniejsze jest wybranie dystrybucji z wybranym zestawem oprogramowania, ponieważ znacznie oszczędzamy na czasie, poza tym ręczne dobieranie pakietów wymaga pewnej wiedzy. Z kolei, do pewnych zastosowań profesjonalnych (klaster obliczeniowy, stanowisko do rozwijania oprogramowania, czy serwer), kontrola nad instalowanym oprogramowaniem jest znacznie ważniejsza, i w tych przypadkach korzystny może być wybór dystrybucji umożliwiającej ręczny wybór dowolnego oprogramowania.

Wsparcie

Dystrybucje są tworzone przez różne grupy ludzi: firmy, które chcą na tym zarobić (np. Mandriva, Suse, Red Hat) organizacje non-profit (np. Debian) inne grupy ludzi (np. PLD) W każdym z tych przypadków, można otrzymać inną formę wsparcia (pomocy). Jeżeli korzystamy z Linuksa w domu, lub instalujemy w firmie, to najlepsze będą dystrybucje tworzone przez firmy komercyjne, ponieważ skoncentrowane są one na dostarczeniu pomocy: dla początkującego użytkownika w wykonywaniu określonej kategorii zadań (np. prowadzenie biznesu) Natomiast, jeżeli zajmujemy się rozwijaniem oprogramowania, czy po prostu chcemy poznawać ten system, to znacznie korzystniejsze będzie wybranie dystrybucji niekomercyjnej, ponieważ są one tworzone właśnie przez ludzi zainteresowanych tą tematyką i znacznie więcej można się od nich dowiedzieć o działaniu systemu od wewnątrz.

Jest też możliwa inna forma wsparcia - ponieważ GNU/Linux jest w większości otwartym oprogramowaniem, możemy wybrać niekomercyjną dystrybucję, natomiast do rozwiązywania problemów zatrudnić własnych pracowników, czy inną firmę zajmującą się wsparciem dla wolnego oprogramowania (np. Red Hat).

Kto używa tej dystrybucji O tym kryterium bardzo często się zapomina, ale w wielu przypadkach (jeśli nie w większości) jest ono nawet ważniejsze od pozostałych. Wyobraźmy sobie sytuację, że nasz znajomy używa PLD - nie jest to łatwa w obsłudze dystrybucja, tak naprawdę nie jest ona przeznaczona dla tych, którzy są zainteresowani tylko przeglądaniem paru stron, czy obejrzeniem filmu na komputerze. Ale na początku, przy pierwszej instalacji GNU/Linuksa, zetkniemy się na pewno z wieloma problemami, których nie będziemy umieli samemu rozwiązać i nie będziemy potrafili zapytać na forum, ponieważ tak naprawdę nie wiemy, które informacje są ważne, i na które trzeba zwrócić uwagę. Jeżeli nasz znajomy zechce nam pomóc, będzie to nieraz łatwiejsze, niż wybranie prostszej dystrybucji, której jednak nikt znajomy nie używa.

Warto też zwrócić uwagę na to, jakie dystrybucje GNU/Linuksa są najczęściej używane przez firmy - ponieważ, jeżeli zdobędziemy doświadczenie w tych dystrybucjach używając ich w domu, przyniesie to znaczne korzyści w przyszłej pracy. Na stanowiskach roboczych, na których najprawdopodobniej będziemy pracować, najczęściej instalowane są dystrybucje Mandriva, Suse; na serwerach Red Hat (dystrybucja Suse zyskuje ostatnio dużą popularność, z powodu zaawansowanych rozwiązań biznesowych dostarczanych przez firmę Novell).

Ponadto, różnych dystrybucji używają ludzie o różnych zainteresowaniach, i tak np. Mandriva i Ubuntu są używane w domu, głównie do rozrywki i korzystania z Internetu; Slackware jest lubiany przez ludzi zainteresowanych poznawaniem działania samego GNU/Linuksa, podobnie jak PLD, którego razem z Debianem używa dużo ludzi zainteresowanych administrowaniem serwera. Wśród użytkowników poszczególnych dystrybucji możemy najłatwiej uzyskać pomoc na tematy związane z profilem użytkowników - jeżeli więc chcemy nauczyć się administracji serwerem, to Mandriva czy Ubuntu nie będą najlepszym wyborem.

Zaawansowane aspekty Jeśli wiemy, że nasz system będzie używał w większości samodzielnie kompilowanych aplikacji (bo na przykład mamy takie wytyczne od dostawcy rozwiązania dla naszej firmy), to administrowanie mocno zautomatyzowaną dystrybucją może sprawiać kłopoty. Wyobraźmy sobie system, w którym nad zgodnością oprogramowania czuwa system zarządzania pakietami, np. RPM, a naszym zadaniem jest skompilować na nim ze źródeł aplikację, której potrzebuje nasza firma. Załóżmy, że aplikacja ta wymaga między innymi biblioteki XSLT. Instalując tę bibliotekę, możemy posłużyć się dedykowanym dystrybucji narzędziem instalacyjnym i pakietem, który zawiera w sobie pliki biblioteki oraz zależności od innych składników (np. biblioteki obsługującej XML dostępnej w innym pakiecie dla naszej dystrybucji). Po instalacji wymaganych składników, kompilujemy program i uruchamiamy go. Kłopoty pojawią się później, przy okazji aktualizacji systemu. Wyobraźmy sobie, że musimy wymienić w naszym systemie usługę WWW, ponieważ wykryto w niej usterkę. Próbujemy to zrobić, lecz zarządca pakietów podpowiada nam, że pakiet z nowym serwerem WWW wymaga nowszej biblioteki obsługującej XML. Pamiętajmy, że system zarządzania pakietami nic nie wie o naszej samodzielnie skompilowanej aplikacji, więc odświeżając wszystkie aplikacje i biblioteki, zależne od biblioteki XML, pominie naszą twórczość. Jeśli przegapimy moment, to okazać się może, że nasza samodzielnie kompilowana aplikacja przestała działać, bo była skonsolidowana z inną wersją biblioteki, po której nie ma już śladu. Jeśli przed upgrade wykażemy czujność, to możemy zastanowić się nad pozostawieniem lub kompilacją starszej wersji biblioteki, wymaganej przez naszą krytyczną aplikację. Oba wyjścią wydają się mało eleganckie, a jest to przykład dość powszechnego zjawiska. W takich przypadkach automatyzm nie wychodzi na dobre, bo mamy do wyboru:

wytwarzać osobny zestaw bibliotek i aplikacji, niezależny od zestawu kontrolowanego przez zarządcę pakietów rekompilować dedykowane aplikacje po każdym upgrade, który dotyczy istotnych dla nich bibliotek nie robić aktualizacji

Problem można rozwiązać także zawczasu:

prosząc dostarczyciela o aplikację w postaci pakietów dedykowanych konkretnym wydaniom dystrybucji tworząc własny serwer (środowisko) do budowania pakietów

Mając na uwadze tego typu zjawiska, powstaje dylemat: czy wybrać na przykład Slackware (skoro i tak trzeba będzie samodzielnie pamiętać o rekompilacjach, a większość rzeczy robić ręcznie) czy może Red Hata, który dostarcza wsparcie techniczne i dedykowany jest mocno obciążonym serwerom? Żeby zdecydować, dobrze jest poznać system GNU/Linux do tego stopnia, żeby różnice między dystrybucjami nie miały dla nas (funkcjonalnie) znaczenia. Zyskamy elastyczne podejście i będziemy mogli używać tego, co aktualnie najlepsze, a nie tego, czego używaliśmy siłą przyzwyczajenia przez ostatnich parę lat.

Najpopularniejsze dystrybucje GNU/Linux na biurko

Ubuntu