Index: head/de_DE.ISO8859-1/books/handbook/ports/chapter.xml =================================================================== --- head/de_DE.ISO8859-1/books/handbook/ports/chapter.xml (revision 48074) +++ head/de_DE.ISO8859-1/books/handbook/ports/chapter.xml (revision 48075) @@ -1,2009 +1,2009 @@ Installieren von Anwendungen: Pakete und Ports UwePierauÜbersetzt von Übersicht Ports Pakete &os; enthält eine umfassende Sammlung von Systemwerkzeugen, - die Teil des Basissystems sind. Allerdings ist man früher oder - später auf Software Dritter angewiesen, damit bestimmte Arbeiten - durchgeführt werden können. Um diese Software zu installieren, - stellt &os; zwei sich ergänzende Methoden zur - Verfügung: Die Ports-Sammlung (zur Installation aus dem - Quellcode) sowie Pakete (auch als - Packages bezeichnet, zur - Installation von vorkompilierten binären Softwarepaketen). - Beide Methoden können benutzt werden, um Anwendungen von lokalen - Medien oder über das Netzwerk zu installieren. + die Teil des Basissystems sind. Darüber hinaus stellt &os; zwei + sich ergänzende Methoden zur Installation von + Drittanbieter-Software zur Verfügung: Die Ports-Sammlung zur + Installation aus dem Quellcode sowie Pakete zur Installation + von vorkompilierten binären Softwarepaketen. Beide Methoden + können benutzt werden, um Anwendungen von lokalen Medien oder + über das Netzwerk zu installieren. Dieses Kapitel behandelt die folgenden Themen: - Die Installation binärer Softwarepakete. + Den Unterschied zwischen binären Softwarepaketen und + Ports. - Der Bau Software Dritter aus dem Quellcode mithilfe der - Ports-Sammlung. + Wie man Drittanbieter-Software findet, die nach + &os; portiert wurde. - Wie zuvor installierte Pakete oder Ports - entfernt werden. + Wie Binärpakete mit dem traditionellen Paketsystem + verwaltet werden. - Wie die Voreinstellungen der Ports-Sammlung - überschrieben werden können. + Wie Binärpakete mit pkgng + verwaltet werden. - Die Suche nach geeigneter Software. + Den Bau von Drittanbieter-Software aus dem Quellcode + mithilfe der Ports-Sammlung. - Wie Anwendungen aktualisiert werden. + Was zu tun ist, wenn die Installation einer Software + fehlschlägt. Installation von Software Die typischen Schritte zur Installation von Drittanbieter-Software auf einem &unix; System sind: Download der Software, die als Quelltext oder im Binärformat vorliegen kann. Auspacken der Software, die typischerweise ein mit &man.compress.1;, &man.gzip.1; oder &man.bzip2.1; komprimiertes Tar-Archiv enthält. Durchsuchen der Dokumentation, die sich in INSTALL, README oder mehreren Dateien im Verzeichnis doc/ befindet, nach Anweisungen, wie die Software zu installieren ist. Kompilieren der Software wenn sie als Quelltext vorliegt. Dazu müssen Sie vielleicht das Makefile anpassen, oder configure laufen lassen, oder andere Arbeiten durchführen. Testen und installieren der Software. Wenn Sie Software installieren, die nicht speziell für &os; geschrieben wurde, müssen Sie vielleicht sogar den Quelltext anpassen, damit die Software funktioniert. &os; bietet zwei Technologien an, die diese Schritte für Sie durchführen. Zurzeit werden über &os.numports; Anwendungen Dritter zur Verfügung gestellt. Ein &os;-Paket enthält vorkompilierte Kopien aller Befehle für eine Anwendung, sowie zusätzliche Konfigurationsdateien und Dokumentation. Zur Handhabung der Pakete stellt &os; Kommandos wie &man.pkg.add.1;, &man.pkg.delete.1; und &man.pkg.info.1; zur Verfügung. Ein &os;-Port ist eine Sammlung von Dateien, die das Kompilieren der Quelltexte einer Anwendung automatisieren. Die Dateien, die ein Port umfasst enthalten alle notwendigen Informationen um die Anwendung herunterzuladen, zu extrahieren, anzupassen und zu installieren. Das Portsystem kann auch dazu benutzt werden, Pakete zu generieren, die mit den Paketverwaltungswerkzeugen von &os; manipuliert werden können. Pakete und Ports beachten Abhängigkeiten zwischen Anwendungen. Wenn &man.pkg.add.1; oder die Ports-Sammlung benutzt wird, um eine Anwendung zu installieren, dann werden fehlende Bibliotheken zuerst installiert, sofern sie nicht schon vorher installiert waren. Obwohl beide Technologien recht ähnlich sind, so haben Pakete und Ports jeweils ihre eigenen Stärken. Welche Technologie eingesetzt wird, hängt letzten Endes von den Anforderungen ab, die an eine bestimmte Anwendung gestellt werden. Vorteile von Paketen Das komprimierte Paket einer Anwendung ist normalerweise kleiner als das komprimierte Archiv der Quelltexte. Pakete müssen nicht mehr kompiliert werden. Dies ist ein Vorteil, wenn große Pakete wie Mozilla, KDE oder GNOME auf langsamen Maschinen installiert werden. Wenn Sie Pakete verwenden, brauchen Sie nicht zu verstehen, wie Software unter &os; kompiliert wird. Vorteile von Ports Da die Pakete auf möglichst vielen System laufen sollen, werden Optionen beim Übersetzen zurückhaltend gesetzt. Wird eine Anwendung über die Ports übersetzt, können die Optionen nach eigenen Bedürfnissen angepasst werden. Die Eigenschaften einiger Anwendungen werden über Optionen zum Zeitpunkt des Übersetzens festgelegt. Apache kann zum Beispiel über eine große Auswahl an eingebauten Optionen konfiguriert werden. Für einige Fälle existieren verschiedene Pakete einer Anwendung, die beim Übersetzen unterschiedlich konfiguriert wurden. Für Ghostscript gibt es ein ghostscript-Paket und ein ghostscript-nox11-Paket, die sich durch die Xorg Unterstützung unterscheiden. Das Erstellen von verschiedenen Paketen wird aber schnell unhandlich, wenn eine Anwendung mehr als ein oder zwei Optionen zum Zeitpunkt des Übersetzens besitzt. Die Lizenzbestimmungen mancher Software verbietet ein Verbreiten in binärer Form. Diese Software muss als Quelltext, der durch den Benutzer kompiliert werden muss, ausgeliefert werden. Einige Leute trauen binären Distributionen nicht, oder sie ziehen es vor den Quelltext zu lesen, um diesen nach möglichen Problemen zu durchsuchen. Wenn Sie eigene Anpassungen besitzen, benötigen Sie den Quelltext, um diese anzuwenden. Wenn Sie über aktualisierte Ports informiert sein wollen, lesen Sie die Mailinglisten &a.ports; und &a.ports-bugs;. Bevor Sie eine Anwendung installieren, informieren Sie sich auf der Seite http://vuxml.FreeBSD.org/ über mögliche Sicherheitsprobleme mit der Anwendung, oder installieren Sie ports-mgmt/portaudit. Installierte Anwendungen können mit portaudit -F -a auf bekannte Sicherheitsprobleme untersucht werden. Der Rest dieses Kapitels beschreibt, wie man Software Dritter mit Paketen und Ports unter &os; installiert und verwaltet. Suchen einer Anwendung Die Anzahl der nach &os; portierten Anwendungen steigt ständig. Es gibt einige Wege, um nach Anwendungen zu suchen: Die &os;-Webseite stellt unter http://www.FreeBSD.org/ports/ eine aktuelle und durchsuchbare Liste aller Anwendungen zur Verfügung. Die Ports können nach dem Namen den Anwendung, oder über die Software-Kategorie durchsucht werden. FreshPorts Dan Langille verwaltet FreshPorts, das eine umfassende Suchfunktion bietet und Änderungen an den Anwendungen in der Ports-Sammlung verfolgt. Registrierte Benutzer können eine Merkliste erstellen, um automatisch eine E-Mail zu erhalten, sobald ein Port von dieser Liste aktualisiert wurde. Freecode Wenn Sie den Namen einer Anwendung nicht kennen, versuchen Sie eine Webseite wie Freecode.com, um eine passende Anwendung zu finden. Schauen Sie dann auf der &os;-Webseite nach, ob die Anwendung schon portiert wurde. Verwenden Sie whereis Datei um herauszufinden, in welcher Kategorie ein Port ist, wobei Datei der Name des Programms ist, das installiert werden soll: &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof Alternativ kann der &man.echo.1;-Befehl verwendet werden: &prompt.root; echo /usr/ports/*/*lsof* /usr/ports/sysutils/lsof Beachten Sie aber, dass dieser Befehl auch alle Dateien im Verzeichnis /usr/ports/distfiles findet, auf die der angegebene Suchbegriff passt. Ein weiterer Weg nach Software zu suchen besteht darin, die eingebaute Suchfunktion der Ports-Sammlung zu benutzen. Wechseln Sie dazu in das Verzeichnis /usr/ports, und rufen Sie make search name=Anwendungsname auf, wobei Anwendungsname der Name der Software ist. Um zum Beispiel nach lsof zu suchen: &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps: Der integrierte Suchmechanismus verwendet eine Datei mit Index-Informationen. Erscheint eine Meldung, dass der INDEX benötigt wird, führen Sie make fetchindex aus, um die aktuelle Index-Datei herunterzuladen. Mit einem vorhandenen INDEX ist make search in der Lage, die gewünschte Suche durchzuführen. Die Path:-Zeile zeigt an, wo der Port zu finden ist. Um weniger Informationen zu erhalten, benutzen Sie die Funktion quicksearch: &prompt.root; cd /usr/ports &prompt.root; make quicksearch name=lsof Port: lsof-4.87.a,7 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Erweiterte Suchen führen Sie mit make search key=Text oder make quicksearch key=Text aus. Damit werden Portnamen, Kommentare, Beschreibungen und Abhängigkeiten nach Text durchsucht. Dies kann sehr nützlich sein, wenn der Name des Programms nicht bekannt ist. Bei der Verwendung von search und quicksearch wird Groß- und Kleinschreibung bei der Suche ignoriert. Die Suche nach LSOF wird dieselben Ergebnisse wie die Suche nach lsof liefern. Verwendung von Binärpaketen ChernLeeBeigesteuert von Derzeit befindet sich &os; in einer Übergangsphase auf ein neues Paketverwaltungssystem. Benutzer von neueren &os;-Versionen möchten vielleicht die Vorteile von PKGng bei der Verwaltung von Drittanbieter-Paketen kennenlernen. Für diejenigen Benutzer, die noch nicht auf pkgng migriert haben, können die hier vorgestellten Werkzeuge für die Verwaltung der Paketdatenbank verwendet werden. Der Einfachheit halber kann jedoch auch sysinstall weiterhin für die Installation von Paketen benutzt werden. Alle Paketinformationen werden im Verzeichnis der Paketdatenbank, /var/db/pkg abgelegt. Installieren eines Pakets Pakete installieren pkg_add Benutzen Sie &man.pkg.add.1;, um ein &os;-Paket von einer lokalen Datei oder über das Netzwerk installieren. Download vor Installation eines Pakets &prompt.root; ftp -a ftp2.FreeBSD.org Connected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit &prompt.root; pkg_add lsof-4.56.4.tgz Wenn Sie die Pakete nicht lokal vorliegen haben, zum Beispiel auf den &os;-CD-ROMs, verwenden Sie den Schalter von &man.pkg.add.1;. Dies bestimmt automatisch das nötige Objektformat und die richtige Version des Pakets, lädt dieses dann von einem FTP-Server und installiert es, ohne das weitere Benutzereingriffe nötig sind. pkg_add &prompt.root; pkg_add -r lsof Wenn Sie einen anderen &os; FTP-Mirror verwenden möchten, geben Sie den Mirror in der Umgebungsvariablen PACKAGESITE an. &man.pkg.add.1; benutzt &man.fetch.3;, um Dateien herunterzuladen. Umgebungsvariablen wie FTP_PASSIVE_MODE, FTP_PROXY und FTP_PASSWORD werden dabei berücksichtigt. Wenn Sie durch eine Firewall geschützt werden, müssen Sie vielleicht eine oder mehrere dieser Umgebungsvariablen setzen oder einen FTP oder HTTP Proxy verwenden. Eine Liste der unterstützten Umgebungsvariablen finden Sie in &man.fetch.3;. Beachten Sie, dass im obigen Beispiel lsof anstelle von lsof-4.56.4 verwendet wird. Wenn Sie &man.pkg.add.1; zum Herunterladen eines Pakets verwenden, darf die Versionsnummer des Pakets nicht angegeben werden. Unter &os.current; oder &os.stable; holt &man.pkg.add.1; die neueste Version einer Anwendung. Unter einer -RELEASE Version holt es die Version der Anwendung, die im Release enthalten ist. Sie können dieses Verhalten ändern, indem Sie die Umgebungsvariable PACKAGESITE überschreiben. Auf einem &os; 8.1-RELEASE System, versucht &man.pkg.add.1; in der Voreinstellung die Pakete von ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/ zu laden. Um &man.pkg.add.1; zu zwingen, nur &os; 8-STABLE-Pakete herunterzuladen, setzen Sie PACKAGESITE auf ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/. Pakete werden im .tgz- und .tbz-Format ausgeliefert. Sie sind unter ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, oder auf der &os;-DVD-Distribution. Die Struktur des Paketbaums entspricht der Verzeichnisstruktur unter /usr/ports. Jede Kategorie besitzt ein eigenes Verzeichnis und alle Pakete befinden sich im Verzeichnis All. Verwalten von Paketen Pakete verwalten &man.pkg.info.1; kann dazu benutzt werden, alle installierten Pakete und deren Beschreibung anzuzeigen. pkg_info &prompt.root; pkg_info colordiff-1.0.13 A tool to colorize diff output docbook-1.2 Meta-port for the different versions of the DocBook DTD ... &man.pkg.version.1; vergleicht die Version installierter Pakete mit der Version aus der Ports-Sammlung. pkg_version &prompt.root; pkg_version colordiff = docbook = ... Die Symbole in der zweiten Spalte zeigen das Alter des Pakets im Vergleich zu der lokalen Version aus der Ports-Sammlung an. Symbol Bedeutung = Die Version des installierten Paketes stimmt mit der Version aus der lokalen Ports-Sammlung überein. < Die installierte Version ist älter als die Version aus der lokalen Ports-Sammlung. > Die installierte Version ist neuer als die aus der Ports-Sammlung, was vermutlich bedeutet, dass die lokale Ports-Sammlung veraltet ist. ? Das installierte Paket konnte im Ports-Index nicht gefunden werden. Dies kann passieren, wenn ein installierter Port aus der Ports-Sammlung entfernt wurde oder einen neuen Namen erhalten hat. * In der Ports-Sammlung befinden sich mehrere Versionen der Anwendung. ! Das installierte Paket ist zwar im Index enthalten, aus irgendeinem Grund war pkg_version aber dennoch nicht in der Lage, die Versionsnummer des installierten Pakets mit der Versionsnummer des entsprechenden Eintrags im Index zu vergleichen. Entfernen eines Pakets pkg_delete Pakete entfernen Um ein zuvor installiertes Paket zu entfernen, benutzen Sie &man.pkg.delete.1;. &prompt.root; pkg_delete xchat-1.7.1 Beachten Sie, dass &man.pkg.delete.1; die vollständige Bezeichnung des Pakets benötigt. Die Eingabe von xchat anstelle von xchat-1.7.1 wäre im obigen Beispiel daher nicht ausreichend. Benutzen Sie &man.pkg.version.1;, um die Versionsnummer des Pakets herausfinden, oder verwenden Sie Wildcards: &prompt.root; pkg_delete xchat\* In diesem Beispiel werden alle Pakete gelöscht, deren Name mit xchat beginnt. Benutzen von <application>pkgng</application> zur Verwaltung von Binärpaketen pkgng ist ein verbesserter Ersatz für die traditionellen Paketverwaltungswerkzeuge von &os;. Es bietet viele Funktionen, um den Umgang mit Binärpaketen schneller und einfacher zu gestalten. pkgng wurde erstmalig im August 2012 veröffentlicht. pkgng ist kein Ersatz für die Portverwaltungswerkzeuge wie ports-mgmt/portmaster oder ports-mgmt/portupgrade. Während ports-mgmt/portmaster und ports-mgmt/portupgrade Drittanbieter-Software sowohl aus Binärpaketen als auch aus den Ports installieren kann, so installiert pkgng ausschließlich Binärpakete. Erste Schritte mit <application>pkgng</application> &os; 9.1 und nachfolgende Versionen enthalten ein "Bootstrap"-Programm für pkgng. Das Bootstrap-Programm lädt und installiert pkgng. Um das Bootstrap Programm zu starten, geben Sie folgendes ein: &prompt.root; /usr/sbin/pkg Für ältere Versionen von &os; muss pkgng zunächst aus der Ports-Sammlung oder als Paket installiert werden. Um pkgng aus den Ports zu installieren, geben Sie folgendes ein: &prompt.root; cd /usr/ports/ports-mgmt/pkg &prompt.root; make &prompt.root; make install clean Um das Paket zu installieren, geben Sie folgendes ein: &prompt.root; pkg_add -r pkg Bestehende &os; Installationen benötigen eine Konvertierung der pkg_install-Paketdatenbank in das neue Format. Um die Paketdatenbank zu konvertieren, geben Sie folgendes ein: &prompt.root; pkg2ng Auf neu installieren Systemen, auf denen noch keine Software von Drittanbietern installiert wurde, kann dieser Schritt entfallen. Die Konvertierung ist unwiderruflich. Sobald die Paketdatenbank in das Format von pkgng umgewandelt wurde, sollten die traditionellen pkg_install Werkzeuge nicht mehr benutzt werden. Bei der Konvertierung der Paketdatenbank können Fehler ausgegeben werden, wenn die Inhalte auf die neue Version umgewandelt werden. Im Allgemeinen können diese Fehler ignoriert werden. Wenn pkg2ng fertig ist, wird eine Liste von Drittanbieter-Software ausgegeben, die nicht erfolgreich konvertiert werden konnte. Diese Anwendungen müssen manuell neu installiert werden. Um sicherzustellen, dass die &os; Ports-Sammlung neue Pakete mit pkgng und nicht mit pkg_install registriert, muss in &os; 10.X und früheren Versionen folgende Zeile in /etc/make.conf hinzugefügt werden: WITH_PKGNG= yes Konfiguration der <application>pkgng</application> Umgebung Das pkgng Paketverwaltungssystem benutzt für die meisten Operationen ein Paket-Repository. Der Speicherort des Paket-Repositories wird in /usr/local/etc/pkg.conf oder der Umgebungsvariablen PACKAGESITE definiert. Weitere Konfigurationsoptionen für pkgng sind in &man.pkg.conf.5; beschrieben. Grundlegende Bedienung von <application>pkgng</application> Informationen zur Bedienung von pkgng ist in der Manualpage &man.pkg.8; verfügbar. Alternativ kann pkg ohne zusätzliche Argumente aufgerufen werden. Jedes Argument von pkgng ist in seiner spezifischen Manualpage dokumentiert. Um beispielsweise die Manualpage von pkg install zu lesen, geben Sie einen der folgenden Befehle ein: &prompt.root; pkg help install &prompt.root; man pkg-install Mit <application>pkgng</application> Informationen über installierte Pakete anzeigen Informationen über bereits installierte Pakete können mit pkg info angezeigt werden. Dabei wird die Version und die Beschreibung aller Pakete ausgegeben. Informationen zu einem bestimmten Paket können wie folgt angezeigt werden: &prompt.root; pkg info paketname Um zu ermitteln welche Version von pkgng installiert ist, geben Sie folgendes ein: &prompt.root; pkg info pkg pkg-1.0.2 New generation package manager Installation und Deinstallation von Paketen mit <application>pkgng</application> In der Regel werden Benutzer von &os; Binärpakete wie folgt installieren: &prompt.root; pkg install paketname pkg install benutzt das in erwähnte Repository. Im Gegensatz dazu benutzt &man.pkg-add.8; kein Repository, oder eine definierte PACKAGESITE, so dass Abhängigkeiten nicht ordnungsgemäß aufgelöst und fehlende Abhängigkeiten nicht von entfernten Systemen heruntergeladen werden. Dieser Abschnitt beschreibt die Bedienung von pkg install. Informationen zur Bedienung von pkg add finden Sie in &man.pkg-add.8;. Zusätzliche Binärpakete können mit pkg intall installiert werden. Um beispielsweise curl zu installieren: &prompt.root; pkg install curl Updating repository catalogue Repository catalogue is up-to-date, no need to fetch fresh copy The following packages will be installed: Installing ca_root_nss: 3.13.5 Installing curl: 7.24.0 The installation will require 4 MB more space 1 MB to be downloaded Proceed with installing packages [y/N]: y ca_root_nss-3.13.5.txz 100% 255KB 255.1KB/s 255.1KB/s 00:00 curl-7.24.0.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00 Checking integrity... done Installing ca_root_nss-3.13.5... done Installing curl-7.24.0... done Das neue Paket und jedes weitere Paket, das als Abhängigkeit installiert wurde, ist in der Liste der installierten Pakete zu sehen: &prompt.root; pkg info ca_root_nss-3.13.5 The root certificate bundle from the Mozilla Project curl-7.24.0 Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers pkg-1.0.2 New generation package manager Wird ein Paket nicht mehr benötigt, kann es mit pkg delete entfernt werden. Wenn beispielsweise curl nicht mehr benötigt wird: &prompt.root; pkg delete curl The following packages will be deleted: curl-7.24.0_1 The deletion will free 3 MB Proceed with deleting packages [y/N]: y Deleting curl-7.24.0_1... done Installierte Pakete mit <application>pkgng</application> aktualisieren Pakete die nicht mehr aktuell sind, können mit pkg version gefunden werden. &man.pkg-version.8; nutzt zur Identifikation der Paketversionen die lokale Ports-Sammlung, falls diese installiert ist. Ansonsten wird dazu das entfernte Repository benutzt. Pakete können mit pkgng auf neue Versionen aktualisiert werden. Wenn eine neue Version von curl veröffentlicht wurde, kann das lokale Paket auf die neue Version aktualisiert werden: &prompt.root; pkg upgrade Updating repository catalogue repo.txz 100% 297KB 296KB/s 296KB/s 00:00 The following packages will be upgraded: Upgrading curl: 7.24.0 -> 7.24.0_1 1 MB to be downloaded Proceed with upgrading packages [y/N]: y curl-7.24.0_1.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00 Checking integrity... done Upgrading curl from 7.24.0 to 7.24.0_1... done Installierte Pakete mit <application>pkgng</application> auditieren Gelegentlich werden Sicherheitslücken in einer Software innerhalb der Ports-Sammlung entdeckt. pkgng besitzt ein eingebautes Auditing, was mit dem Paket ports-mgmt/portaudit vergleichbar ist. Um die auf dem System installierte Software zu prüfen, geben Sie folgenden Befehl ein: &prompt.root; pkg audit -F Fortgeschrittene Arbeiten mit <application>pkgng</application> Automatisches Entfernen von nicht mehr benötigten Abhängigkeiten mit <application>pkgng</application> Das Entfernen eines Pakets kann möglicherweise unnötige Abhängigkeiten hinterlassen, wie im obigen Beispiel ca_root_nss. Solche Pakete sind zwar noch installiert, aber keine weiteren Pakete hängen mehr von ihnen ab. Unnötige Pakete, die als Abhängigkeit von anderen Paketen installiert wurden, können automatisch erfasst und entfernt werden: &prompt.root; pkg autoremove Packages to be removed: ca_root_nss-3.15.5 The autoremoval will free 723 kB Proceed with autoremoval of packages [y/N]: y Deinstalling ca_root_nss-3.13.5... done Sicherung der <application>pkgng</application> Datenbank Im Gegensatz zum alten Paketverwaltungssystem beinhaltet pkgng einen eigenen Mechanismus zur Sicherung der Paketdatenbank. Um den Inhalt der Datenbank manuell zu sichern, geben Sie folgendes ein: &prompt.root; pkg backup -d pkgng.db Ersetzen Sie den Dateinamen pkgng.db durch einen geeigneten Dateinamen. Zusätzlich verfügt pkgng über ein &man.periodic.8;-Skript, das automatisch eine tägliche Sicherung der Paketdatenbank erstellt, wenn in &man.periodic.conf.5; daily_backup_pkgng_enable auf YES gesetzt ist. Um pkg_install daran zu hindern, ebenfalls eine Sicherung der Paketdatenbank zu erstellen, muss in &man.periodic.conf.5; daily_backup_pkgdb_enable auf NO gesetzt werden. Um den Inhalt einer früheren Paketdatenbank wiederherzustellen, geben Sie folgendes ein: &prompt.root; pkg backup -r /path/to/pkgng.db Alte Pakete mit <application>pkgng</application> entfernen Standardmäßig speichert pkgng Pakete in einem Cache-Verzeichnis, welches in &man.pkg.conf.5; in der Variablen PKG_CACHEDIR definiert wird. Beim Upgrade der Pakete mit pkg upgrade, werden die alten Versionen der Pakete nicht automatisch entfernt. Um veraltete Pakete zu entfernen, geben Sie folgendes ein: &prompt.root; pkg clean Manipulation der <application>pkgng</application> Paket Metadaten Bei Software aus der &os; Ports-Sammlung kann es vorkommen, dass die Hauptversionsnummer geändert wird. Im Gegensatz zu pkg_install hat pkgng ein eingebautes Kommando, um die Quelle eines Pakets zu aktualisieren. Wenn zum Beispiel lang/php5 ursprünglich die Version 5.3 hatte, nun aber in lang/php53 umbenannt wurde, um die Version 5.4 zu integrieren, dann hätte pkg_install zusätzliche Software, wie beispielsweise ports-mgmt/portmaster benötigt, um die Quelle des Pakets in der Paketdatenbank zu aktualisieren. Bei ports-mgmt/portmaster und ports-mgmt/portupgrade unterscheidet sich die Ausgabe bei der Auflistung von neuen und alten Versionen. Für pkgng lautet die Syntax: &prompt.root; pkg set -o category/oldport:category/newport Um die Quelle des Pakets für das obige Beispiel zu ändern, geben Sie folgendes ein: &prompt.root; pkg set -o lang/php5:lang/php53 Ein weiteres Beispiel: Um lang/ruby18 auf lang/ruby19 zu aktualisieren, geben Sie folgendes ein: &prompt.root; pkg set -o lang/ruby18:lang/ruby19 In diesem letzten Beispiel wird die Quelle der Bibliotheken von libglut von graphics/libglut auf graphics/freeglut geändert: &prompt.root; pkg set -o graphics/libglut:graphics/freeglut Bei dem Wechsel einer Paketquelle ist es in den meisten Fällen notwendig, die Pakete neu zu installieren, welche von dem Paket abhängig sind, welches seine Paketquelle geändert hat. Um eine Neuinstallation von abhängigen Paketen zu erzwingen, führen Sie folgenden Befehl aus: &prompt.root; pkg install -Rf graphics/freeglut Benutzen der Ports-Sammlung Dieser Abschnitt stellt die grundlegenden Anweisungen vor, um Anwendungen aus der Ports-Sammlung zu installieren oder zu löschen. &man.ports.7; enthält eine Auflistung aller verfügbaren make-Targets und Umgebungsvariablen. Ende 2012 hat das &os; Ports-Projekt eine Migration des Versionskontrollsystems von CVS auf Subversion durchgeführt. Die bevorzugte Methode zum Herunterladen der Ports-Sammlung ist Portsnap. Benutzer, die lokale Anpassungen der Ports vornehmen müssen, werden es wahrscheinlich bevorzugen, Subversion direkt zu verwenden. Der CVSup-Service wurde am 28. Februar 2013 eingestellt. Installation der Ports-Sammlung Die Ports-Sammlung ist eine Reihe von Makefiles, Patches und Beschreibungen, die unter /usr/ports gespeichert sind. Diese Dateien werden für den Bau und die Installation von Anwendungen unter &os; verwendet. Die folgenden Anweisungen zeigen verschiedene Methoden zur Installation der Ports-Sammlung, falls diese nicht schon während der Installation von &os; installiert wurden. Installation mit Portsnap Portsnap ist ein schnelles und benutzerfreundliches Werkzeug zur Installation der Ports-Sammlung und die bevorzugte Wahl für die meisten Benutzer. Laden Sie einen komprimierten Snapshot der Ports-Sammlung in /var/db/portsnap. &prompt.root; portsnap fetch Wenn Sie Portsnap das erste Mal verwenden, müssen Sie den Snapshot nach /usr/ports extrahieren: &prompt.root; portsnap extract Nach dem ersten Einsatz von Portsnap, kann /usr/ports wie folgt aktualisiert werden: &prompt.root; portsnap fetch &prompt.root; portsnap update Installation mit Subversion Wird mehr Kontrolle über die Ports-Sammlung benötigt (beispielsweise für der Pflege lokaler Änderungen), kann Subversion benutzt werden, um die Ports-Sammlung zu laden. Lesen Sie the Subversion Primer für eine detaillierte Beschreibung von Subversion. Subversion muss installiert sein, bevor damit die Ports-Sammlung geladen werden kann. Ist eine lokale Kopie der Ports-Sammlung bereits vorhanden, installieren Sie Subversion wie folgt: &prompt.root; cd /usr/ports/devel/subversion &prompt.root; make install clean Ist keine lokale Kopie der Ports-Sammlung vorhanden, kann Subversion als Paket installiert werden: &prompt.root; pkg_add -r subversion Wird pkgng für die Verwaltung von Paketen benutzt, kann Subversion darüber installiert werden: &prompt.root; pkg install subversion Laden Sie eine Kopie der Ports-Sammlung. Verwenden Sie anstatt svn0.us-east.FreeBSD.org einen Subversion Mirror in Ihrer Nähe. Committer sollten zuvor den Subversion Primer lesen, um sicherzustellen, dass das richtige Protokoll gewählt wird. &prompt.root; svn checkout https://svn0.us-east.FreeBSD.org/ports/head /usr/ports Nach dem erstmaligen checkout mit Subversion kann /usr/ports wie folgt aktualisiert werden: &prompt.root; svn update /usr/ports Installieren mit <application>sysinstall</application> Nicht zuletzt ist es auch möglich, die Ports-Sammlung über sysinstall zu installieren. Beachten Sie dabei aber, dass bei dieser Methode nicht die aktuellste Version der Ports-Sammlung, sondern die Version, die zum Zeitpunkt der Veröffentlichung der installierten &os;-Version aktuell war, installiert wird. Haben Sie Zugriff auf das Internet, so sollten Sie daher stets eine der weiter oben beschriebenen Methoden verwenden, um die Ports-Sammlung zu installieren. Führen Sie als root sysinstall aus: &prompt.root; sysinstall Wählen Sie den Punkt Configure aus und drücken Sie Enter. Wählen Sie dann Distributions aus und drücken Sie Enter. In diesem Menü wählen Sie ports aus und drücken die Leertaste. Danach wählen Sie Exit aus und drücken Enter. Legen Sie nun ein geeignetes Installationsmedium, wie CD-ROM oder FTP, fest. Wählen Sie nun Exit aus und drücken Enter. Verlassen Sie sysinstall mit X. Migration von <application>CVSup</application>/<application>csup</application> zu <application>portsnap</application> Seit dem 28. Februar 2013 wird die Ports-Sammlung nicht mehr nach CVS exportiert. Somit werden über CVSup und csup keine Updates für die Ports-Sammlung mehr zu Verfügung gestellt. Migration zu portsnap Für die Migration werden in /usr ca. 1 GB freier Speicher und in /var ca. 150 MB freier Speicher benötigt. Deaktivieren Sie alle automatischen Updates der Ports-Sammlung, wie beispielsweise &man.cron.8; Jobs, die CVSup oder csup aufrufen. Verschieben Sie die bestehende Ports-Sammlung in ein temporäres Verzeichnis: &prompt.root; mv /usr/ports /usr/ports.old Laden Sie eine aktuelle Kopie Ports-Sammlung mit Portsnap herunter und extrahieren Sie diese nach /usr/ports: &prompt.root; portsnap fetch extract Verschieben Sie Distfiles und vorhandene Pakete in die neue Ports-Sammlung: &prompt.root; mv /usr/ports.old/distfiles /usr/ports &prompt.root; mv /usr/ports.old/packages /usr/ports Löschen Sie die alte Ports-Sammlung: &prompt.root; rm -rf /usr/ports.old Falls zuvor CVSup verwendet wurde, kann es nun deinstalliert werden: &prompt.root; pkg_delete -r -v cvsup-without-gui-\* Benutzer von pkgng können das folgende Kommando benutzen: &prompt.root; pkg delete cvsup-without-gui Eine detaillierte Beschreibung von Portsnap und wie die Ports-Sammlung mit Portsnap aktualisiert wird, finden Sie in Portsnap: Ein Werkzeug zur Aktualisierung der Ports-Sammlung. Ports installieren Ports installieren Ein Port-Gerüst ist ein Satz von Dateien, die &os; sagen, wie ein Programm zu kompilieren und zu installieren ist. Ein jeder Port beinhaltet: Makefile: Das Makefile enthält Anweisungen, die spezifizieren, wie eine Anwendung kompiliert wird und wohin sie installiert werden sollte. distinfo: Diese Datei enthält Informationen, welche Dateien heruntergeladen werden müssen sowie deren Prüfsummen (&man.sha256.1;), um sicherzustellen, dass Dateien während des Herunterladens nicht beschädigt wurden. files: Dieses Verzeichnis enthält Patches, welche das Übersetzen und Installieren der Anwendung unter &os; ermöglichen. Zudem können noch weitere Dateien, die für die Übersetzung des Ports verwendet werden, enthalten sein. pkg-descr: Diese Datei enthält eine ausführlichere Beschreibung der Anwendung. pkg-plist: Das ist eine Liste aller Dateien, die durch diesen Port installiert werden. Außerdem sind hier Informationen enthalten, die zum Entfernen des Ports benötigt werden. Einige Ports besitzen noch andere Dateien, wie pkg-message, die vom Portsystem benutzt werden, um spezielle Situationen zu handhaben. Wenn Sie mehr über diese Dateien oder das Port-System erfahren sollen, lesen Sie das &os; Porter's Handbook. Ein Port enthält nicht den eigentlichen Quellcode, der auch als Distfile bekannt ist. Der Autor der Software kann bestimmen, in welcher Weise die Software verteilt wird. Die beiden Methoden zur Installation eines &os;-Ports werden nachfolgend beschrieben. Zum Installieren von Ports müssen Sie als Benutzer root angemeldet sein. Stellen Sie sicher, dass die Ports-Sammlung aktuell ist, bevor Sie einen Port kompilieren. Informieren Sie sich vorher zusätzlich unter http://vuxml.FreeBSD.org/ über mögliche Sicherheitsprobleme des zu installierenden Ports. Wenn ports-mgmt/portaudit installiert ist, führen Sie portaudit -F aus, um die aktuelle Sicherheitsdatenbank zu aktualisieren. Die täglich laufende Sicherheitsprüfung des Systems aktualisiert ebenfalls die Datenbank und prüft installierte Anwendungen auf vorhandene Sicherheitsprobleme. Für weitere Informationen lesen Sie die Manualpage &man.portaudit.1; und &man.periodic.8;. Die Ports-Sammlung geht davon, dass eine funktionierende Internetverbindung besteht. Ansonsten muss eine Kopie des zu installierenden Distfiles manuell nach /usr/ports/distfiles kopiert werden. Dazu wechseln Sie als erstes in das Verzeichnis des Ports, den Sie installieren wollen: &prompt.root; cd /usr/ports/sysutils/lsof Um den Port zu übersetzen (auch Bauen genannt), geben Sie am Prompt make ein. Die Ausgabe sollte der in diesem Beispiel ähnlich sein: &prompt.root; make >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. ===> Extracting for lsof-4.57 ... [Ausgabe des Auspackens weggelassen] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure-Ausgabe weggelassen] ... ===> Building for lsof-4.57 ... [Ausgabe der Übersetzung weggelassen] ... &prompt.root; Ist die Übersetzungsprozedur beendet, landen Sie wiederum in der Kommandozeile und können das Programm im nächsten Schritt mit make install installieren: &prompt.root; make install ===> Installing for lsof-4.57 ... [Ausgabe der Installation weggelassen] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Nachdem die Installation abgeschlossen ist, können Sie die gerade installierte Anwendung starten. Da lsof eine Anwendung ist, die mit erhöhten Rechten läuft, wird eine Sicherheitswarnung angezeigt. Sie sollten alle Warnungen während des Baus und der Installation eines Ports beachten. Es ist eine gute Idee, das Unterverzeichnis work nach erfolgter Installation wieder zu löschen. Einerseits gewinnen Sie dadurch Speicherplatz, andererseits könnte es sonst zu Problemen bei der Aktualisierung des Ports auf eine neuere Version kommen. &prompt.root; make clean ===> Cleaning for lsof-4.57 &prompt.root; Sie können zwei Schritte sparen, wenn Sie gleich make install clean anstelle von make, make install und make clean eingeben. Wird ein Port immer nur mit make install installiert, kann es möglicherweise zu mehreren Wartezeiten zwischen Benutzerinteraktionen kommen, da dem Benutzer standardmäßig Optionen angezeigt werden. Um dies bei einer hohen Anzahl an Abhängigkeiten zu vermeiden, starten Sie zuerst make config-recursive, um die Konfiguration der Optionen an einem Stück zu erledigen. Führen Sie anschließend make install [clean] aus. Bei der Verwendung von config-recursive wird eine Liste von Ports, die konfiguriert werden, vom &man.make.1;-Target all-depends-list erstellt. Es wird oft empfohlen, make config-recursive so lange auszuführen, bis alle Optionen der abhängigen Ports definiert sind und keine Optionen und &man.dialog.1;-Masken mehr erscheinen. Damit soll sichergestellt werden, dass alle Optionen wie beabsichtigt konfiguriert wurden. Um die Suche nach Kommandos zu beschleunigen, speichern einige Shells eine Liste der verfügbaren Kommandos in den durch die Umgebungsvariable PATH gegebenen Verzeichnissen. Wenn Sie die tcsh benutzen, müssen Sie eventuell rehash eintippen, um die neu installierten Kommandos benutzen zu können, ohne den vollständigen Pfad anzugeben. Unter Shells wie der sh benutzen Sie stattdessen das Kommando hash -r. Weitere Informationen finden Sie in der Dokumentation der jeweiligen Shell. Einige von Dritten angebotenen DVD-Produkte wie das &os; Toolkit von der &os; Mall enthalten auch Distfiles. Diese lassen sich über die Ports-Sammlung installieren. Dazu hängen Sie die DVD unter /cdrom in den Verzeichnisbaum ein. Wenn Sie einen anderen Mountpunkt verwenden, setzen Sie die make-Variable CD_MOUNTPTS, damit die auf der DVD enthaltenen Distfiles automatisch verwendet werden. Die Lizenzen einiger Ports verbieten die Einbeziehung auf der DVD. Das kann verschiedene Gründe haben. Beispielsweise ist eine Registrierung vor dem Herunterladen erforderlich, oder die Weiterverteilung ist verboten. Wenn Sie einen Port installieren wollen, der nicht auf der DVD enthalten ist, müssen Sie mit dem Internet verbunden sein. Die Ports-Sammlung benutzt zum Herunterladen von Dateien &man.fetch.3;, das Umgebungsvariablen wie FTP_PASSIVE_MODE, FTP_PROXY und FTP_PASSWORD berücksichtigt. Wenn Sie durch eine Firewall geschützt werden, müssen Sie vielleicht eine oder mehrere dieser Umgebungsvariablen setzen, oder einen FTP oder HTTP Proxy verwenden. Eine Liste der unterstützten Umgebungsvariablen finden Sie in &man.fetch.3;. Benutzer ohne eine ständige Internet-Verbindung können make fetch im Verzeichnis /usr/ports ausführen, um die benötigten Dateien herunterzuladen. Es ist auch möglich, make fetch nur in einem Teil des Baums, wie /usr/ports/net, aufzurufen. Die Dateien von allen abhängigen Ports werden mit diesem Kommando allerdings nicht heruntergeladen. Wenn Sie diese Dateien ebenfalls herunterladen wollen, benutzen Sie make fetch-recursive. Sie können alle Ports einer Kategorie oder alle Ports bauen, indem Sie make im übergeordneten Verzeichnis ausführen. Dies ist jedoch eine gefährliche Methode, da einige Ports nicht nebeneinander existieren können. Weiterhin gibt es Fälle, in denen zwei Ports unterschiedliche Inhalte in derselben Datei speichern wollen. In einigen seltenen Fällen ist es erforderlich, die benötigten Dateien von einem anderen Ort als den im Port definierten MASTER_SITES herunterzuladen. Sie können die Option MASTER_SITES mit dem folgenden Kommando überschreiben: &prompt.root; cd /usr/ports/directory &prompt.root; make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch Im Beispiel wurde MASTER_SITES mit dem Wert ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ überschrieben. Einige Ports bieten Optionen, mit denen zusätzliche Funktionen oder Sicherheitsoptionen eingestellt werden können. Zusätzliche Optionen können beispielsweise für www/firefox, security/gpgme und mail/sylpheed-claws angegeben werden. Wenn ein Port über zusätzliche Optionen verfügt, wird ein Menü beim Bau des Ports ausgegeben. Vorgabe-Verzeichnisse ändern Die Variablen WRKDIRPREFIX und PREFIX überschreiben das voreingestellte Bau- und Zielverzeichnis. Zum Beispiel: &prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install Dieses Kommando baut den Port unter /usr/home/example/ports und installiert ihn unter /usr/local. Die Variable PREFIX legt das Installations-Verzeichnis fest: &prompt.root; make PREFIX=/usr/home/example/local install In diesem Beispiel wird der Port unter /usr/ports gebaut und nach /usr/home/example/local installiert. Sie können beide Variablen auch zusammen benutzen: &prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install Alternativ können diese Variablen auch als Umgebungsvariablen gesetzt werden. In der Manualpage Ihrer Shell finden Sie Anweisungen, wie Umgebungsvariablen gesetzt werden. Ports rekonfigurieren Einige Ports enthalten ein ncurses-basiertes Menü, über dessen Optionen der Bau dieser Ports beeinflusst werden kann. Es gibt diverse Möglichkeiten, dieses Menü nach dem Bau eines Ports erneut aufzurufen, um beispielsweise Optionen zu entfernen, hinzuzufügen oder anzupassen. Sie können beispielsweise in das Verzeichnis des Ports wechseln und dort den Befehl make config eingeben. Eine andere Möglichkeit ist make showconfig. Eine weitere Alternative bietet make rmconfig, der alle ursprünglich gewählten Optionen zurücksetzt und es Ihnen dadurch ermöglicht, die Konfiguration erneut zu beginnen. Die eben erwähnten Optionen (und viele andere) werden ausführlich in der Manualpage &man.ports.7; beschrieben. Entfernen installierter Ports Ports entfernen Installierte Ports werden mit &man.pkg.delete.1; wieder deinstalliert: &prompt.root; pkg_delete lsof-4.57 Ports aktualisieren Ports aktualisieren Als erstes sollten sie sich alle installierten Ports anzeigen lassen, von denen eine aktuellere Version in der Ports-Sammlung existiert. Dazu verwenden Sie den Befehl &man.pkg.version.1;: &prompt.root; pkg_version -v Lesen Sie <filename>/usr/ports/UPDATING</filename> Nachdem Sie die Ports-Sammlung auf den neusten Stand gebracht haben, lesen Sie bitte zuerst die Datei /usr/ports/UPDATING, bevor Sie einen Port aktualisieren. In dieser Datei werden Probleme und zusätzlich durchzuführende Schritte bei der Aktualisierung einzelner Ports beschrieben. Dazu gehören solche Dinge wie geänderte Dateiformate, verschobene Konfigurationsdateien, aber auch Inkompatibilitäten zu einer Vorgängerversion. Sollte UPDATING etwas hier Gesagtem widersprechen, so gilt das in UPDATING Gesagte. Ports mit Portupgrade aktualisieren portupgrade portupgrade wurde entwickelt, um die Aktualisierung von Ports zu vereinfachen. Sie können portupgrade über den Port ports-mgmt/portupgrade wie jeden anderen Port mit make install clean installieren: &prompt.root; cd /usr/ports/ports-mgmt/portupgrade/ &prompt.root; make install clean Durchsuchen Sie regelmäßig die Liste der installierten Ports mit pkgdb -F und beheben Sie alle gefundenen Probleme. Es ist eine gute Idee, dies vor jedem Update auszuführen. Benutzen Sie portupgrade -a, um automatisch alle veralteten Ports auf dem System zu aktualisieren. Verwenden Sie den Schalter , wenn Sie individuell entscheiden wollen, ob ein Port aktualisiert werden soll: &prompt.root; portupgrade -ai Um nur eine spezifische Anwendung zu aktualisieren, verwenden Sie portupgrade Paketname. Geben Sie den Schalter an, wenn portupgrade zuvor alle Ports aktualisieren soll, die von dem gegebenen Paket abhängen. &prompt.root; portupgrade -R firefox Um Pakete anstelle von Ports zu installieren, verweden Sie den Schalter . Mit dieser Option durchsucht portupgrade die in der Umgebungsvariablen PKG_PATH aufgeführten Verzeichnisse nach Paketen. Sind lokal keine Pakete vorhanden, versucht portupgrade die Pakete über das Netz herunterzuladen. Gibt es die Pakete weder lokal noch auf entfernten Rechnern, werden die Ports verwendet. Um dies zu verhindern, benutzen Sie die Option . &prompt.root; portupgrade -PP gnome2 Wenn Sie nur die Quelldateien des Ports (oder die Pakete mit ) herunterladen möchten, ohne die Anwendung zu bauen oder zu installieren, geben Sie die Option an. Weitere Möglichkeiten lesen Sie bitte in der Hilfeseite &man.portupgrade.1; nach. Ports mit <application>portmaster</application> aktualisieren portmaster portmaster ist ein weiteres Werkzeug zum Aktualisieren von Ports. portmaster nutzt nur Werkzeuge, die bereits im Basissystem vorhanden sind, ohne dabei von weiteren Ports abhängig zu sein. Es verwendet Informationen in /var/db/pkg/, um festzustellen, welche Ports aktualisiert werden sollen. Sie können den Port wie folgt installieren: &prompt.root; cd /usr/ports/ports-mgmt/portmaster &prompt.root; make install clean Portmaster teilt Ports in vier Kategorien ein: Root ports: no dependencies and is not depended on by other ports Trunk ports: no dependencies, but other ports depend upon it Branch ports: have dependencies but are depended upon by other ports Leaf ports: have dependencies but are not depended upon by other ports Um eine Liste der installierten Ports anzuzeigen und nach neueren Versionen zu suchen, verwenden Sie : &prompt.root; portmaster -L ===>>> Root ports (No dependencies, not depended on) ===>>> ispell-3.2.06_18 ===>>> screen-4.0.3 ===>>> New version available: screen-4.0.3_1 ===>>> tcpflow-0.21_1 ===>>> 7 root ports ... ===>>> Branch ports (Have dependencies, are depended on) ===>>> apache22-2.2.3 ===>>> New version available: apache22-2.2.8 ... ===>>> Leaf ports (Have dependencies, not depended on) ===>>> automake-1.9.6_2 ===>>> bash-3.1.17 ===>>> New version available: bash-3.2.33 ... ===>>> 32 leaf ports ===>>> 137 total installed ports ===>>> 83 have new versions available Um alle installierten Ports zu aktualisieren, verwenden Sie folgenden Befehl: &prompt.root; portmaster -a In der Voreinstellung erzeugt portmaster eine Sicherheitskopie, bevor ein installierter Port gelöscht wird. Ist die Installation der neuen Version erfolgreich, wird dieses Backup wieder gelöscht. Wollen Sie das Backup lieber manuell löschen, verwenden Sie die Option beim Aufruf von portmaster. Durch die Verwendung von wird portmaster im interaktiven Modus gestartet und fragt bei jedem zu aktualisierenden Port nach, wie weiter vorgegangen werden soll. Treten während der Aktualisierung Fehler auf, können Sie die Option verwenden, um alle Ports zu aktualisieren beziehungsweise neu zu bauen: &prompt.root; portmaster -af portmaster ist auch in der Lage, neue Ports zu installieren, wobei zuvor alle abhängigen Ports aktualisiert werden: &prompt.root; portmaster shells/bash Weiterführende Informationen finden Sie in der Manualpage &man.portmaster.8;. Platzbedarf von Ports Ports Plattenplatz Die Nutzung der Ports-Sammlung wird im Laufe der Zeit viel Plattenplatz verschlingen. Nach dem Bau und der Installation eines Ports, wird make clean die temporären Arbeitsverzeichnisse work aufräumen. Um die gesamte Ports-Sammlung aufzuräumen, verwenden Sie folgenden Befehl: &prompt.root; portsclean -C Im Laufe der Zeit werden sich zahlreiche veraltete Distfiles in distfiles ansammeln. Mit dem folgenden Befehl werden alle Distfiles gelöscht, die vom keinem Port mehr benötigt werden: &prompt.root; portsclean -D Um alle Distfiles zu löschen, die von keinem derzeit installierten Port referenziert werden: &prompt.root; portsclean -DD Das Werkzeug portsclean wird automatisch bei der Installation von portupgrade mit installiert. port-mgmt/pkg_cutleaves automatisiert die Deinstallation von installierten Ports, die nicht weiter benötigt werden. Nach der Installation Die meisten Anwendungen von Drittanbietern benötigen ein gewisses Maß an Konfiguration, nachdem sie installiert wurden. Dies kann beispielsweise eine einfache Änderung an der Konfigurationsdatei sein, vielleicht generiert aber die Anwendung selbst eine Konfigurationsdatei. Die meisten Anwendungen installieren die Dokumentation nach /usr/local/share/doc. Diese Dokumentation sollten Sie lesen, bevor Sie fortfahren. Einige Anwendungen laufen als Dienst und müssen vor dem ersten Start in /etc/rc.conf eingetragen werden. Die folgende Liste enthält nützliche Informationen für die Arbeiten nach der Installation eines Ports. In manchen Fällen befindet sich der Speicherort einer Anwendung außerhalb von PATH. Benutzer der &man.csh.1; sollten rehash ausführen, um die neu installierten Programme benutzen zu können. Das Kommando &man.pkg.info.1; zeigt alle installierten Dateien und deren Speicherort an. Wenn beispielsweise die Version 1.0.0 von FooPackage installiert wurde, zeigt das folgende Kommando alle installierten Dateien an, die mit dem Paket installiert wurden: &prompt.root; pkg_info -L foopackage-1.0.0 | less Die Konfigurationsdateien werden immer nach /usr/local/etc installiert. Sie sollten diese Dateien auf jeden Fall lesen, bevor Sie die neue Anwendung benutzen. Um festzustellen welche Version der Anwendung installiert ist: &prompt.root; pkg_info | grep -i foopackage Das Kommando zeigt alle installierten Pakete, deren Paketname foopackage enthält. Ersetzen Sie foopackage durch den Namen der Anwendung, die Sie suchen. Diese Kommandos zeigen auch die Namen der Manualpages, die zusammen mit der Anwendung installiert wurden. Die zusätzliche Dokumentation steht nun auch dem Kommando &man.man.1; zur Verfügung. Wenn es für die Anwendung eine Webseite gibt, suchen Sie dort nach zusätzlicher Dokumentation oder FAQs (häufig gestellte Fragen). Wenn Ihnen die Webseite nicht bekannt ist, versuchen Sie das folgende Kommando: &prompt.root; pkg_info foopackage-1.0.0 Die Ausgabe enthält oft eine Zeile, die mit WWW: beginnt und die URL der Webseite enthält. Ports die während des Systemstarts gestartet werden sollen, installieren meist ein Startskript in /usr/local/etc/rc.d. Überprüfen Sie dieses Skript, und wenn nötig, passen Sie es an oder benennen Sie es um. Weitere Informationen finden Sie in . Kaputte Ports Stolpern Sie einmal über einen Port, der nicht funktioniert: Stellen Sie fest, ob die Datenbank mit den Problemberichten bereits einen Lösungsvorschlag enthält. Ist dies der Fall, kann die vorgeschlagene Lösung getestet werden. Bitten Sie den Betreuer des Ports um Hilfe. Geben Sie dazu make maintainer ein oder lesen Sie das Makefile im Verzeichnis des Ports, um an die E-Mail-Adresse zu kommen. Vergessen Sie nicht den Namen und die Version des Ports (schicken Sie die Zeile mit $FreeBSD: aus dem Makefile) und die Ausgabe bis zur Fehlermeldung mitzuschicken. Einige Ports werden nicht von einer Einzelperson, sondern von einer Mailingliste betreut. Viele (aber nicht alle) dieser Adressen haben die Form freebsd-NameDerListe@FreeBSD.org. Denken Sie daran, wenn Sie Ihre Fragen formulieren. Dies gilt insbesondere für Ports, die als Betreuer den Eintrag ports@FreeBSD.org aufweisen. Derartige Ports haben überhaupt keinen Betreuer. Korrekturen und Unterstützung kommen daher nur von Personen, die diese Mailingliste abonniert haben. Gerade in diesem Bereich werden jederzeit zusätzliche freiwillige Helfer benötigt! Erhalten Sie auf Ihre Anfrage keine Antwort, benutzen Sie &man.send-pr.1;, um einen Problembericht zu erstellen. Bevor Sie einen solchen Bericht erstellen, lesen Sie den Artikel Writing &os; Problem Reports. Reparieren Sie ihn! Das &os; Porter's Handbook enthält eine detaillierte Beschreibung des Portsystems. Damit sind Sie in der Lage, einen gelegentlich kaputten Port zu reparieren oder einen eigenen Port zu erstellen. Benutzen Sie alternativ &man.pkg.add.1;, um das Paket zu installieren.