Porty FreeBSD

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Porty FreeBSD – mechanizm instalacji i pakietowania oprogramowania opracowany dla systemu FreeBSD.

Jest to stale rozwijane rozwiązanie pozwalające na wygodną instalację i zarządzanie oprogramowaniem spoza podstawowego systemu w oparciu o kompilację źródeł, tj. w tradycyjny dla systemów uniksowych sposób – z uwzględnieniem rekursywnych zależności pomiędzy poszczególnymi programami. Nazwa pochodzi od używanego w żargonie informatycznym określenia na adaptację oprogramowania napisanego dla jednego systemu do innego, tj. portowania (por. transport, import itd).

Historia[edytuj | edytuj kod]

Porty zostały stworzone w 1994 przez jednego z założycieli FreeBSD, Jordana Hubbarda (jkh). Początkowo stanowiły jego własne rozwiązanie służące do automatyzacji instalacji oprogramowania. 21 sierpnia 1994 jkh wczytał źródła szkieletu do repozytorium CVS projektu. Niemal rok wcześniej (26 sierpnia) upublicznił on już źródła programu pkg_install.

Przez kilka lat strukturą portów zajmował się sam twórca wraz z japońskim programistą Satoshi Asami. Wraz z rozwojem stworzono jednak osobny zespół zwany Ports Team, któremu przewodzą programiści pełniący stanowisko znane jako Port Master. Pierwszym wówczas jeszcze port meisterem był wspomniany Satoshi. Ports Team opiekuje się strukturą drzewa i jego rozwojem przy wykorzystaniu CVS i bazy zgłoszeń GNATS.

Konstrukcja[edytuj | edytuj kod]

Porty tworzą hierarchiczną strukturę katalogów i plików na dysku podzieloną na funkcjonalne kategorie. Szkielet portu powstaje na bazie pliku Makefile BSD make. W założeniu każdy port posiada swego opiekuna, którym mogą być zarówno pojedynczy programiści, jak i całe zespoły odpowiedzialne w ramach FreeBSD za nadzór np. dużych środowisk GNOME i KDE. Obowiązkiem opiekuna jest aktualizacja swoich portów oraz udzielanie wsparcia użytkownikom programu.

Oparte na CVS – podobnie jak sam system – repozytorium portów FreeBSD zawiera ponad 18 tysięcy programów przystosowanych do działania na tym systemie. Użytkownicy mogą aktualizować swoje lokalne kopie drzewa za pomocą klienta CVS, CVSup i innych rozwiązań, jak oparte na binarnych łatkach portsnap.

Na bazie portów projekt udostępnia prekompilowane pakiety z domyślnymi opcjami dla wszystkich aktualnie wspieranych wersji i architektur sprzętowych FreeBSD. Pakiety rozprowadzane są poprzez Internet oraz na nośnikach optycznych, ich funkcjonalność jest bardzo zbliżona do tych znanych z dystrybucji linuksowych.

Programy instalowane przy pomocy portów i pakietów przechowywane są w przestrzeni odseparowanej od właściwego systemu (w hierarchii poniżej /usr/local), co pozwala na zachowanie integralności obu warstw oprogramowania.

W systemie do zarządzania skompilowanymi i zainstalowanymi portami używa się systemowych narzędzi, jak: pkg_add czy pkg_delete.

Zalety[edytuj | edytuj kod]

  • elastyczność kompilacji ze źródeł
  • spójność instalowanego oprogramowania
  • możliwość optymalizacji dla lokalnej architektury

Wady[edytuj | edytuj kod]

  • dłuższy czas oczekiwania na skompilowanie dużych programów
  • powolność działania make
  • nieelastyczność pakietów binarnych
  • brak wsparcia dla wyboru domyślnej lokalizacji instalowanego programu, wgrywane są wszystkie wersje językowe

Przebieg instalacji[edytuj | edytuj kod]

  • wybór opcji instalacyjnych przez użytkownika (może być dokonany ręcznie lub automatycznie)
  • sprowadzenie źródeł z Internetu (jeśli są niedostępne lokalnie),
  • sprawdzenie ich integralności w oparciu o sumy kontrolne MD5 i SHA256,
  • wprowadzenie niezbędnych poprawek wymaganych przez FreeBSD (patch),
  • konfiguracja i zapis preferencji użytkownika,
    • ewentualna instalacja innych portów niezbędnych do skompilowania danego programu np. bibliotek (rekursywne wykonanie procedury),
  • kompilacja,
    • ewentualna instalacja portów niezbędnych do uruchomienia programu (rekursywne wykonanie procedury),
  • instalacja w systemie,
  • rejestracja plików należących do programu z ich sumami kontrolnymi (MD5),
  • przypisanie do portu bibliotek i innych programów, które są niezbędne do jego działania,
  • opcjonalnie usunięcie plików roboczych zbędnych po instalacji.

Pochodne[edytuj | edytuj kod]

Porty FreeBSD stały się bazą lub zainspirowały rozwój zbliżonych rozwiązań wykorzystywanych w systemach OpenBSD, NetBSD (pkgsrc) oraz Linux Gentoo (portage), Arch Linux (ABS), MacPorts oraz Fink w Mac OS X, czy DarwinPorts dla OpenDarwin.

Linki zewnętrzne[edytuj | edytuj kod]