Die Ports sind eine Sammlung von Scripten zur Installation von Drittsoftware auf einer FreeBSD-Installation. So können allerlei Programme die man von anderen unixoiden Systemen her kennt auch auf FreeBSD installiert werden. Die Scripte liegen alle entsprechend sortiert unter /usr/ports ab, dem so genannten Ports-Tree (so dieser installiert ist). Ist dies nicht der Fall kann er entsprechend installiert werden. Ein bereits vorhandener Ports-Tree kann auch sehr leicht aktualisiert werden damit er die neusten Scripte enthält.
Eine Alternative zu Ports sind Packages, wobei es sich um bereits vorkompilierte Binärpakete handelt welche installiert werden können. Unter FreeBSD sind Ports die meist verwendete Installationsart von Drittsoftware.
Um in den Ports nach einem bestimmten Programm zu suchen kann man sich durch das Verzeichnissystem hangeln oder das Umfangreiche Scriptwerk bemühen. Um zum Beispiel nach vim zu suchen könnte man folgendes eingeben.
% cd /usr/ports % make search name=vim
Um einen Port zu installieren muss zunächst in das Verzeichnis des Ports gewechselt werden. Dort wird dann über make install der Port installiert. Ein anschliessendes make clean löscht die überflüssig gewordenen Arbeitsdateien der Installation. Durch ein make config kann explizit die Konfigurationsabfrage des Ports starten. Dies ist sinnvoll wenn man z.B. einen Port mit geänderten Optionen neu installieren will. Die Installation ist nur als User root möglich.
Um z.B. vim zu installieren würde man folgendermassen vorgehen.
# cd /usr/ports/editors/vim # make install clean
Alternativ können mit Hilfe von portmaster die Ports installiert werden. Die Installation von vim mit portmaster sieht folgendermassen aus:
# portmaster -d editors/vim
Um die Ports anzuzeigen die als Abhängigkeit eines Ports installiert werden kann man den Aufruf make missing im Verzeichnis des zu installierenden Ports verwenden. Als Beispiel nehmen wir dieses mal den Browser links.
% cd /usr/ports/www/links % make missing graphics/png graphics/jpeg graphics/tiff graphics/jbigkit