Porty i pakiety NIE PODLEGAJĄ temu samemu, dokładnemu procesowi audytu, przez który przechodzi kod OpenBSD. Jakkolwiek staramy się utrzymać jakość pakietów na wysokim poziomie, to nie posiadamy wystarczająco dużo zasobów ludzkich, aby zagwarantować ten sam poziom solidności i bezpieczeństwa.
Kolekcja portów, zapożyczona od FreeBSD, wypełnia tą lukę. Koncepcja polega na posiadaniu Makefile, dla każdego programu z zewnątrz, który kontroluje:
Pakiety są binarnym odpowiednikiem portów. Skompilowany port staje się pakietem, który może być zarejestrowany w systemie przy użyciu pkg_add(1)
Pakiety wyglądają jak normalne archiwa .tgz, ale powinny być zawsze dodawane przy pomocy
pkg_add(1).
ponieważ w pakietach, mogą znajdować się dodatkowe informacje, które mogą być
zinterpretowane tylko przez
pkg_add(1).
Uwaga: Łatwo można odróżnić pakiet od archiwum .tgz
przez użycie
pkg_info(1).
pkg_add pkgname.
Jeśli bierzesz pakiety z jednego źródła (repozytorium pakietów), to ustaw zmienną
środowiskową PKG_PATH na URL tego repozytorium, aby ściągnąć pakiety zależne.
Na przykład, aby zainstalować pakiet Gimp dla wydania 4.3 na architekturze i386 z ftp'a (z włączeniem pakietów zależnych):
# export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.3/packages/i386/
# pkg_add gimp
Wydanie 2.7 wprowadziło gałąź stabilną do drzewa portów.
Na przykład, aby ściągnąć gałąź stabilną dla wydania 4.3, wykonaj:
$ cd /usr/ports
$ cvs -q -d anoncvs@jakis.anon.serwer:/cvs up -r OPENBSD_4_3 -Pd
Poczynając od wydania 2.8, wybrane dostępne są rówież pakiety binarne. Odwołaj się do strony stabilnych pakietów, aby dowiedzieć się o uaktualnionych pakietach do gałęzi stabilnej. Jeśli chcesz otrzymywać oficjalne ogłoszenia związane z bezpieczeństwem portów, zapisz się na listę mailingową ports-security.
Nazwy pakietów są zawsze zmienione, w razie uaktualnienia, aby uniknąć możliwego ryzyka pomylenia pakietu z wydania z pakietem z poprawionym błędem.
Od wersji OpenBSD 3.9, mechanizm aktualizacji zapewnia narzędzie
pkg_add(1).
Aby aktualizować pakiet (i jego zależności) musisz ustawić zmienną
środowiskową PKG_PATH na URL zawierający aktualizacje. Poźniej
wykonaj:
pkg_add -iu pkgname
Możesz ściągnąć przez FTP wersję z wydania z katalogu pub/OpenBSD/[wersja] (gdzie [wersja] jest numerem wydania), z któregokolwiek z mirrorów ftp. Wersja wydania, to ta która jest dostarczana przez nas na CDROM'ie, i przeszła przez więcej testów niż którykolwiek snapshot. Więcej informacji jest dostępne na stronie manuala ports(7).
The ports tree, like the rest of OpenBSD, is constantly changing.
Porty z gałęzi -current nie mogą być używane z poprzednim wydaniem. Dzieje się tak, ze względu na zmiany, zazwyczaj w sposobie budowania portu, które wymagają kodu z drzewa źródeł OpenBSD-current.
Drzewo Portów działa jako jedność. Uaktualnianie pojedyńczego katalogu, nie
daje gwarancji, że program będzie działać, ponieważ zależności pakietów mogą
zmusić użytkownika do przekompilowania dużej części drzewa portów. Nie powinno
się korzystać z ports-current, chyba że jest się przygotowanym na różnego rodzaju
problemy. Listy mailingowe takie jak
ports-changes@openbsd.org lub
tech@openbsd.org będą w tym wypadku nieocenioną pomocą.
Zaleca się aby śledzić ports-stable na maszynie produkcyjnej: będziemy starać się utrzymać drzewo portów aktualnym jeśli chodzi o rozwiązywanie problemów, oraz dostarczać uaktualnienia binarne.
Zauważ, że znikające pliki dystrybucyjne nie są problemem, ponieważ ftp.openbsd.org zawiera całe repozytorium. Nawet zmiana sumy kontrolnej nie jest problemem - możesz wydać polecenie:
make checksum REFETCH=trueaby upewnić się że ściągasz właściwy plik dystrybucyjny dla twojego drzewa portów. Aby zapoznać się z definicją current i stable, zobacz wątki OpenBSD..
Listadziennych zmian w portach i portach-current jest dostępna.
Porty-current można uzyskać poprzez:
Załóżmy, że zaopatrzyłeś się w drzewo portów i chcesz skompilować i zainstalować program archiwizacyjny unzip. Powinieneś być w stanie to zrobić w następujący sposób:
% cd /usr/ports/archivers/unzip
% su
# make install clean
# exit
Proste, nieprawdaż? Szczególnie, biorąc pod uwagę wszystko co działo się w tle:
W OpenBSD 3.0, niemalże wszystkie porty automatycznie budują binarne pakiety, gdy się je instaluje.
Podczas budowania portów, katalog /usr/ports/distfiles stopniowo zapełnia się archiwami z źródłami programów, a /usr/ports/packages, binarnymi pakietami. Użytkownicy, odwiedzający Internet sporadycznie, powinni zapoznać się z mirroring-ports(7), dzięki czemu, będą w stanie wydajnie ściągnąć wszystkie pliki źródłowe jednocześnie. Zauważ, że zestaw płyt OpenBSD zawiera drzewo portów i wybrane pakiety. Jeśli chcesz mieć pliki ze źródłem, będziesz musiał się w nie sam zaopatrzyć.
Porty posiadają wiele opcji, przeznaczonych dla zaawansowanego użytkownika, które czynią je wartościowym narzędziem. Zaawansowani użytkownicy mogą chcieć manipulować przy plikach Makefile (powinni przeczytać najpierw stronę manuala poświęconą make(1) lub ustawiać różne zmienne podczas uruchamiania make z linii poleceń, lub w /etc/mk.conf. Te zmienne są dokładnie opisane w bsd.port.mk(5), i w dokumentach dotyczących portowania poniżej.
Jeżeli jesteś zainteresowany pomocą przy rozszerzaniu drzewa portów OpenBSD, powinienieś najpierw przeczytać porting.html. Strona ta odnosi się do Podręcznika Porter'a FreeBSD i do innych szczegółów, specyficznych dla OpenBSD.
Kolekcja portów jest projektem ochotniczym. Czasami, po prostu dany projekt nie posiada wystarczająco dużo developerów, aby wszystko było aktualne. Developerzy często wybierają to, co ich interesuje i testują w swoim środowisku. Twoje dotacje pozwalają na testowanie portów na różnych platformach.
Niektóre pojedyńcze porty, mogą opóźniać się w stosunku do powszechnej wersji z tego właśnie powodu. Kolekcja portów, może mieć wersję programu ze stycznia, podczas gdy developerzy wydali nową wersję w maju. Często jest to świadoma decyzja, ponieważ nowa wersja może mieć problemy w działaniu na OpenBSD, który to problem autor stara się rozwiązać, lub zwyczajnie nowsza wersja jest gorsza od starszej: OpenBSD może mieć inne cele od osób, które rozwijają oprogramowanie, które to cele nie zawsze są zgodne z celami drużyny OpenBSD. Uaktualnienie portu może być opóźnione, ponieważ nowa wersja nie jest uznawana jako niezbędne uaktualnienie.
Jeżeli koniecznie potrzebujesz nowej wersji portu, powinieneś zapytać OSOBĘ ODPOWIEDZIALNĄ za port, aby go uaktualniła (zobacz poniżej jak sprawdzić kto jest osobą odpowiedzialną); jeśli możesz, wyślij odpowiednie łatki. Aby stworzyć odpowiednie łatki, odwołaj się do dokumentacji związanej z tworzeniem portów.
Jeśli masz problem z istniejącym portem, wyślij e-mail'a do osoby odpowiedzialnej za port. Aby sprawdzić, kto jest osobą odpowiedzialną za port wykonaj:
% cd /usr/ports/archivers/unzip
% make show=MAINTAINER
Jeśli nie ma osoby odpowiedzialnej, lub nie możesz się z nim/nią skontaktować,
wyślij e-mail'a na listę wysyłkową OpenBSD,
ports@openbsd.org.
Nie używaj misc@openbsd.org aby zadawać pytania dotyczące portów. Poprawki są
zawsze mile widziane, ale w każdym wypadku załącz poniższe informacje:
uname -a,
% cd /usr/ports/archivers/unzip
% su
# mkdir -p ~/portslogs
# make clean install 2>&1 | /usr/ports/infrastructure/build/portslogger \
~/portslogs
Po wykonaniu tego skryptu powinieneś mieć plik w katalogu ~/portslogs, który
możesz wysłać do osoby odpowiedzialnej za port. Upewnij się że nie masz
ustawionych jakiś specjalnych opcji, na przykład w /etc/mk.conf.
Alternatywnym sposobem jest wykonanie poniższych czynności: