Dystrybucja CentOS
CentOS to dystrybucja linuksa bazująca na dystrybucji RedHat Enterprice Linux (w skrócie RHEL).
Bazowanie to polega w głównej mierze na kompilacji pakietów źródłowych RedHat-a przy jednoczesnej zmianie elementów zastrzeżonych różnymi prawami. Ale na tym nie koniec. Dystrybucja RedHat rozdzielona została na dwa oddzielne projekty: server i workstation. W przypadku
CentOS-a takiego podziału nie mamy, wszystkie pakiety znajdują się na jednym krążku instalacyjnym, w jednym repozytorium.
Istotnym elementem dystrybucji jest ilość dostępnych pakietów oprogramowania. W przypadku dystrybucji CentOS mamy repozytorium base zawierające pakiety pochodzące z RedHat-a ale również kilka dodatkowych repozytoriów prowadzonych przez społeczność zgromadzoną wokół projektu:
- [updates] - Aktualizacje pakietów repozytorium [base] wydane po płytach ISO CentOS-a. Zawierają aktualizacje bezpieczeństwa, poprawki błędów i udoskonalenia oprogramowania dostępnego w [base]. Domyślnie włączone.
- [addons] - Pakiety wymagane do zbudowania głównej dystrybucji a także pakiety zbudowane na bazie plików SRPM dystrybucji, ale nie włączone do głównego drzewa pakietów (mysql-server w CentOS-3.x podpada pod tę kategorię). Pakiety zawarte w repozytorium [addons] są częścią głównej dystrybucji, ale nie muszą znajdować się w jej drzewie pakietów. Domyślnie włączone.
- [contrib] - To pakiety dostarczone przez użytkowników CentOS, które nie nadpisują żadnych pakietów dystrybucji podstawowej. Pakiety z [contrib] nie były testowane przez deweloperów CentOS i mogą nie nadążać za wersjami dystrybucji podstawowej. Domyślnie wyłączone.
- [centosplus] - Pakiety dostarczone przez deweloperów i użytkowników CentOS. Mogą podmieniać rpm-y włączone do dystrybucji głównej. Zanim włączysz to repozytorium, rozważ możliwe skutki korzystania z pakietów tego repozytorium. Domyślnie wyłączone.
- [extras] - Pakiety budowane i zarządzane przez deweloperów CentOS rozszerzające funkcjonalność dystrybucji głównej. Pakiety w tym repozytorium przeszły podstawowe testy i powinny nadążać za wersjami pakietów z dystrybucji. Nigdy nie zamieniają pakietów dystrybucji. Domyślnie włączone.
- [testing] - Pakiety testowane przed udostępnieniem, nie powinieneś z nich korzystać, chyba, że masz ku temu powody (np. chcesz je testować - przyp. tłum.). Domyślnie wyłączone.

Wszystkie pakiety CentOS są oprogramowaniem o otwartych źródłachWszystkie pakiety dostarczane przez projekt CentOS są Wolnym Oprogramowaniem. Możesz je pobierać i instalować z repozytoriów sieci projektu CentOS na tylu systemach, na ilu potrzebujesz.
Oprócz powyższych repozytoriów istnieją również repozytoria prowadzone w ramach innych projektów jednak należy pamiętać, że korzystanie z nich może mieć różne skutki więc raczej ostrożnie ...
Rozbudowa dystrybucji bazowej jaką jest RedHat ma jednak swoją cenę. RedHat pobiera opłaty za wsparcie, które polega na gwarantowaniu bezpieczeństwa i stabilności dostarczanych pakietów wraz z ich aktualizacjami oraz na pomocy technicznej świadczonej przez telefon i e-mail. Jeśli jednak zastosujemy pakiety spoza dystrybucji lub zmodyfikujemy pakiety dystrybucyjne to tracimy prawa do supportu. CentOS nie jest związany z żadną firmą i nie świadczy wsparcia zatem zdani jesteśmy na własne siły (wsparcie możemy uzyskać na forach dyskusyjnych oraz kanałach IRC).
Innym istotnym elementem jest czas. Skoro CentOS bazuje na RHEL to oczywistym jest, że jego wydania pojawiają się z pewnym opóźnieniem w stosunku do RHEL. W przypadku nowego wydania dystrybucji lub jej wersji opóźnienie to wynosi około trzy tygodnie, w przypadku aktualizacji pojedynczych pakietów mamy opóźnienie 2-3 dni.
Wybierając dystrybucję musisz wziąć pod uwagę te elementy, odpowiedzieć sobie na pytanie co jest ważniejsze: bezpieczeństwo biznesowe i wygoda czy wolność. Ja wybrałem wolność.
Dużą zaletą RHEL/CentOS jest długi okres wsparcia. Podstawowe wydanie aktualizowane jest przez pięć lat a po tym okresie jeszcze trzy lata poprawek błędów krytycznych. Zatem raz zainstalowany system możemy wykorzystywać przez osiem lat bez obawy o jakość oprogramowania i dostępność aktualizacji.
Oczywiście osiem lat w informatyce to cała wieczność i tu pojawiają się najpoważniejsze zarzuty wobec dystrybucji dlatego należy ten temat dokładniej omówić. Zrobimy to na przykładzie kernela. W wydaniu CentOS 5.x mamy kernel w wersji 2.6.18 podczas gdy na kernel.org jest już dostępny 2.6.27. Spora różnica ale czy rzeczywiście? Kernel to podstawa funkcjonowania systemu w tym również sterowniki urządzeń. Wersja 2.6.18 była najaktualniejszą wersją dostępną w chwili powstawania tego wydania dystrybucji.
Wiele sterowników zawartych jest w samym kernelu ale sprzętu jest tyle ... Niektórzy producenci nie publikują specyfikacji sprzętu tylko sami przygotowują sterowniki. Oczywiście przygotowują sterowniki do konkretnej wersji kernela. Zatem jeśli zmienimy wersję kernela to sterowniki takie przestaną działać (może nie przestaną ale mogą być problemy zwłaszcza z instalacją dodatkowych). Zatem zachowanie jednej wersji kernela przez cały czas życia wydania dystrybucji ma sens. A co z aktualizacjami kernela? Otóż RedHat pilnie obserwuje co się dzieje na kernel.org i istotne zmiany wprowadza do kernela dystrybucyjnego ale w taki sposób aby nie zmodyfikować plików nagłówkowych gdyż to na ich podstawie inne aplikacje odwołują się do funkcji kernela. Postępowanie takie nazywane jest backporting czyli implementowanie nowości do starej aplikacji. Dlatego numer wersji pakietu kernel został rozszerzony i w chwili pisania tego materiału mamy wersję kernel-2.6.18-92.1.18 czyli 92 backporty i w ostatnim 18 poprawek.
Żeby to pokazać bardziej namacalnie ... w kernelu 2.6.24 dodano do kernela obsługę kart wifi firmy Intel co jest szczególnie istotne dla użytkowników laptopów. Patrząc na wersję kernela można by przypuszczać, że w CentOS-ie karty te nie będą obsługiwane. Okazuje się jednak, że sterowniki te już są. Wprawdzie ich obsługa jest wyłączona i oznaczona jako eksperymentalna ale to już inna bajka.
Podobnie traktowane są również inne pakiety stanowiące podstawę funkcjonowania systemu. Jeśli zatem ktoś zarzuca CentOS-owi, że jest przestarzały to ma jedynie trochę racji i prawdopodobnie niewiele wie o tej dystrybucji.
Jednak trochę racji ma. Spójrzmy na pakiety php. W dystrybucji mamy wersję 5.1.6 oczywiście z poprawkami. Jednak na php.net jest już wersja 5.2.6. Wersja 5.2.0 wprowadziła wiele istotnych zmian do tego języka programowania i próżno ich szukać w naszej dystrybucji. Z tego powodu możemy mieć problemy z uruchomieniem niektórych aplikacji pisanych w tym języku (np. phpMyAdmin-3.x wymaga php-5.2.x). Na szczęście istnieją dodatkowe repozytoria zawierające pakiety w nowszych wersjach ale pamiętaj, że w dużej mierze bierzesz na siebie odpowiedzialność za korzystanie z pakietów spoza dystrybucji.
Z powyższego wynika jasno, że CentOS nie jest dystrybucją dla osób goniących za nowościami. Doskonale natomiast nadaje się na serwery oraz komputery wykorzystywane do pracy czyli tam gdzie ważna jest stabilna i ciągła praca a nie wieczne eksperymentowanie.