Die ports & packages collection(Kollektion,Sammlung) wird KEINER Sicherheitsuntersuchung unterzogen, wie es bei OpenBSD selbst geschieht. Obwohl wir uns bemühen die Qualität der Pakete/packages hoch zu halten, haben wir doch einfach nicht genügend 'Man-Power', um den gleichen Level an Robustheit und Sicherheit sicherzustellen.
Die ports collection, zu Anfang geborgt von FreeBSD, füllt diese Lücke. Das Konzept ist, für jede Software aus dritter Hand ein Makefile zu haben, das enthält:
Packages sind die ausführbaren (binary) Versionen der ports. Ein kompilierter port wird zum package das im System mittels pkg_add(1) registriert werden kann.
Packages sehen aus wie einfache .tgz Bündel, aber sie sollten immer mit Hilfe von
pkg_add(1)
hinzugefügt werden, da es noch weitere Informationen geben könnte, die nur
pkg_add(1)
sauber verarbeiten kann.
Tip: du kannst zwischen packages und .tgz Bündeln mit Hilfe von
pkg_info(1)
unterscheiden.
pkg_add pkgname.tgz.
Wenn du packages immer aus einer einzigen Quelle beziehst (ein package repository),
setze PKG_PATH auf diese repository URL, um Abhängigkeiten aufzulösen.
Um zum Beispiel das gimp package für die Version 2.8 auf einer i386 Maschine direkt von der ftp-site (inklusive von Abhängigkeiten) zu installieren, gib folgendes ein:
# setenv PKG_PATH ftp://ftp.openbsd.org/pub/OpenBSD/2.8/packages/i386/
# pkg_add ${PKG_PATH}gimp-1.1.27.tgz
Zum ersten Mal gab es in der Version 2.7 einen 'stable branch' für den ports tree.
Um jetzt zum Beispiel den 'stable branch' für die Version 2.8 zu holen:
$ cd /usr/ports
$ cvs -q -d anoncvs@some.anon.server:/cvs up -r OPENBSD_2_8 -Pd
Beginnend mit der Version 2.8 wurden ausgewählte Binär-Pakete ebenfalls verfügbar gemacht. Der Dank für die harte Arbeit des Koordinieren der Änderungen am 'stable branch' geht an Christian Weisgerber. Bitte sieh dir die stable packages page an, um etwas über 'updated packages' und wichtige Updates für den 'stable branch' herauszufinden.
Package Namen werden immer verändert, sobald ein Paket auf neueren Stand gebracht oder sonstwie verändert wird, um jegliche Verwirrung zwischen einem Paket der Original-Version und einem Paket zu vermeiden, in dem z.B. ein Bug gefixed wurde.
Seit OpenBSD 2.8 solltest du folgendes tun, um ein package upzudaten:
Du kannst die offizielle Version per FTP aus dem pub/OpenBSD/[version] (dabei ist [version] die Versionsnummer) Verzeichnis von allen FTP Mirror Sites holen. Die 'release versions' sind die, die wir mit unserer CDROM ausliefern, und die mehr Tests als die von den snapshots hinter sich haben. Weitere Informationen gibt es in der ports(7) man page.
Der ports tree verändert sich, wie der Rest von OpenBSD, ständig. Der normale Lebenszyklus des ports tree ist wie folgt:
Der current ports tree kann nicht mit der zuletzt veröffentlichten Version benutzt werden, sobald das Umschwenken auf das Verfolgen von OpenBSD-current geschehen ist. Das liegt an den Änderungen, insbesondere der am 'port make process', die Code benötigen, den es nur im OpenBSD-current tree gibt.
Der ports tree arbeitet als einzelnes Wesen. Das Updaten eines einzelnen Verzeichnisses muss nicht
zwangsläufig klappen, da package-Abhängigkeiten dich dazu zwingen können grosse Teile
deines port trees upzudaten und neu zu kompilieren.
Es wird daher allgemein empfohlen ports-current nicht zu folgen, es sei denn man ist bereit sich
mit verschiedenen Problemen herumzuschlagen.
Mailinglisten wie z.B.
source-changes@openbsd.org oder
tech@openbsd.org sind vermutlich unverzichtbar.
Den ports-current tree kann man sich wie folgt holen:
OpenBSD wird zur Zeit aus verschiedenen Gründen nicht mit XFree 4.0.x ausgelifert.
Diese 'ports Magie' funktioniert (noch) nicht mit XFree 4.0.x .
Dazu musst du den Patch in
/usr/ports/infrastructure/patches/patch-xfree-4.0
auf die Standard 'binary' XFree 4.0.x Distribution anwenden.
Zukünftige Versionen von XFree 4.0.x werden vermutlich die nötige Magie enthalten.
Gehen wir davon aus du hast einen ports tree und willst das Archivierungs-Werkzeug unzip installieren und kompilieren. Du solltest etwas wie das hier tun können:
% cd /usr/ports/archivers/unzip
% su
# make
# make install
# exit
Einfach, oder? Insbesondere, wenn man bedenkt, was alles im Hintergrund passiert ist:
Mit OpenBSD 2.8 erzeugen die meisten der ports beim Installieren packages.
Wenn ports erzeugt werden, wird das /usr/ports/distfiles Verzeichnis mit Programmquellcode gefüllt, und /usr/ports/packages wird mit 'binary packages' gefüllt. User mit geringer Bandbreite sollten sich mal mirror-distfiles(7) ansehen, um einen effizienten Weg kennenzulernen alle Distfiles auf einmal herunterzuladen. In OpenBSD-current kannst du das Skript /usr/ports/infrastructure/fetch/clean-old benutzen, um alte distfiles zu entdecken. Denk dran, daß die OpenBSD CD nur den ports tree enthält und einige ausgewählte packages. Wenn du nur die distfiles haben willst, musst du sie auf einem anderen Weg herunterladen.
Wenn du daran interessiert bist mitzuhelfen beim Erweitern des OpenBSD ports tree solltest du zuerst porting.html lesen. Diese Seite referenziert die porting Sektion des FreeBSD handbook genauso wie OpenBSD spezifische Verhaltensmassregeln und Hinweise.
Wenn du Probleme mit existierenden ports hast oder Information zum Erzeugen neuer ports benötigst schicke eine E-Mail an die OpenBSD ports Mailingliste, ports@openbsd.org. Verbesserungen sind jederzeit willkommen, aber in jedem Fall füge bitte folgendes bei:
uname -a,