Linux/Dystrybucja

Z Wikibooks, biblioteki wolnych podręczników.

Oprogramowanie wolnodostępne ma tę wadę, że 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?[edytuj]

Dystrybucja zawiera dopasowane do siebie elementy oprogramowania, zgodne ze sobą i przygotowane do bezkonfliktowej z założenia 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, organizacje i instytucje oferujące dystrybucje żądają za ich używanie symbolicznej opłaty, nieporównywalnie mniejszej niż cena jaką trzeba zapłacić za jej komercyjne, uniksowe odpowiedniki podobne pod względem funkcjonalności. Oferowana często bywa też płatna pomoc techniczna.

Popularne dystrybucje[edytuj]

W Polsce największą popularnością cieszą się dystrybucje Mandriva, Red Hat, Debian, Ubuntu (oparte na Debianie), Slackware, SuSE, Aurox, Gentoo, oraz PLD.

Różnice[edytuj]

Dystrybucje różnią się między sobą zawartością i wersjami poszczególnych składników. Nierzadko też wyposażone są w programy ułatwiające instalowanie składników systemu i administrowanie przy pomocy wygodnego menu. Popularnym standardem stał się system zarządzania składnikami oprogramowania zwany pod nazwą RPM Package Manager (w skr. RPM) oraz znany z Debiana APT. Istotną cechą pozwalającą odróżnić od siebie dystrybucje jest sposób rozmieszczania plików konfiguracyjnych i drobne różnice w strukturze katalogów głównego systemu plików (ang. root filesystem).

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

Wybór właściwej dystrybucji[edytuj]

Jaką dystrybucję wybrać? — z takim pytaniem borykają się często użytkownicy komputerów PC, którzy chcieliby dokonać pierwszej instalacji. Ponieważ GNU/Linux nie jest bardzo łatwym i intuicyjnym w obsłudze systemem, więc najczęściej udzielana na to pytanie odpowiedź brzmi: „Jeśli w pobliżu mieszka ktoś, kto ma zainstalowanego Linuksa to wybierz dystrybucję taką, jakiej on używa”. Pójście na całkowitą łatwiznę?! Ależ skąd — zdroworozsądkowe oszacowanie ilości czasu spędzonego na poszukiwaniu jakiejś wskazówki, która rozwiąże niecodzienną sytuację. A niecodziennych sytuacji może być dla początkujących tak wiele, że słowo „niecodziennych” traci na znaczeniu. Ten wstępny etap dla różnych dystrybucji wymaga różnego nakładu czasu i pracy. W przypadku Red Hat, Mandrake, Auroksa i SuSE zmiany w konfiguracji są nieznaczne i często wiążą się tylko z ustawieniami sieci, jeśli takowa jest zainstalowana, konfiguracją środowiska graficznego i drobnymi modyfikacjami dotyczącymi nazwy komputera, która jest potrzebna niektórym programom dla ich poprawnego funkcjonowania. Do dyspozycji mamy mnóstwo graficznych i tekstowych narzędzi przyjaznych użytkownikowi, które czynią ten proces przyjemnym i łatwym. Trochę trudniej wygląda sprawa w przypadku Debiana czy Slackware. Przechodząc przez proces instalacyjny początkujący użytkownik może stracić nadzieję na to, że system zadziała. Przed użytkownikiem staje bowiem zadanie wyboru odpowiednich, spośród tysięcy pakietów. W przypadku Debiana sytuacja zmienia się i w coraz nowszych wydaniach mamy coraz więcej automatycznych narzędzi pomagających w procesie instalacji. Trochę inaczej wygląda to w Slackware, którą polecić można wszystkim tym, którzy chcą mieć kontrolę nad systemem i pragną dokonywać wszelkich modyfikacji samodzielnie, bez pomocy programów na których automatyzmach nie zawsze można polegać.

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 Hat i SuSE, jeśli chcemy czysty i stabilny system można zastanowić się nad Debianem lub Slackware, jeśli zaś chcemy komputer na biurko to można użyć Ubuntu, Auroksa lub Mandrake. 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łokowe POSIX), ale kosztem naszego czasu.

Automatyzm czy jego brak?[edytuj]

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 Hat, 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.

Wybór oprogramowania[edytuj]

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. 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[edytuj]

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.

Wymagany poziom wiedzy[edytuj]

Dystrybucje różnią się także pod względem poziomu znajomości komputera i Linuksa, koniecznego do zainstalowania i użytkowania tego systemu. Najmniejszej wiedzy potrzeba do zainstalowania i używania dystrybucji Mandriva - jest on równie prosty (a czasem prostszy, dla początkującego użytkownika) jak Windows. Również bardzo prostymi dystrybucjami są: Suse, Aurox czy Ubuntu. Ponadto dość łatwym w użytkowaniu jest Gentoo, jednak długie oczekiwanie na skompilowanie się programów przy instalacji systemu może zniechęcić.

Natomiast, takie dystrybucje, jak Debian, PLD czy Slackware, wymagają dobrej znajomości systemu GNU/Linux - w przypadku wersji testowej Debiana (Debian testing; obecnie "etch"), bez dobrej znajomości GNU/Linuksa często nie uda nam się nawet go zainstalować.

Dobra znajomość działania systemu pozwala na łatwiejsze radzenie sobie z wieloma problemami, jednak wymaga poświęcenia bardzo dużej ilości czasu, czasem nawet kilka lat - jeżeli jednak nie mamy zamiaru w przyszłości zajmować się bardziej zaawansowanym programowaniem, czy administracją systemu (np. serwerem), to ta wiedza nie jest nam potrzebna, i będzie to po prostu czas stracony.

Kto używa tej dystrybucji[edytuj]

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 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.