Porty FreeBSD

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

HistoriaEdytuj

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.[1] Niemal rok wcześniej (26 sierpnia) upublicznił on już źródła programu pkg_install.[2]

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 Subversion (po migracji z CVS) i bazy zgłoszeń bugzilla (dawniej GNATS).

KonstrukcjaEdytuj

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 Subversion – podobnie jak sam system – repozytorium portów FreeBSD zawiera niemal 40 tysięcy (lipiec 2020)Dan Langille: FreshPorts Ports count (ang.). FreshPorts. [dostęp 2020-07-10]. programów przystosowanych do działania na tym systemie. Użytkownicy mogą aktualizować swoje lokalne kopie drzewa za pomocą klientów systemów kontroli werjis Subversion, Git, ale domyślnym trybem pracy jest oparty na binarnych łatkach program portsnap napisany przez Colina Percivala, dawnego oficera bezpieczeństwa FreeBSD.

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 zainstalowane 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 zainstalowanymi pakietami używa się obecnie zarządcy pakietów pkgng, który w wersji 10[3] zastąpił oryginalne: pkg_add czy pkg_delete.

ZaletyEdytuj

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

WadyEdytuj

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

Przebieg instalacjiEdytuj

  • 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 sumę kontrolną 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,
  • 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.

PochodneEdytuj

Porty FreeBSD stały się bazą lub zainspirowały rozwój zbliżonych rozwiązań wykorzystywanych w systemach:

Linki zewnętrzneEdytuj

PrzypisyEdytuj