Index: head/de_DE.ISO8859-1/books/handbook/ports/chapter.xml =================================================================== --- head/de_DE.ISO8859-1/books/handbook/ports/chapter.xml (revision 48271) +++ head/de_DE.ISO8859-1/books/handbook/ports/chapter.xml (revision 48272) @@ -1,1911 +1,1703 @@ 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. 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: Den Unterschied zwischen binären Softwarepaketen und Ports. Wie man Drittanbieter-Software findet, die nach &os; portiert wurde. Wie Binärpakete mit dem traditionellen Paketsystem verwaltet werden. Wie Binärpakete mit pkgng verwaltet werden. Den Bau von Drittanbieter-Software aus dem Quellcode mithilfe der Ports-Sammlung. Wie man die Dateien findet, die zusammen mit der Anwendung installiert wurden. 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. Dies ist typischerweise ein mit &man.compress.1;, &man.gzip.1; oder &man.bzip2.1; komprimiertes Tar-Archiv. 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 muss vielleicht das Makefile angepasst, oder configure ausgeführt werden. Testen und installieren der Software. Wenn die Software nicht speziell für &os; geschrieben wurde, muss vielleicht sogar der Quelltext angepasst werden, damit die Software funktioniert. Zurzeit werden über &os.numports; Anwendungen Dritter zur Verfügung gestellt. &os; bietet zwei Technologien an, die diese Schritte automatisieren. Ein &os;-Paket enthält vorkompilierte Kopien aller Befehle für eine Anwendung, sowie zusätzliche Konfigurationsdateien und Dokumentation. Pakete können mit den pkg-Befehlen, wie pkg install, manipuliert werden. 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 ein Paket 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 gleichartig 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. Der Quellcode wird benötigt, um individuelle Anpassungen 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.org, 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. Wenn die Ports-Sammlung bereits installiert ist, gibt es mehrere Methoden, um die lokale Version dieser Port-Sammlung abzufragen. 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.88.d,8 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: ler@lerctr.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.88.d,8 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 Derzeit befindet sich &os; in einer Übergangsphase auf ein neues Paketverwaltungssystem. Benutzer möchten vielleicht die Vorteile von PKGng bei der Verwaltung von Drittanbieter-Paketen in &os; kennenlernen. Benutzer, die noch nicht auf pkgng migriert haben, können die traditionelle Methode zur Verwaltung der Paketdatenbank verwenden. Diese Methode der Paketverwaltung verwendet ein Datenbankverzeichnis, /var/db/pkg, um Versionen und Dateien von installierten Anwendungen aufzuzeichnen. Verschiedene Werkzeuge interagieren mit dem Datenbankverzeichnis und werden verwendet, um Binärpakete zu verwalten. Solche Kommandos beginnen mit pkg_. Dieser Abschnitt bietet einen Überblick über die Kommandos, die verwendet werden, um Binärpakete zu installieren, zu löschen und um Informationen über Pakete zu sammeln. Jedes Kommando verfügt über viele Optionen, mit den das Verhalten angepasst werden kann. In den aufgeführten Manualpages finden Sie weitere Informationen und Anwendungsbeispiele. Installieren eines Pakets Pakete installieren pkg_add Benutzen Sie &man.pkg.add.1;, um ein Binärpaket von einem lokalen &os;-Medium oder über einen entfernten &os;-Paketserver zu installieren. Obwohl das &os;-Medium keine Netzwerkverbindung für die Installation von Paketen benötigt, wird es wahrscheinlich nicht die neuesten Versionen der Binärpakete enthalten, da die Versionen kontinuierlich auf den &os;-Paketservern neu gebaut werden. Verwenden Sie &man.pkg.add.1; mit -r (für remote), um ein Paket von einem Server zu installieren. Dies bestimmt automatisch das nötige Objektformat und die richtige Version des Pakets, lädt dieses dann von einem Paketserver und installiert es, ohne dass weitere Benutzereingriffe nötig sind. pkg_add &prompt.root; pkg_add -r lsof In diesem Beispiel wird lsof ohne Versionsnummer verwendet, da bei der Installation von Paketen von einem entfernten Server keine Versionen angegeben werden dürfen. 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 für FTP finden Sie in &man.fetch.3;. 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; 9.1-RELEASE System, versucht &man.pkg.add.1; in der Voreinstellung die Pakete von ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9.1-release/Latest/ zu laden. Um &man.pkg.add.1; zu zwingen, nur &os; 9-STABLE-Pakete herunterzuladen, setzen Sie PACKAGESITE auf ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-stable/Latest/. Pakete werden im .tbz-Format ausgeliefert. Sie sind unter ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, oder im Verzeichnis /packages 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 Benutzen Sie &man.pkg.info.1;, um alle installierten Pakete und deren Beschreibung anzuzeigen. pkg_info &prompt.root; pkg_info colordiff-1.0.13 Tool to colorize diff output docbook-1.4 Meta-port for the different versions of the DocBook DTD ... Benutzen Sie &man.pkg.version.1;, um einen Überblick über die Versionen aller installierten Pakete und einen Vergleich zu den aktuellen Versionen aus der lokal installierten Ports-Sammlung anzuzeigen: 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 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-2.8.8_1 Beachten Sie, dass &man.pkg.delete.1; die vollständige Bezeichnung des Pakets benötigt. Die Eingabe von xchat anstelle von xchat-2.8.8_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 der Nachfolger für die traditionellen Paketverwaltungswerkzeuge von &os;. Es bietet viele Funktionen, die den Umgang mit Binärpaketen schneller und einfacher machen. pkgng ist kein Ersatz für die Portverwaltungswerkzeuge wie ports-mgmt/portmaster oder ports-mgmt/portupgrade. Während diese Werkzeuge Drittanbieter-Software sowohl aus Binärpaketen als auch aus der Ports-Sammlung installieren können, so installiert pkgng ausschließlich Binärpakete. Erste Schritte mit <application>pkgng</application> &os; 9.1 und nachfolgende Versionen enthalten ein Bootstrap-Programm, welches pkgng zusammen mit den Manualpages installiert. 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 den Port 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 Sobald pkgng installiert ist, muss die Paketdatenbank mit dem folgenden Befehl vom traditionellen Format in das neue Format konvertiert werden: &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_* 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 den traditionellen Formaten registriert, muss in &os; 10.X und früheren Versionen folgende Zeile in /etc/make.conf hinzugefügt werden: WITH_PKGNG= yes 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. Informationen zur Bedienung von pkgng ist in &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 Der Rest dieses Abschnitts beschreibt die typischen Verwaltungsaufgaben für Binärpakete, die mit pkgng erledigt werden können. Jedes gezeigte Kommando verfügt über Optionen, um das Verhalten anzupassen. Details und weitere Beispiele finden Sie in den Manualpages der einzelnen Kommandos. Informationen über installierte Pakete anzeigen Informationen über bereits installierte Pakete können mit pkg info angezeigt werden. Dabei wird, wenn keine weiteren Optionen angegeben werden, die Version und die Beschreibung aller Pakete oder eines einzelnen Pakets ausgegeben. Um zu ermitteln welche Version von pkgng installiert ist, geben Sie folgendes ein: &prompt.root; pkg info pkg pkg-1.1.4_1 Installation und Deinstallation von Paketen Ein Binärpaket installieren Sie mit dem folgenden Befehl, wobei paketname der Name des zu installierenden Pakets ist: &prompt.root; pkg install paketname Dieser Befehl verwendet Daten aus dem Repository um zu bestimmen, welche Version der Software und welche Abhängigkeiten installiert werden müssen. Um beispielsweise curl zu installieren: &prompt.root; pkg install curl Updating repository catalogue /usr/local/tmp/All/curl-7.31.0_1.txz 100% of 1181 kB 1380 kBps 00m01s /usr/local/tmp/All/ca_root_nss-3.15.1_1.txz 100% of 288 kB 1700 kBps 00m00s Updating repository catalogue The following 2 packages will be installed: Installing ca_root_nss: 3.15.1_1 Installing curl: 7.31.0_1 The installation will require 3 MB more space 0 MB to be downloaded Proceed with installing packages [y/N]: y Checking integrity... done [1/2] Installing ca_root_nss-3.15.1_1... done [2/2] Installing curl-7.31.0_1... done Cleaning up cache files...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.15.1_1 The root certificate bundle from the Mozilla Project curl-7.31.0_1 Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers pkg-1.1.4_6 New generation package manager Wird ein Paket nicht mehr benötigt, kann es mit pkg delete entfernt werden. Zum Beispiel: &prompt.root; pkg delete curl The following packages will be deleted: curl-7.31.0_1 The deletion will free 3 MB Proceed with deleting packages [y/N]: y [1/1] Deleting curl-7.31.0_1... done Installierte Pakete 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. Installierte Pakete können mit pkg upgrade auf die neuesten Versionen aktualisiert werden. Mit diesem Befehl werden die installierten Versionen der Pakete mit denen im Repository verglichen. Es wird dann eine Liste der Anwendungen ausgegeben, für die neuere Versionen zur Verfügung stehen. Geben Sie y ein, um die Aktualisierung durchzuführen, oder n, um die Aktualisierung abzubrechen. Installierte Pakete auditieren Gelegentlich werden Sicherheitslücken in einer Drittanbieter-Software entdeckt. pkgng besitzt einen eingebauten Auditing-Mechanismus. Um die auf dem System installierte Software auf Sicherheitslücken zu prüfen, geben Sie folgenden Befehl ein: &prompt.root; pkg audit -F Automatisches Entfernen von nicht mehr benötigten Abhängigkeiten Das Entfernen eines Pakets kann möglicherweise Abhängigkeiten hinterlassen, die nicht mehr benötigt werden. 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.1_1 The autoremoval will free 723 kB Proceed with autoremoval of packages [y/N]: y Deinstalling ca_root_nss-3.15.1_1... done Sicherung der Paketdatenbank Im Gegensatz zum alten Paketverwaltungssystem beinhaltet pkgng einen eigenen Mechanismus zur Sicherung der Paketdatenbank. Um den Inhalt der Paketdatenbank manuell zu sichern, geben Sie folgendes ein, und ersetzen Sie pkgng.db durch einen geeigneten Namen: &prompt.root; pkg backup -d pkgng.db Zusätzlich verfügt pkgng über ein &man.periodic.8;-Skript, das automatisch eine tägliche Sicherung der Paketdatenbank erstellt. Diese Funktionalität kann aktiviert werden, indem in &man.periodic.conf.5; daily_backup_pkgng_enable auf YES gesetzt ist. Um das Skript daran zu hindern, 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 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 Paket-Metadaten Bei Software aus der &os; Ports-Sammlung kann es vorkommen, dass die Hauptversionsnummer geändert wird. Dafür hat pkgng ein eingebautes Kommando, um die Quelle eines Pakets zu aktualisieren. Dies ist nützlich, wenn zum Beispiel lang/php5 zu lang/php53 umbenannt wurde, damit lang/php5 jetzt die Version 5.4 integrieren kann. 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 einem Wechsel der Paketquelle ist es notwendig, die Pakete neu zu installieren, welche von dem Paket abhängig sind, das 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. + 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. Bevor eine Anwendung aus den Ports + erstellt werden kann, muss zuerst die Ports-Sammlung installiert + werden. Wenn Sie dies nicht bereits bei der Installation von + &os; getan haben, benutzen Sie eine der beiden Methoden um sie + zu installieren: - - 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. + Benutzer. Im + finden Sie eine ausführliche Beschreibung zu + Portsnap. 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), + Wird mehr Kontrolle über die Ports-Sammlung benötigt, + oder wenn die lokalen Änderungen beibehalten werden sollen, 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. + sein, bevor 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. + Laden Sie eine Kopie der Ports-Sammlung: - &prompt.root; svn checkout https://svn0.us-east.FreeBSD.org/ports/head /usr/ports + &prompt.root; svn checkout https://svn.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> + Die Ports-Sammlung installiert eine Reihe von + Verzeichnissen, die jeweils eine Softwarekategorie + repräsentieren. Jede Kategorie hat für jede einzelne + Anwendung ein weiteres Unterverzeichnis. Jedes + Unterverzeichnis enthält Dateien, die &os; sagen, wie ein + Programm kompiliert und installiert werden muss. Diese + Dateien werden auch Port-Gerüst genannt. + Jedes Port-Gerüst beinhaltet die folgenden + Dateien und Verzeichnisse: - 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. + Makefile: enthält Anweisungen, + die spezifizieren, wie die Anwendung kompiliert + wird und wohin die Komponenten installiert werden + sollten. - 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. + distinfo: enthält die Namen und + die Prüfsummen der Dateien, die heruntergeladen werden + müssen, um den Port zu bauen. - files: Dieses Verzeichnis + 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 + pkg-descr: enthält eine ausführlichere Beschreibung der Anwendung. - pkg-plist: Das ist eine Liste + pkg-plist: 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. + Einige Ports beinhalten noch + pkg-message oder weitere Dateien, die vom + Port-System benutzt werden, um spezielle Situationen zu + handhaben. Wenn Sie mehr über diese Dateien oder das + Port-System erfahren wollen, 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. + auch als Distfile bekannt ist. Der + heruntergeladene Quellcode wird automatisch nach + /usr/ports/distfiles extrahiert. - - Zum Installieren von Ports müssen Sie als Benutzer - root angemeldet sein. - + + Ports installieren - - 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;. - + + Ports + installieren + - 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. + Dieser Abschnitt beschreibt die grundlegende Benutzung + der Ports-Sammlung, um Software zu installieren oder zu + deinstallieren. Eine ausführliche Beschreibung der + einzelnen make-Targets finden Sie in + &man.ports.7;. - Dazu wechseln Sie als erstes in das Verzeichnis des - Ports, den Sie installieren wollen: + + 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. + Alternativ können Sie pkg audit -F + ausführen, bevor Sie einen neuen Port installieren. Die + täglich laufende Sicherheitsprüfung des Systems + aktualisiert ebenfalls die Datenbank und prüft + installierte Anwendungen auf vorhandene + Sicherheitsprobleme. Weitere Informationen finden Sie in + &man.portaudit.1; und &man.periodic.8;. + - &prompt.root; cd /usr/ports/sysutils/lsof + Die Benutzung der Ports-Sammlung setzt eine + funktionierende Internetverbindung und Superuser-Rechte + voraus. - Um den Port zu übersetzen (auch Bauen genannt), geben Sie - am Prompt make ein. Die Ausgabe sollte der - in diesem Beispiel ähnlich sein: + Um einen Port zu installieren, wechseln Sie in das + Verzeichnis des Ports, den Sie installieren möchten. Geben + Sie dann make install am Prompt + ein: - &prompt.root; make ->> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. + &prompt.root; cd /usr/ports/sysutils/lsof +&prompt.root; make install +>> lsof_4.88D.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 +===> Extracting for lsof-4.88 ... [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 +>> Checksum OK for lsof_4.88D.freebsd.tar.gz. +===> Patching for lsof-4.88.d,8 +===> Applying FreeBSD patches for lsof-4.88.d,8 +===> Configuring for lsof-4.88.d,8 ... [configure-Ausgabe weggelassen] ... -===> Building for lsof-4.57 +===> Building for lsof-4.88.d,8 ... [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 +===> Installing for lsof-4.88.d,8 ... [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. +/usr/local/bin/lsof &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. + Da lsof eine Anwendung ist, die mit + erhöhten Rechten läuft, wird nach der Installation eine + Sicherheitswarnung angezeigt. Sobald die Installation + abgeschlossen ist, erscheint wieder der Prompt. - 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. - + Verzeichnissen. Benutzer der tcsh müssen + eventuell rehash eintippen, um die neu + installierten Kommandos benutzen zu können, ohne den + vollständigen Pfad anzugeben. Benutzer der Shell + sh müssen stattdessen + hash -r eintippen. 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. + Bei der Installation wird ein Arbeitsverzeichnis + erstellt, das alle temporären Dateien enthält, die während + des Bauvorgangs benötigt werden. Wenn dieses Verzeichnis + nach der Installation entfernt wird, spart dies + Plattenplatz und minimiert mögliche Probleme bei der + Aktualisierung des Ports auf eine neuere Version: - - 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. - + &prompt.root; make clean +===> Cleaning for lsof-4.88.d,8 +&prompt.root; - 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;. + + Sie können zwei Schritte sparen, wenn Sie bei der + Kompilierung des Ports gleich + make install clean eingeben. + - 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. + + Port Installation anpassen - - 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. - + Einige Ports bieten Optionen, mit denen zusätzliche + Funktionen oder Sicherheitsoptionen eingestellt werden + können. Beispiele dafür sind + www/firefox, + security/gpgme und + mail/sylpheed-claws. Wenn ein Port + über zusätzliche Abhängigkeiten und Optionen verfügt, wird + während des Bau des Ports mehrmals ein Menü ausgegeben, + wo der Benutzer verschiedene Optionen wählen + kann. Um dies zu vermeiden, wechseln Sie in das + Verzeichnis des Ports und geben Sie + make config-recursive ein, um die + Konfiguration an einem Stück zu erledigen. Führen Sie + danach make install [clean] aus, um den + Port zu kompilieren und zu installieren. - 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: + + Bei der Verwendung von + config-recursive wird eine + Liste von Ports, die konfiguriert werden, vom + Target all-depends-list + erstellt. Es wird empfohlen, + make config-recursive so lange + auszuführen, bis alle Optionen der abhängigen Ports + definiert sind und keine Optionen und Menüs mehr + erscheinen. Damit soll sichergestellt werden, dass alle + Optionen konfiguriert wurden. + - &prompt.root; cd /usr/ports/directory -&prompt.root; make MASTER_SITE_OVERRIDE= \ -ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch + Es gibt diverse Möglichkeiten, dieses Menü nach dem + Bau eines Ports erneut aufzurufen, um Optionen zu + entfernen, hinzuzufügen oder anzupassen. Sie können + beispielsweise mit cd in das + Verzeichnis des Ports wechseln und dort + make config eingeben. Eine andere + Möglichkeit ist make showconfig. Eine + weitere Alternative bietet + make rmconfig, das alle ursprünglich + gewählten Optionen zurücksetzt und es Ihnen dadurch + ermöglicht, die Konfiguration erneut zu beginnen. Die + eben erwähnten Optionen werden ausführlich in + &man.ports.7; beschrieben. - Im Beispiel wurde MASTER_SITES - mit dem Wert - ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ - überschrieben. + Die Ports-Sammlung benutzt zum Herunterladen von + Dateien &man.fetch.3;, das diverse Umgebungsvariablen + unterstützt. Die Variablen + FTP_PASSIVE_MODE, FTP_PROXY + und FTP_PASSWORD müssen unter Umständen + gesetzt werden, wenn das &os;-System hinter einer Firewall + oder einem FTP/HTTP-Proxy arbeitet. Eine vollständige + Liste der unterstützten Variablen finden Sie in + &man.fetch.1;. - - 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. - + 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 + stattdessen + make fetch-recursive. - - Vorgabe-Verzeichnisse ändern + 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 + MASTER_SITES mit dem folgenden Kommando + überschreiben: - Die Variablen WRKDIRPREFIX - und PREFIX überschreiben das - voreingestellte Bau- und Zielverzeichnis. - Zum Beispiel: + &prompt.root; cd /usr/ports/directory +&prompt.root; make MASTER_SITE_OVERRIDE= \ +ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch - &prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install + Die Variablen WRKDIRPREFIX und + PREFIX überschreiben das + voreingestellte Bau- und Zielverzeichnis. Zum + Beispiel: - Dieses Kommando baut den Port unter - /usr/home/example/ports und installiert - ihn unter /usr/local. + &prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install - Die Variable PREFIX legt das - Installations-Verzeichnis fest: + Dieses Kommando baut den Port unter + /usr/home/example/ports und installiert + ihn unter /usr/local. - &prompt.root; make PREFIX=/usr/home/example/local install + Die Variable PREFIX legt das + Installations-Verzeichnis fest: - In diesem Beispiel wird der Port unter - /usr/ports gebaut und nach - /usr/home/example/local - installiert. + &prompt.root; make PREFIX=/usr/home/example/local install - Sie können beide Variablen auch zusammen - benutzen: + In diesem Beispiel wird der Port unter + /usr/ports gebaut und nach + /usr/home/example/local + installiert. - &prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install + Sie können beide Variablen auch zusammen + benutzen: - Alternativ können diese Variablen auch als - Umgebungsvariablen gesetzt werden. In der Manualpage Ihrer - Shell finden Sie Anweisungen, wie Umgebungsvariablen gesetzt - werden. - + &prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install - - 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. + Alternativ können diese Variablen auch als + Umgebungsvariablen gesetzt werden. In der Manualpage Ihrer + Shell finden Sie Anweisungen, wie Umgebungsvariablen gesetzt + werden. Entfernen installierter Ports Ports entfernen - Installierte Ports werden mit &man.pkg.delete.1; wieder - deinstalliert: + Installierte Ports können mit + pkg delete wieder deinstalliert werden. + Beispiele für dieses Kommando finden Sie in + &man.pkg-delete.8;. - &prompt.root; pkg_delete lsof-4.57 + Alternativ kann make deinstall im + Verzeichnis des Ports aufgerufen werden: + + &prompt.root; cd /usr/ports/sysutils/lsof +make deinstall +===> Deinstalling for sysutils/lsof +===> Deinstalling +Deinstallation has been requested for the following 1 packages: + + lsof-4.88.d,8 + +Thee deinstallation will free 229 kB +[1/1] Deleting lsof-4.88.d,8... done + + Es wird empfohlen die Nachrichten zu lesen, die + ausgegeben werden, wenn ein Port deinstalliert wird. Wenn + der Port noch Anwendungen hat, die von ihm abhängig sind, + werdenn diese am Bildschirm angezeigt, aber die Deinstallation + wird forgesetzt. In solchen Fällen ist es besser, die + Anwendung neu zu installieren, um fehlende Abhängigkeiten zu + vermeiden. 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 Unabhängig davon, ob die Software aus einem binären Paket oder aus einem Port installiert wird, benötigen die meisten Anwendungen von Drittanbietern ein gewisses Maß an Konfiguration, nachdem sie installiert wurden. Die folgenden Kommandos und Speicherorte helfen Ihnen dabei festzustellen, was mit der Anwendung zusammen installiert wurde. Die meisten Anwendungen installieren mindestens eine Konfigurationsdatei nach /usr/local/etc. Die Konfigurationsdateien sollten überprüft und ggf. bearbeitet werden, um die Anforderungen des Systems zu erfüllen. Wenn die Anwendung Dokumentation zur Verfügung stellt, wird diese nach /usr/local/share/doc installiert. Viele Anwendungen installieren auch Manualpages. 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. Diese Anwendungen installieren meist ein Skript in /usr/local/etc/rc.d. Weitere Informationen finden Sie im . Benutzer der &man.csh.1; sollten rehash ausführen, um die neu installierten Programme nutzen zu können. Benutzen Sie pkg info, um die Dateien, Manualpages und Binaries zu ermitteln, die mit der Anwendung installiert wurden. 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.