doc/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
Benedict Reuschling b2bd8eb00c MFde: Update the german documentation set.
Thanks to the efforts of Frank Börner, we were able to
update multiple documents to the current version.

books/developers-handbook/policies/chapter.sgml     1.33 -> 1.34    [1]
books/handbook/book.sgml                            1.175 -> 1.176  [1]
books/handbook/cutting-edge/chapter.sgml            1.245 -> 1.246
books/handbook/kernelconfig/chapter.sgml            1.193 -> 1.194
books/handbook/ports/chapter.sgml                   1.278 -> 1.290  [1]
books/handbook/x11/chapter.sgml                     1.186 -> 1.201
flyer/flyer.tex                                     1.16 -> 1.17    [1]
share/sgml/trademarks.sgml                          1.6 -> 1.7      [1]

[1] Contributed by:     Frank Börner (frank dash freebsd at online dot de)
Obtained from:          The FreeBSD German Documentation Project
2010-01-24 18:49:24 +00:00

1686 lines
66 KiB
Text

<!--
The FreeBSD Documentation Project
The FreeBSD German Documentation Project
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/ports/chapter.sgml,v 1.108 2010/01/10 20:19:21 bcr Exp $
basiert auf: 1.290
-->
<chapter id="ports">
<chapterinfo>
<authorgroup>
<author>
<firstname>Uwe</firstname>
<surname>Pierau</surname>
<contrib>&Uuml;bersetzt von </contrib>
</author>
</authorgroup>
</chapterinfo>
<title>Installieren von Anwendungen: Pakete und Ports</title>
<sect1 id="ports-synopsis">
<title>&Uuml;bersicht</title>
<indexterm><primary>Ports</primary></indexterm>
<indexterm><primary>Pakete</primary></indexterm>
<para>FreeBSD enth&auml;lt sehr viele Systemwerkzeuge, die Teil des
Basissystems sind. Allerdings sind Sie fr&uuml;her oder sp&auml;ter
auf Software Dritter angewiesen, damit Sie bestimmte Arbeiten
durchf&uuml;hren k&ouml;nnen. Um diese Software zu installieren,
stellt FreeBSD zwei sich erg&auml;nzende Methoden zur
Verf&uuml;gung: Die Ports-Sammlung (zur Installation aus dem
Quellcode) sowie Pakete (auch als
<foreignphrase>Packages</foreignphrase> bezeichnet, zur Installation
von vorkompilierten bin&auml;ren Softwarepaketen).
Sie k&ouml;nnen beide Methoden benutzen, um Ihre Lieblingsanwendungen
von lokalen Medien oder &uuml;ber das Netzwerk zu
installieren.</para>
<para>Dieses Kapitel behandelt die folgenden Themen:</para>
<itemizedlist>
<listitem>
<para>Die Installation bin&auml;rer Softwarepakete.</para>
</listitem>
<listitem>
<para>Der Bau Software Dritter aus dem Quellcode mithilfe der
Ports-Sammlung.</para>
</listitem>
<listitem>
<para>Wie zuvor installierte Pakete oder Ports
entfernt werden.</para>
</listitem>
<listitem>
<para>Wie Sie die Voreinstellungen der Ports-Sammlung
&uuml;berschreiben.</para>
</listitem>
<listitem>
<para>Die Suche nach geeigneter Software.</para>
</listitem>
<listitem>
<para>Wie Sie Ihre Anwendungen aktualisieren.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="ports-overview">
<title>Installation von Software</title>
<para>Wenn Sie schon einmal ein &unix; System benutzt haben, werden Sie
wissen, dass zus&auml;tzliche Software meist wie folgt
installiert wird:</para>
<procedure>
<step>
<para>Download der Software, die als Quelltext oder im
Bin&auml;rformat vorliegen kann.</para>
</step>
<step>
<para>Auspacken der Software, die typischerweise ein mit
&man.compress.1;, &man.gzip.1; oder &man.bzip2.1;
komprimiertes Tar-Archiv enth&auml;lt.</para>
</step>
<step>
<para>Durchsuchen der Dokumentation, die sich meist in Dateien wie
<filename>INSTALL</filename>, <filename>README</filename> oder
mehreren Dateien im Verzeichnis <filename>doc/</filename>
befindet, nach Anweisungen, wie die Software
zu installieren ist.</para>
</step>
<step>
<para>Kompilieren der Software wenn sie als Quelltext vorliegt.
Dazu m&uuml;ssen Sie vielleicht das <filename>Makefile</filename>
anpassen, oder <command>configure</command> laufen lassen, oder
andere Arbeiten durchf&uuml;hren.</para>
</step>
<step>
<para>Testen und installieren der Software.</para>
</step>
</procedure>
<para>Das beschreibt aber nur den optimalen Fall. Wenn Sie
Software installieren, die nicht speziell f&uuml;r FreeBSD
geschrieben wurde, m&uuml;ssen Sie vielleicht sogar den Quelltext
anpassen, damit die Software funktioniert.</para>
<para>Wenn Sie unbedingt wollen, k&ouml;nnen Sie mit FreeBSD Software
nach der <quote>althergebrachten</quote> Methode installieren. Mit
Paketen oder Ports bietet Ihnen FreeBSD allerdings zwei Methoden an,
die Ihnen sehr viel Zeit sparen k&ouml;nnen. Zurzeit werden &uuml;ber
&os.numports; Anwendungen Dritter &uuml;ber diese Methoden zur
Verf&uuml;gung gestellt.</para>
<para>Das FreeBSD-Paket einer Anwendung besteht aus einer einzigen
Datei, die Sie sich herunterladen m&uuml;ssen. Das Paket
enth&auml;lt schon &uuml;bersetzte Kommandos der Anwendung, sowie
zus&auml;tzliche Konfigurationsdateien oder Dokumentation. Zur
Handhabung der Pakete stellt FreeBSD-Kommandos wie &man.pkg.add.1;,
&man.pkg.delete.1; oder &man.pkg.info.1; zur Verf&uuml;gung.
Mit diesem System k&ouml;nnen neue Anwendungen mit einem
Kommando, <command>pkg_add</command>, installiert werden.</para>
<para>Der FreeBSD-Port einer Anwendung ist eine Sammlung von Dateien,
die das Kompilieren der Quelltexte einer Anwendung
automatisieren.</para>
<para>Die Dateien eines Ports f&uuml;hren f&uuml;r Sie alle oben
aufgef&uuml;hrten Schritte zum Installieren einer Anwendung durch.
Mit einigen wenigen Kommandos wird der Quellcode der Anwendung
automatisch heruntergeladen, ausgepackt, gepatcht, &uuml;bersetzt und
installiert.</para>
<para>Tats&auml;chlich kann das Portsystem auch dazu benutzt werden,
Pakete zu generieren, die Sie mit den gleich beschriebenen Kommandos,
wie <command>pkg_add</command>, manipulieren k&ouml;nnen.</para>
<para>Pakete und Ports beachten Abh&auml;ngigkeiten zwischen
Anwendungen. Angenommen, Sie wollen eine Anwendung installieren,
die von einer Bibliothek abh&auml;ngt und die Anwendung wie die
Bibliothek sind als Paket oder Port f&uuml;r FreeBSD verf&uuml;gbar.
Wenn Sie <command>pkg_add</command> oder das Portsystem benutzen,
um die Anwendung zu installieren, werden Sie bemerken, dass
die Bibliothek zuerst installiert wird, wenn sie nicht schon vorher
installiert war.</para>
<para>Sie werden sich fragen, warum FreeBSD-Pakete und -Ports
unterst&uuml;tzt, wo doch beide Methoden fast gleiches leisten.
Beide Methoden haben ihre St&auml;rken und welche Sie einsetzen,
h&auml;ngt letztlich von Ihren Vorlieben ab.</para>
<itemizedlist>
<title>Vorteile von Paketen</title>
<listitem>
<para>Das komprimierte Paket einer Anwendung ist normalerweise
kleiner als das komprimierte Archiv der Quelltexte.</para>
</listitem>
<listitem>
<para>Pakete m&uuml;ssen nicht mehr kompiliert werden. Dies ist
ein Vorteil, wenn Sie gro&szlig;e Pakete, wie
<application>Mozilla</application>, <application>KDE</application>
oder <application>GNOME</application> auf langsamen Maschinen
installieren.</para>
</listitem>
<listitem>
<para>Wenn Sie Pakete verwenden, brauchen Sie nicht zu verstehen,
wie Sie Software unter FreeBSD kompilieren.</para>
</listitem>
</itemizedlist>
<itemizedlist>
<title>Vorteile von Ports</title>
<listitem>
<para>Da die Pakete auf m&ouml;glichst vielen System laufen sollen,
werden Optionen beim &Uuml;bersetzen zur&uuml;ckhaltend gesetzt.
Wenn Sie eine Anwendung &uuml;ber die Ports installieren,
k&ouml;nnen Sie die Angabe der Optionen optimieren. Zum Beispiel
k&ouml;nnen Sie spezifischen Code f&uuml;r Pentium&nbsp;4 oder
Athlon Prozessoren erzeugen.</para>
</listitem>
<listitem>
<para>Die Eigenschaften einiger Anwendungen werden &uuml;ber
Optionen zum Zeitpunkt des &Uuml;bersetzens festgelegt.
<application>Apache</application> kann zum Beispiel &uuml;ber
viele eingebaute Optionen konfiguriert werden. Wenn Sie das
Portsystem benutzen, k&ouml;nnen Sie die Vorgaben f&uuml;r die
Optionen &uuml;berschreiben.</para>
<para>F&uuml;r einige F&auml;lle existieren verschiedene
Pakete einer Anwendung, die beim &Uuml;bersetzen
unterschiedlich konfiguriert wurden. F&uuml;r
<application>Ghostscript</application> gibt es ein
<filename>ghostscript</filename>-Paket und ein
<filename>ghostscript-nox11</filename>-Paket, die sich durch die
X11 Unterst&uuml;tzung unterscheiden. Diese grobe Unterscheidung
ist mit dem Paketsystem m&ouml;glich, wird aber schnell
unhandlich, wenn eine Anwendung mehr als ein oder zwei Optionen
zum Zeitpunkt des &Uuml;bersetzens besitzt.</para>
</listitem>
<listitem>
<para>Die Lizenzbestimmungen mancher Software verbietet ein
Verbreiten in bin&auml;rer Form. Diese Software muss als
Quelltext ausgeliefert werden.</para>
</listitem>
<listitem>
<para>Einige Leute trauen bin&auml;ren Distributionen nicht. Wenn
Sie den Quelltext besitzen, k&ouml;nnen Sie sich diesen
(zumindest theoretisch) durchlesen und nach m&ouml;glichen Problemen
durchsuchen.</para>
</listitem>
<listitem>
<para>Wenn Sie eigene Anpassungen besitzen, ben&ouml;tigen Sie den
Quelltext, um diese anzuwenden.</para>
</listitem>
<listitem>
<para>Manch einer besitzt gerne den Quelltext, um ihn zu lesen,
wenn es einmal langweilig ist, ihn zu hacken, oder sich einfach
ein paar Sachen abzugucken (nat&uuml;rlich nur, wenn es die
Lizenzbestimmungen erlauben).</para>
</listitem>
</itemizedlist>
<para>Wenn Sie &uuml;ber aktualisierte Ports informiert sein wollen,
lesen Sie bitte die Mailinglisten &a.ports; und &a.ports-bugs;.</para>
<warning>
<para>Bevor Sie eine Anwendung installieren, sollten Sie
auf der Seite <ulink url="http://vuxml.FreeBSD.org/"></ulink>
&uuml;ber m&ouml;gliche Sicherheitsprobleme mit der
Anwendung informieren.</para>
<para>Die Anwendung
<filename role="package">ports-mgmt/portaudit</filename>
pr&uuml;ft automatisch alle installierten Anwendungen
auf bekannte Sicherheitsl&ouml;cher. Vor dem Bau eines
Ports findet ebenfalls eine Pr&uuml;fung statt.
Installierte Pakete pr&uuml;fen Sie mit dem
Kommando <command>portaudit -F -a</command>.</para>
</warning>
<para>Der Rest dieses Kapitels beschreibt, wie Sie Software Dritter mit
Paketen oder Ports auf einem FreeBSD-System installieren und
verwalten.</para>
</sect1>
<sect1 id="ports-finding-applications">
<title>Suchen einer Anwendung</title>
<para>Bevor Sie eine Anwendung installieren, m&uuml;ssen Sie deren
Art und Namen kennen.</para>
<para>Die Anzahl der nach FreeBSD portierten Anwendungen steigt
st&auml;ndig. Zum Gl&uuml;ck gibt es einige Wege, die richtige zu
finden.</para>
<itemizedlist>
<listitem>
<para>Eine aktuelle Liste verf&uuml;gbarer Anwendungen, die sich
auch durchsuchen l&auml;sst, finden Sie unter <ulink
url="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/</ulink>.
Die Anwendungen sind in Kategorien unterteilt und Sie
k&ouml;nnen sich alle Anwendungen einer Kategorie anzeigen
lassen. Wenn Sie den Namen der Anwendung kennen, k&ouml;nnen
Sie nat&uuml;rlich auch direkt nach dem Namen suchen.</para>
</listitem>
<indexterm><primary>FreshPorts</primary></indexterm>
<listitem>
<para>FreshPorts, das von Dan Langille gepflegt wird, erreichen Sie
unter <ulink url="http://www.FreshPorts.org/"></ulink>.
FreshPorts verfolgt
&Auml;nderungen an Anwendungen aus den Ports. Mit FreshPorts
k&ouml;nnen Sie ein oder mehrere Ports beobachten und sich eine
E-Mail schicken lassen, wenn ein Port aktualisiert wird.</para>
</listitem>
<indexterm><primary>FreshMeat</primary></indexterm>
<listitem>
<para>Wenn Sie den Namen einer Anwendung nicht kennen, versuchen
Sie eine Webseite wie FreshMeat
(<ulink url="http://www.freshmeat.net/"></ulink>),
um eine passende Anwendung zu finden. Schauen Sie dann auf der
FreeBSD-Webseite nach, ob die Anwendung schon portiert
wurde.</para>
</listitem>
<listitem>
<para>Wenn Sie den Portnamen kennen und nur nach der
Kategorie suchen wollen, verwenden Sie das Kommando
&man.whereis.1;. Geben Sie einfach
<command>whereis <replaceable>Datei</replaceable></command> ein.
<replaceable>Datei</replaceable> ist der Name des
Programms, das Sie suchen:</para>
<screen>&prompt.root; <userinput>whereis lsof</userinput>
lsof: /usr/ports/sysutils/lsof</screen>
<para>Damit haben wir herausgefunden, dass sich
<command>lsof</command>, ein Systemwerkzeug, im Verzeichnis
<filename class="directory">/usr/ports/sysutils/lsof</filename>
befindet.</para>
</listitem>
<listitem>
<para>Auch mit einem einfachen &man.echo.1;-Befehl k&ouml;nnen
Sie herausfinden, wo Sie einen bestimmten Port finden. Dazu
ein Beispiel:</para>
<screen>&prompt.root; <userinput>echo /usr/ports/*/*lsof*</userinput>
/usr/ports/sysutils/lsof</screen>
<para>Beachten Sie aber, dass dieser Befehl auch alle Dateien
im Verzeichnis <filename
class="directory">/usr/ports/distfiles</filename>
findet, auf die der angegebene Suchbegriff passt.</para>
</listitem>
<listitem>
<para>Ein weiterer Weg, einen bestimmten Port zu finden, ist es,
die eingebaute Suchfunktion der Ports-Sammlung zu benutzen.
Dazu muss Ihr Arbeitsverzeichnis <filename
class="directory">/usr/ports</filename>
sein. In diesem Verzeichnis rufen Sie
<command>make <maketarget>search</maketarget>
name=<replaceable>Anwendungsname</replaceable></command>
auf, wobei <replaceable>Anwendungsname</replaceable>
der Name der gesuchten Anwendung ist. Wenn Sie
zum Beispiel nach <command>lsof</command> suchen:</para>
<screen>&prompt.root; <userinput>cd /usr/ports</userinput>
&prompt.root; <userinput>make search name=lsof</userinput>
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: </screen>
<para>Der Teil der Ausgabe der Sie interessiert ist die Zeile, die
mit <quote>Path:</quote> beginnt, weil sie Ihnen sagt, wo der Port
zu finden ist. Die anderen Informationen werden zum Installieren
des Ports nicht direkt ben&ouml;tigt, Sie brauchen sich darum
jetzt nicht weiter zu k&uuml;mmern.</para>
<para>Erweiterte Suchen f&uuml;hren Sie mit dem Kommando
<command>make <maketarget>search</maketarget>
key=<replaceable>Text</replaceable></command>
aus. Damit werden Portnamen, Kommentare, Beschreibungen und
Abh&auml;ngigkeiten nach <replaceable>Text</replaceable>
durchsucht. Dies kann sehr n&uuml;tzlich sein, wenn Sie
den Namen des Programms, nach dem Sie suchen, nicht kennen.</para>
<para>In beiden F&auml;llen wird Gro&szlig;- und Kleinschreibung bei
der Suche ignoriert. Die Suche nach <quote>LSOF</quote> wird
dieselben Ergebnisse wie die Suche nach <quote>lsof</quote>
liefern.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="packages-using">
<sect1info>
<authorgroup>
<author>
<firstname>Chern</firstname>
<surname>Lee</surname>
<contrib>Beigesteuert von </contrib>
</author>
</authorgroup>
<!-- 30 Mar 2001 -->
</sect1info>
<title>Benutzen des Paketsystems</title>
<para>Es gibt viele unterschiedliche Werkzeuge um Pakete in
FreeBSD zu verwalten:</para>
<itemizedlist>
<listitem>
<para>Auf einem laufenden System kann <command>sysinstall</command>
benutzt werden, um Pakete zu installieren, zu l&ouml;schen und
verf&uuml;gbare und installierte anzuzeigen. Weitere Informationen
finden Sie unter <xref linkend="packages">.</para>
</listitem>
<listitem>
<para>Die Paketverwaltungswerkzeuge der Kommandozeile sind die
Themen von diesem Kapitel.</para>
</listitem>
</itemizedlist>
<sect2>
<title>Installieren eines Pakets</title>
<indexterm>
<primary>Pakete</primary>
<secondary>installieren</secondary>
</indexterm>
<indexterm>
<primary><command>pkg_add</command></primary>
</indexterm>
<para>Mit &man.pkg.add.1; k&ouml;nnen Sie ein FreeBSD-Paket von einer
lokalen Datei oder &uuml;ber das Netzwerk installieren.</para>
<example>
<title>Download vor Installation eines Pakets</title>
<screen>&prompt.root; <userinput>ftp -a <replaceable>ftp2.FreeBSD.org</replaceable></userinput>
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.
<prompt>ftp></prompt> <userinput>cd /pub/FreeBSD/ports/packages/sysutils/</userinput>
250 CWD command successful.
<prompt>ftp></prompt> <userinput>get lsof-4.56.4.tgz</userinput>
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)
<prompt>ftp></prompt> <userinput>exit</userinput>
&prompt.root; <userinput>pkg_add <replaceable>lsof-4.56.4.tgz</replaceable></userinput></screen>
</example>
<para>Wenn Sie die Pakete nicht lokal vorliegen haben (zum Beispiel
auf den FreeBSD-CD-ROMs), ist es wahrscheinlich einfacher den
Schalter <option>-r</option> von &man.pkg.add.1; zu verwenden. Das
Werkzeug bestimmt dann automatisch das n&ouml;tige Objektformat und
die richtige Version des Pakets, l&auml;dt dieses dann von einem
FTP-Server und installiert das Paket.</para>
<indexterm>
<primary><command>pkg_add</command></primary></indexterm>
<screen>&prompt.root; <userinput>pkg_add -r <replaceable>lsof</replaceable></userinput></screen>
<para>Das obige Beispiel w&uuml;rde ohne weitere Interaktion das
richtige Paket herunterladen und installieren. Pakete
werden vom &os;-Hauptserver heruntergeladen. Wenn Sie
anderen Server verwenden m&ouml;chten, geben Sie den
Server in der Umgebungsvariablen <envar>PACKAGESITE</envar>
an. Die Dateien werden
mit &man.fetch.3;, das Umgebungsvariablen wie
<envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar> und
<envar>FTP_PASSWORD</envar> ber&uuml;cksichtigt, heruntergeladen.
Wenn Sie durch eine Firewall gesch&uuml;tzt werden, m&uuml;ssen Sie
vielleicht eine oder mehrere dieser Umgebungsvariablen setzen oder
einen FTP oder HTTP Proxy verwenden. Eine Liste der
unterst&uuml;tzten Umgebungsvariablen finden Sie in &man.fetch.3;.
Beachten Sie, dass im obigen Beispiel <literal>lsof</literal>
anstelle von <literal>lsof-4.56.4</literal> verwendet wird. Wenn
Sie &man.pkg.add.1; zum Herunterladen eines Pakets verwenden, darf
die Versionsnummer des Pakets nicht angegeben werden, da
automatisch die neuste Version der Anwendung geholt wird.</para>
<note>
<para>Unter &os.current; oder &os.stable; holt &man.pkg.add.1;
die neuste Version einer Anwendung, unter einer Release
holt &man.pkg.add.1; die Version der Anwendung, die
im Release enthalten ist. Sie k&ouml;nnen dies &auml;ndern,
indem Sie die Umgebungsvariable <envar>PACKAGESITE</envar>
&uuml;berschreiben. Wenn Sie bespielsweise
&os;&nbsp;5.4-RELEASE installiert haben, versucht
&man.pkg.add.1; in der Voreinstellung die Pakete von
<literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/</literal>
zu laden. Wollen Sie &man.pkg.add.1; dazu zwingen, nur
&os;&nbsp;5-STABLE-Pakete herunterzuladen, setzen Sie die
Umgebungsvariable <envar>PACKAGESITE</envar> auf
<literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/</literal>.</para>
</note>
<para>Pakete werden im <filename>.tgz</filename>- und
<filename>.tbz</filename>-Format ausgeliefert. Sie finden Sie unter
<ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/"></ulink>
oder auf der FreeBSD-CD-ROM-Distribution. Jede CD der FreeBSD
Distribution (oder des PowerPaks) enth&auml;lt Pakete im
Verzeichnis <filename>/packages</filename>. Die Struktur des
Paketbaums entspricht dem <filename>/usr/ports</filename> Baum.
Jede Kategorie besitzt ein eigenes Verzeichnis und alle
Pakete befinden sich im Verzeichnis
<filename>All</filename>.</para>
<para>Die Verzeichnisstruktur des Paketbaums ist ein Abbild der
Ports, da beide Systeme eng zusammenarbeiten.</para>
</sect2>
<sect2>
<title>Verwalten von Paketen</title>
<indexterm>
<primary>Pakete</primary>
<secondary>verwalten</secondary>
</indexterm>
<para>&man.pkg.info.1; zeigt alle installierten Pakete und deren
Beschreibung an.</para>
<indexterm>
<primary><command>pkg_info</command></primary>
</indexterm>
<screen>&prompt.root; <userinput>pkg_info</userinput>
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...</screen>
<para>&man.pkg.version.1; vergleicht die Version installierter Pakete
mit der Version aus der Ports-Sammlung.</para>
<indexterm>
<primary><command>pkg_version</command></primary>
</indexterm>
<screen>&prompt.root; <userinput>pkg_version</userinput>
cvsup =
docbook =
...</screen>
<para>Die Symbole in der zweiten Spalte zeigen das Alter des Pakets
im Vergleich zu der lokalen Version aus der Ports-Sammlung an.</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Symbol</entry>
<entry>Bedeutung</entry>
</row>
</thead>
<tbody>
<row>
<entry>=</entry>
<entry>Die Version des installierten Paketes stimmt mit der
Version aus der lokalen Ports-Sammlung &uuml;berein.</entry>
</row>
<row>
<entry>&lt;</entry>
<entry>Die installierte Version ist &auml;lter als die der
verf&uuml;gbaren Version aus der Ports-Sammlung.</entry>
</row>
<row>
<entry>&gt;</entry>
<entry>Die installierte Version ist neuer als die aus der
Ports-Sammlung (Eventuell ist die lokale Ports-Sammlung
veraltet).</entry>
</row>
<row>
<entry>?</entry>
<entry>Das installierte Paket konnte in der Ports-Sammlung
nicht gefunden werden. Das kann dadurch hervorgerufen
werden, dass ein installierter Port aus der
Ports-Sammlung entfernt wurde oder einen neuen
Namen erhalten hat.</entry>
</row>
<row>
<entry>*</entry>
<entry>In der Ports-Sammlung befinden sich mehrere Versionen
der Anwendung.</entry>
</row>
<row>
<entry>!</entry>
<entry>Das installierte Paket ist zwar im Index enthalten,
aus irgendeinem Grund war <command>pkg_version</command>
aber dennoch nicht in der Lage, die Versionsnummer des
installierten Pakets mit der Versionsnummer des
entsprechenden Eintrags im Index zu vergleichen.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>
<sect2>
<title>Entfernen eines Pakets</title>
<indexterm>
<primary><command>pkg_delete</command></primary>
</indexterm>
<indexterm>
<primary>Pakete</primary>
<secondary>entfernen</secondary>
</indexterm>
<para>Um ein zuvor installiertes Paket zu entfernen, benutzen Sie das
Werkzeug &man.pkg.delete.1;.</para>
<screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat-1.7.1</replaceable></userinput></screen>
<para>Beachten Sie, dass &man.pkg.delete.1; die vollst&auml;ndige
Bezeichnung des Pakets ben&ouml;tigt (also Paketname
<emphasis>und</emphasis> Versionsnummer). Die Eingabe von
<replaceable>xchat</replaceable> (anstelle von
<replaceable>xchat-1.7.1</replaceable>) ist daher nicht
ausreichend. Zwar k&ouml;nnen Sie die Versionsnummer eines
installierten Pakets mit &man.pkg.version.1; herausfinden,
es ist aber auch m&ouml;glich, ein Paket zu deinstallieren,
ohne die exakte Versionsnummer zu kennen, wenn Sie Wildcards
einsetzen:</para>
<screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat\*</replaceable></userinput></screen>
<para>In diesem Beispiel werden alle Pakete gel&ouml;scht, deren
Name mit <literal>xchat</literal> beginnt.</para>
</sect2>
<sect2>
<title>Verschiedenes</title>
<para>Informationen &uuml;ber alle installierte Pakete werden in
<filename>/var/db/pkg</filename> abgelegt. Das Verzeichnis
enth&auml;lt Dateien, in denen sich die Beschreibungen der Pakete
und Listen von Dateien, die zu einem Paket geh&ouml;ren,
befinden.</para>
</sect2>
</sect1>
<sect1 id="ports-using">
<title>Benutzen der Ports-Sammlung</title>
<para>Die folgenden Abschnitte stellen die grundlegenden Anweisungen
vor, um Anwendungen aus der Ports-Sammlung auf
Ihren Rechner zu installieren oder zu l&ouml;schen. &man.ports.7;
enth&auml;lt eine Auflistung aller verf&uuml;gbaren
<command>make</command>-Targets und Umgebungsvariablen.</para>
<sect2 id="ports-tree">
<title>Installation der Ports-Sammlung</title>
<para>Bevor Sie einen Port installieren k&ouml;nnen, m&uuml;ssen Sie
zuerst die Ports-Sammlung installieren, die aus Makefiles, Patches
und Beschreibungen besteht. Die Ports-Sammlung wird
f&uuml;r gew&ouml;hnlich unter <filename>/usr/ports</filename>
installiert.</para>
<para>Bei der FreeBSD-Installation hatten Sie in
<application>sysinstall</application> die M&ouml;glichkeit, die
Ports-Sammlung zu installieren. Wenn Sie die Sammlung damals nicht
installiert haben, k&ouml;nnen Sie das mit den folgenden
Anweisungen nachholen:</para>
<procedure>
<title>Installieren mit <application>CVSup</application></title>
<para>Dies ist eine schnelle Methode, um die Ports-Sammlung zu
installieren und zu aktualisieren.
<application>CVSup</application> wird im Abschnitt <link
linkend="cvsup">Benutzen von CVSup</link> des Handbuchs
beschrieben.</para>
<note>
<para>Die seit &os;&nbsp;6.2 im Basissystem enthaltene Variante
des <application>CVSup</application>-Protokolls hei&szlig;t
<application>csup</application>. Verwenden Sie hingegen
noch eine &auml;ltere &os;-Version, k&ouml;nnen
Sie <application>csup</application> &uuml;ber den Port
<filename role="package">net/csup</filename> installieren.</para>
</note>
<para>Achten Sie darauf, dass das Verzeichnis <filename
class="directory">/usr/ports</filename> leer ist, bevor Sie
<application>csup</application> das erste Mal ausf&uuml;hren!
Haben Sie die Ports-Sammlung zuvor schon aus einer anderen
Quelle installiert, wird <application>csup</application>
bereits aus dem Repository entfernte Patches nicht aus der
lokalen Kopie der Ports-Sammlung l&ouml;schen.</para>
<step>
<para>Rufen Sie <command>csup</command> auf:</para>
<screen>&prompt.root; <userinput>csup -L 2 -h <replaceable>cvsup.FreeBSD.org</replaceable> /usr/share/examples/cvsup/ports-supfile</userinput></screen>
<para>Ersetzen Sie
<replaceable>cvsup.FreeBSD.org</replaceable> durch einen
<application>CVSup</application>-Server in Ihrer N&auml;he.
Eine vollst&auml;ndige Liste der
<application>CVSup</application>-Spiegel finden Sie im
Abschnitt <link linkend="cvsup-mirrors">CVSup-Server</link>
des Handbuchs.</para>
<note>
<para>Sie sollten sich eine an Ihre Bed&uuml;rfnisse angepasste
<filename>ports-supfile</filename> erstellen, um so
beispielsweise zu vermeiden, dass Sie bei jedem Aufruf von
<application>CVSup</application> wieder die Parameterliste
&uuml;bergeben m&uuml;ssen.</para>
<procedure>
<step>
<para>Dazu kopieren Sie zuerst als <username>root</username>
die Datei
<filename>/usr/share/examples/cvsup/ports-supfile</filename>
nach <filename>/root</filename> oder in Ihr
Heimatverzeichnis.</para>
</step>
<step>
<para>Danach m&uuml;ssen Sie die Datei
<filename>ports-supfile</filename> anpassen.</para>
</step>
<step>
<para>Dazu ersetzen Sie
<replaceable>cvsup.FreeBSD.org</replaceable> durch einen
<application>CVSup</application>-Server in Ihrer N&auml;he.
Eine vollst&auml;ndige Liste der
<application>CVSup</application>-Spiegel finden Sie im
Abschnitt <link linkend="cvsup-mirrors">CVSup-Server</link>
des Handbuchs.</para>
</step>
<step>
<para>Nun k&ouml;nnen Sie <command>csup</command> mit
folgender Syntax starten:</para>
<screen>&prompt.root; <userinput>csup -L 2 <replaceable>/root/ports-supfile</replaceable></userinput></screen>
</step>
</procedure>
</note>
</step>
<step>
<para>Mit &man.csup.1; k&ouml;nnen Sie sp&auml;ter auch die
Ports-Sammlung aktualisieren. Die installierten Ports werden
mit diesem Kommando allerdings nicht aktualisiert.</para>
</step>
</procedure>
<procedure>
<title>Installieren mit Portsnap</title>
<para>Bei <application>Portsnap</application> handelt es sich
um ein alternatives System zur Distribution der Ports-Sammlung.
Eine detaillierte Beschreibung von
<application>Portsnap</application> finden Sie im Abschnitt
<link linkend="updating-upgrading-portsnap">Portsnap: Ein Werkzeug
zur Aktualisierung der Ports-Sammlung</link> des Handbuchs.</para>
<step>
<para>Laden Sie einen komprimierten Snapshot der Ports-Sammlung
in das Verzeichnis <filename
class="directory">/var/db/portsnap</filename> herunter. Danach
k&ouml;nnen Sie die Internetverbindung trennen, wenn Sie dies
w&uuml;nschen.</para>
<screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
</step>
<step>
<para>Wenn Sie <application>Portsnap</application> das erste
Mal verwenden, m&uuml;ssen Sie den Snapshot nach
<filename class="directory">/usr/ports</filename>
extrahieren:</para>
<screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
<para>Ist die Ports-Sammlung bereits installiert, und Sie
wollen diese nur aktualisieren, f&uuml;hren Sie
stattdessen folgenden Befehl aus:</para>
<screen>&prompt.root; <userinput>portsnap update</userinput></screen>
</step>
</procedure>
<procedure>
<title>Installieren mit <application>sysinstall</application></title>
<para>Nicht zuletzt ist es auch m&ouml;glich, die Ports-Sammlung
&uuml;ber <application>sysinstall</application> 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&ouml;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.</para>
<step>
<para>F&uuml;hren Sie als <username>root</username>
<command>sysinstall</command> aus:</para>
<screen>&prompt.root; <userinput>sysinstall</userinput></screen>
</step>
<step>
<para>W&auml;hlen Sie den Punkt <guimenuitem>Configure</guimenuitem>
aus und dr&uuml;cken Sie <keycap>Enter</keycap>.</para>
</step>
<step>
<para>W&auml;hlen Sie dann <guimenuitem>Distributions</guimenuitem>
aus und dr&uuml;cken Sie <keycap>Enter</keycap>.</para>
</step>
<step>
<para>In diesem Men&uuml; w&auml;hlen Sie
<guimenuitem>ports</guimenuitem> aus und dr&uuml;cken die
<keycap>Leertaste</keycap>.</para>
</step>
<step>
<para>Danach w&auml;hlen Sie <literal>Exit</literal> aus und
dr&uuml;cken <keycap>Enter</keycap>.</para>
</step>
<step>
<para>Legen Sie nun ein geeignetes Installationsmedium, wie CD-ROM
oder FTP, fest.</para>
</step>
<step>
<para>W&auml;hlen Sie nun <literal>Exit</literal> aus und
dr&uuml;cken <keycap>Enter</keycap>.</para>
</step>
<step>
<para>Verlassen Sie <application>sysinstall</application> mit
<keycap>X</keycap>.</para>
</step>
</procedure>
</sect2>
<sect2 id="ports-skeleton">
<title>Ports installieren</title>
<indexterm>
<primary>Ports</primary>
<secondary>installieren</secondary>
</indexterm>
<para>Was ist mit einem <quote>Ger&uuml;st</quote> im Zusammenhang
mit der Ports-Sammlung gemeint? In aller K&uuml;rze: ein
Ger&uuml;st eines Ports ist ein minimaler Satz von Dateien, mit
denen das FreeBSD-System eine Anwendung sauber &uuml;bersetzen und
installieren kann. Ein jeder Port beinhaltet:</para>
<itemizedlist>
<listitem>
<para>Eine Datei <filename>Makefile</filename>. Das
<filename>Makefile</filename> enth&auml;lt verschiedene
Anweisungen, die spezifizieren, wie eine Anwendung kompiliert
wird und wo sie auf Ihrem System installiert werden
sollte.</para>
</listitem>
<listitem>
<para>Eine Datei <filename>distinfo</filename>. Diese
enth&auml;lt Informationen, welche Dateien heruntergeladen
werden m&uuml;ssen sowie deren MD5-Pr&uuml;fsummen
(die Sie mit &man.md5.1; sowie &man.sha256.1;
&uuml;berpr&uuml;fen k&ouml;nnen, um sicher zu gehen,
dass diese Dateien w&auml;hrend des Herunterladens nicht
besch&auml;digt wurden).</para>
</listitem>
<listitem>
<para>Ein <filename>files</filename> Verzeichnis. Hierin
liegen Patches, welche das &Uuml;bersetzen und Installieren
der Anwendung erm&ouml;glichen. Patches sind im Wesentlichen
kleine Dateien, die &Auml;nderungen an speziellen Dateien
spezifizieren. Sie liegen als reiner Text vor und sagen
ungef&auml;hr:
<quote>L&ouml;sche Zeile 10</quote> oder
<quote>&Auml;ndere Zeile 26 zu ...</quote>. Patches sind
auch bekannt unter dem Namen <quote>diffs</quote>, weil
Sie mit dem Programm &man.diff.1;
erstellt werden.</para>
<para>Dieses Verzeichnis kann auch noch andere Dateien enthalten,
welche zum Bauen des Ports benutzt werden.</para>
</listitem>
<listitem>
<para>Eine Datei <filename>pkg-descr</filename>. Eine
ausf&uuml;hrlichere, oft mehrzeilige Beschreibung der
Anwendung.</para>
</listitem>
<listitem>
<para>Eine Datei <filename>pkg-plist</filename>. Das ist eine
Liste aller Dateien, die durch diesen Port installiert werden.
Au&szlig;erdem sind hier Informationen enthalten, die zum
Entfernen des Ports ben&ouml;tigt werden.</para>
</listitem>
</itemizedlist>
<para>Einige Ports besitzen noch andere Dateien, wie
<filename>pkg-message</filename>, die vom Portsystem benutzt
werden, um spezielle Situationen zu handhaben. Wenn Sie mehr
&uuml;ber diese Dateien oder das Port-System erfahren sollen, lesen
Sie bitte das <ulink url="&url.books.porters-handbook.en;/index.html">
FreeBSD Porter's Handbook</ulink>.</para>
<para>Ein Port enth&auml;lt lediglich Anweisungen, wie der Quelltext
zu bauen ist, nicht aber den eigentlichen Quelltext.
Den Quelltext erhalten Sie von einer CD-ROM oder aus dem
Internet. Quelltexte werden in einem Format nach Wahl des
jeweiligen Software-Autors ausgeliefert. H&auml;ufig
ist dies ein gezipptes Tar-Archiv, aber es kann auch mit einem
anderen Tool komprimiert oder gar nicht komprimiert sein. Der
Quelltext, in welcher Form er auch immer vorliegen mag, wird
<quote>Distfile</quote> genannt. Die zwei Methoden, mit denen
ein Port installiert wird, werden unten besprochen.</para>
<note>
<para>Zum Installieren von Ports m&uuml;ssen Sie als Benutzer
<username>root</username> angemeldet sein.</para>
</note>
<warning>
<para>Stellen Sie sicher, dass die Ports-Sammlung
aktuell ist, bevor Sie einen Port installieren.
Informieren Sie sich vorher zus&auml;tzlich unter
<ulink url="http://vuxml.FreeBSD.org/"></ulink>
&uuml;ber m&ouml;gliche Sicherheitsprobleme
des zu installierenden Ports.</para>
<para>Vor der Installation kann
<application>portaudit</application> eine neue Anwendung
automatisch auf Sicherheitsl&ouml;cher pr&uuml;fen.
Das Werkzeug befindet sich in der Ports-Sammlung
(<filename role="package">ports-mgmt/portaudit</filename>).
Vor der Installation einer neuen Anwendung sollten
Sie mit <command>portaudit -F</command> die
Sicherheitsdatenbank aktualisieren. Die t&auml;glich
laufende Sicherheitspr&uuml;fung des Systems
aktualisiert die Datenbank und pr&uuml;ft installierte
Anwendungen auf vorhandene Sicherheitsl&ouml;cher.
Weiteres erfahren Sie in den Hilfeseiten &man.portaudit.1;
und &man.periodic.8;.</para>
</warning>
<para>Die Ports-Sammlung geht davon, dass Ihr System &uuml;ber
eine funktionierende Internetverbindung verf&uuml;gt.
Ist dies nicht der Fall, m&uuml;ssen Sie eine Kopie des zu
installierenden Distfiles manuell nach
<filename>/usr/ports/distfiles</filename> kopieren.</para>
<para>Dazu wechseln Sie als erstes in das Verzeichnis des
Ports, den Sie installieren wollen:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput></screen>
<para>Im Verzeichnis <filename>lsof</filename> kann man das
Ger&uuml;st erkennen. Der
n&auml;chste Schritt ist das &Uuml;bersetzen (auch Bauen genannt)
des Ports durch die Eingabe des Befehls
<command>make</command>:</para>
<screen>&prompt.root; <userinput>make</userinput>
&gt;&gt; lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
&gt;&gt; Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===&gt; Extracting for lsof-4.57
...
[Ausgabe des Auspackens weggelassen]
...
&gt;&gt; Checksum OK for lsof_4.57D.freebsd.tar.gz.
===&gt; Patching for lsof-4.57
===&gt; Applying FreeBSD patches for lsof-4.57
===&gt; Configuring for lsof-4.57
...
[configure-Ausgabe weggelassen]
...
===&gt; Building for lsof-4.57
...
[Ausgabe der &Uuml;bersetzung weggelassen]
...
&prompt.root;</screen>
<para>Ist die &Uuml;bersetzungsprozedur beendet, landen Sie
wiederum in der Kommandozeile und k&ouml;nnen das Programm
im n&auml;chsten Schritt installieren. Dazu verwenden Sie
den Befehl <command>make
<maketarget>install</maketarget></command>:</para>
<screen>&prompt.root; <userinput>make install</userinput>
===&gt; Installing for lsof-4.57
...
[Ausgabe der Installation weggelassen]
...
===&gt; Generating temporary packing list
===&gt; Compressing manual pages for lsof-4.57
===&gt; Registering installation for lsof-4.57
===&gt; SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;</screen>
<para>Nachdem die Installation abgeschlossen ist, k&ouml;nnen Sie
die gerade installierte Anwendung starten. Da
<command>lsof</command> eine Anwendung ist, die mit erh&ouml;hten
Rechten l&auml;uft, wird eine Sicherheitswarnung angezeigt. Sie
sollten alle Warnungen w&auml;hrend des Baus und der Installation
eines Ports beachten.</para>
<para>Es ist eine gute Idee, das Unterverzeichnis <filename
class="directory">work</filename> nach erfolgter Installation
wieder zu l&ouml;schen. Einerseits gewinnen Sie dadurch
Speicherplatz, andererseits k&ouml;nnte es sonst zu Problemen
bei der Aktualisierung des Ports auf eine neuere Version
kommen.</para>
<screen>&prompt.root; <userinput>make clean</userinput>
===&gt; Cleaning for lsof-4.57
&prompt.root;</screen>
<note>
<para>Sie k&ouml;nnen zwei Schritte sparen, wenn Sie gleich
<command>make <maketarget>install clean</maketarget> </command>
anstelle von <command>make</command>, <command>make
install</command> und <command>make
clean</command> eingeben.</para>
</note>
<note>
<para>Um die Suche nach Kommandos zu beschleunigen, speichern
einige Shells eine Liste der verf&uuml;gbaren Kommandos in den
durch die Umgebungsvariable <envar>PATH</envar> gegebenen
Verzeichnissen. Nach der Installation eines Ports m&uuml;ssen
Sie in einer solchen Shell vielleicht das Kommando
<command>rehash</command> absetzen, um die neu installierten
Kommandos benutzen zu k&ouml;nnen. Das Kommando
<command>rehash</command> gibt es in Shells wie
der <command>tcsh</command>. Unter Shells wie
der <command>sh</command>
benutzen Sie das Kommando <command>hash -r</command>.
Weiteres entnehmen Sie bitte der Dokumentation
Ihrer Shell.</para>
</note>
<para>Einige von Dritten angebotenen DVD-ROM-Produkte wie das
FreeBSD Toolkit von der <ulink
url="http://www.freebsdmall.com/">FreeBSD Mall</ulink>
enthalten auch Distfiles (komprimierte Quellcodepakete).
Diese lassen sich &uuml;ber die Ports-Sammlung installieren.
Dazu h&auml;ngen Sie die DVD-ROM unter
<filename>/cdrom</filename> in den Verzeichnisbaum ein. Wenn
Sie einen anderen Mountpunkt verwenden, sollten Sie die
make-Variable <makevar>CD_MOUNTPTS</makevar> setzen, damit die
auf der DVD-ROM enthaltenen Distfiles automatisch verwendet
werden.</para>
<note>
<para>Beachten Sie bitte, dass die Lizenzen einiger Ports
die Einbeziehung auf der CD-ROM verbieten. Das kann
verschiedene Gr&uuml;nde haben. Beispielsweise eine
Registrierung vor dem Herunterladen erforderlich oder die
Weiterverteilung ist verboten. Wenn Sie einen Port
installieren wollen, der nicht auf
der CD-ROM enthalten ist, m&uuml;ssen Sie online sein.</para>
</note>
<para>Die Ports-Sammlung benutzt zum Herunterladen von Dateien
&man.fetch.3;, das Umgebungsvariablen wie
<envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar> und
<envar>FTP_PASSWORD</envar> ber&uuml;cksichtigt. Wenn Sie durch
eine Firewall gesch&uuml;tzt werden, m&uuml;ssen Sie vielleicht
eine oder mehrere dieser Umgebungsvariablen setzen, oder einen FTP
oder HTTP Proxy verwenden. Eine Liste der unterst&uuml;tzten
Umgebungsvariablen finden Sie in &man.fetch.3;.</para>
<para>Benutzer ohne eine st&auml;ndige Internet-Verbindung
werden das Kommando <command>make fetch</command> zu
sch&auml;tzen wissen. Das Kommando l&auml;dt alle
ben&ouml;tigten Dateien eines Ports herunter. Sie
k&ouml;nnen das Kommando im Verzeichnis
<filename>/usr/ports</filename> laufen lassen. In diesem
Fall werden <emphasis>alle</emphasis> Dateien
heruntergeladen. Es ist auch m&ouml;glich, <command>make
<maketarget>fetch</maketarget></command> nur in einem Teil
des Baums, wie <filename>/usr/ports/net</filename>,
aufzurufen. Die Dateien von allen abh&auml;ngigen
Ports werden mit diesem Kommando allerdings nicht
heruntergeladen. Wenn Sie diese Dateien ebenfalls
herunterladen wollen, ersetzen Sie im Kommando
<maketarget>fetch</maketarget> durch
<maketarget>fetch-recursive</maketarget>.</para>
<note>
<para>Abh&auml;ngig davon, in welchem Verzeichnis
Sie <command>make</command> aufrufen, k&ouml;nnen
Sie analog zu <command>make fetch</command> die
Ports einer Kategorie oder alle Ports bauen. Beachten
Sie allerdings, dass manche Ports nicht zusammen
installiert werden k&ouml;nnen. Weiterhin gibt es
F&auml;lle, in denen zwei Ports unterschiedliche
Inhalte in derselben Datei speichern wollen.</para>
</note>
<para>Manchmal ist es erforderlich, die ben&ouml;tigten
Dateien von einem anderen Ort als den im Port vorgesehenen
herunterzuladen. Der Ort wird durch die Variable
<makevar>MASTER_SITES</makevar> vorgegeben, die Sie
wie folgt &uuml;berschreiben k&ouml;nnen:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput>
&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
<para>Im Beispiel wurde <makevar>MASTER_SITES</makevar>
mit dem Wert
<literal>ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</literal>
&uuml;berschrieben.</para>
<note>
<para>Einige Ports besitzen Optionen, mit denen Sie
zus&auml;tzliche Funktionen oder Sicherheitsoptionen
einstellen k&ouml;nnen (oder manchmal auch m&uuml;ssen).
Zus&auml;tzliche Optionen k&ouml;nnen beispielsweise f&uuml;r
<filename role="package">www/mozilla</filename>,
<filename role="package">security/gpgme</filename> und
<filename role="package">mail/sylpheed-claws</filename>
angegeben werden. Wenn ein Port &uuml;ber zus&auml;tzliche
Optionen verf&uuml;gt, werden diese beim Bau des
Ports auf der Konsole ausgegeben.</para>
</note>
<sect3>
<title>Vorgabe-Verzeichnisse &auml;ndern</title>
<para>Manchmal ist es n&uuml;tzlich (oder erforderlich),
in anderen Verzeichnissen zu arbeiten. Die Verzeichnisse
k&ouml;nnen Sie mit den Variablen <makevar>WRKDIRPREFIX</makevar>
und <makevar>PREFIX</makevar> einstellen. Die Variable
<makevar>WRKDIRPREFIX</makevar> gibt das Bauverzeichnis an:</para>
<screen>&prompt.root; <userinput>make WRKDIRPREFIX=/usr/home/example/ports install</userinput></screen>
<para>Dieses Kommando baut den Port in
<filename>/usr/home/example/ports</filename> und installiert
ihn unter <filename>/usr/local</filename>.</para>
<para>Die Variable <makevar>PREFIX</makevar> legt das
Installations-Verzeichnis fest:</para>
<screen>&prompt.root; <userinput>make PREFIX=/usr/home/example/local install</userinput></screen>
<para>In diesem Beispiel wird der Port unter
<filename>/usr/ports</filename> gebaut und nach
<filename>/usr/home/example/local</filename> installiert.</para>
<para>Sie k&ouml;nnen beide Variablen auch zusammen
benutzen:</para>
<screen>&prompt.root; <userinput>make WRKDIRPREFIX=../ports PREFIX=../local install</userinput></screen>
<para>Die Kommandozeile ist zu lang, um sie hier komplett
wiederzugeben, aber Sie sollten die zugrunde liegende
Idee erkennen.</para>
</sect3>
<sect3>
<title>Probleme mit <command>imake</command></title>
<indexterm><primary>imake</primary></indexterm>
<para>Einige Ports, welche &man.imake.1; (Teil des
X-Window-Systems) benutzen, funktionieren nicht gut
mit <makevar>PREFIX</makevar> und bestehen darauf,
unter <filename>/usr/X11R6</filename> installiert
zu werden. In &auml;hnlicher Weise verhalten sich
einige Perl-Ports, die <makevar>PREFIX</makevar>
ignorieren und sich in den Perl-Verzeichnisbaum
installieren. Zu erreichen, dass solche Ports
<makevar>PREFIX</makevar> beachten, ist
schwierig oder sogar unm&ouml;glich.</para>
</sect3>
<sect3>
<title>Ports rekonfigurieren</title>
<para>Beim Bau einiger Ports erhalten Sie ein ncurses-basiertes
Men&uuml;, &uuml;ber dessen Optionen Sie den Bau dieser Ports
beeinflussen k&ouml;nnen. Es gibt diverse M&ouml;glichkeiten,
dieses Men&uuml; nach dem Bau eines Ports erneut aufzurufen, um
beispielsweise Optionen zu entfernen, hinzuzuf&uuml;gen oder
anzupassen. Sie k&ouml;nnen beispielsweise in das
Verzeichnis des Ports wechseln und dort den Befehl
<command>make</command> <maketarget>config</maketarget>
eingeben, wodurch das Men&uuml; mit den urspr&uuml;nglichen
gew&auml;hlten Optionen erneut aufgerufen wird. Eine andere
M&ouml;glichkeit bietet der Befehl <command>make</command>
<maketarget>showconfig</maketarget>, mit dem Sie eine Liste aller
Konfigurationsoptionen dieses Ports aufrufen. Eine weitere
Alternative bietet der Befehl <command>make</command>
<maketarget>rmconfig</maketarget>, der die von Ihnen
urspr&uuml;nglich gew&auml;hlten Optionen zur&uuml;cksetzt und es
Ihnen dadurch erm&ouml;glicht, die Konfiguration erneut zu beginnen.
Die eben erw&auml;hnten Optionen (und viele andere) werden
ausf&uuml;hrlich in der Manualpage &man.ports.7; beschrieben.</para>
</sect3>
</sect2>
<sect2 id="ports-removing">
<title>Entfernen installierter Ports</title>
<indexterm>
<primary>Ports</primary>
<secondary>entfernen</secondary>
</indexterm>
<para>Da Sie nun wissen, wie man einen Port installiert, wollen Sie
sicher auch wissen, wie man ein &uuml;ber einen Port installiertes
Programm wieder deinstallieren kann. Ports werden analog zu
Paketen mit &man.pkg.delete.1; deinstalliert (Lesen Sie sich den
Abschnitt <link linkend="packages-using">Benutzen des
Paketsystems</link> des Handbuchs durch, wenn Sie weitere Informationen
ben&ouml;tigen.). F&uuml;r das vorhin installierte Programm
<command>lsof</command> w&uuml;rden Sie dazu wie folgt
vorgehen:</para>
<screen>&prompt.root; <userinput>pkg_delete lsof-4.57</userinput></screen>
</sect2>
<sect2 id="ports-upgrading">
<title>Ports aktualisieren</title>
<indexterm>
<primary>Ports</primary>
<secondary>aktualisieren</secondary>
</indexterm>
<para>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;:</para>
<screen>&prompt.root; <userinput>pkg_version -v</userinput></screen>
<sect3 id="ports-file-updating">
<title><filename>/usr/ports/UPDATING</filename></title>
<para>Nachdem Sie die Ports-Sammlung auf den neusten
Stand gebracht haben, lesen Sie bitte zuerst die Datei
<filename>/usr/ports/UPDATING</filename>, bevor
Sie einen Port aktualisieren. In dieser Datei werden
Probleme und zus&auml;tzlich durchzuf&uuml;hrende
Schritte bei der Aktualisierung einzelner Ports
beschrieben. Dazu geh&ouml;ren solche Dinge wie
ge&auml;nderte Dateiformate, verschobene Konfigurationsdateien,
aber auch Inkompatibilit&auml;ten zu einer
Vorg&auml;ngerversion.</para>
<para>Sollte <filename>UPDATING</filename> etwas hier Gesagtem
widersprechen, so gilt das in <filename>UPDATING</filename>
Gesagte.</para>
</sect3>
<sect3 id="portupgrade">
<title>Ports mit Portupgrade aktualisieren</title>
<indexterm>
<primary>portupgrade</primary>
</indexterm>
<para><application>portupgrade</application> wurde entwickelt, um
die Aktualisierung von Ports zu vereinfachen. Sie k&ouml;nnen
<application>portupgrade</application> &uuml;ber den Port
<filename role="package">ports-mgmt/portupgrade</filename> wie
jeden anderen Port mit <command>make <maketarget>install
clean</maketarget></command> installieren:</para>
<screen>&prompt.root; <userinput>cd <filename class="directory">/usr/ports/ports-mgmt/portupgrade/</filename></userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Durchsuchen Sie regelm&auml;&szlig;ig (am besten vor jeder
Aktualisierung) die Liste der installierten Ports mit
<command>pkgdb -F</command> und beheben Sie alle gefundenen
Probleme.</para>
<para>Wenn Sie <command>portupgrade -a</command> eingeben,
beginnt <application>portupgrade</application> automatisch mit
der Aktualisierung aller veralteter Ports Ihres Systems.
Verwenden Sie den Schalter <option>-i</option>, wenn Sie
individuell entscheiden wollen, ob ein Port aktualisiert werden
soll:</para>
<screen>&prompt.root; <userinput>portupgrade -ai</userinput></screen>
<para>Wenn Sie nur eine einzelne Anwendung anstelle
aller Anwendungen aktualisieren wollen, verwenden
Sie das Kommando
<command>portupgrade <replaceable>pkgname</replaceable></command>.
Geben Sie den Schalter <option>-R</option> an, wenn
<application>portupgrade</application> zuvor alle
Ports aktualisieren soll, die von dem gegebenen
Paket abh&auml;ngen.</para>
<para>Der Schalter <option>-P</option> verwendet zur
Installation Pakete anstelle von Ports. Mit dieser
Option durchsucht <application>portupgrade</application>
die in der Umgebungsvariablen <envar>PKG_PATH</envar>
aufgef&uuml;hrten Verzeichnisse nach Paketen. Sind
lokal keine Pakete vorhanden, versucht
<application>portupgrade</application> die Pakete
&uuml;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 <option>-PP</option>.</para>
<screen>&prompt.root; <userinput>portupgrade -PP gnome2</userinput></screen>
<para>Wenn Sie nur die Quelldateien des Ports (oder die Pakete
mit <option>-P</option>) herunterladen m&ouml;chten,
ohne die Anwendung zu bauen oder zu installieren,
geben Sie die Option <option>-F</option> an.
Weitere M&ouml;glichkeiten lesen Sie bitte in
der Hilfeseite &man.portupgrade.1; nach.</para>
</sect3>
<sect3 id="portmanager">
<title>Ports mit Portmanager aktualisieren</title>
<indexterm>
<primary>portmanager</primary>
</indexterm>
<para><application>Portmanager</application> ist ein weiteres
Werkzeug, das die Aktualisierung installierter Ports
erleichtert. Es kann &uuml;ber den Port
<filename role="package">ports-mgmt/portmanager</filename>
installiert werden:</para>
<screen>&prompt.root; <userinput>cd <filename class="directory">/usr/ports/ports-mgmt/portmanager</filename></userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Alle installierten Ports k&ouml;nnen danach durch folgende
Eingabe aktualisiert werden:</para>
<screen>&prompt.root; <userinput>portmanager -u</userinput></screen>
<para>Wenn Sie zus&auml;tzlich die Optionen <option>-ui</option>
an <application>Portmanager</application> &uuml;bergeben, werden
Sie bei jedem Schritt um eine Best&auml;tigung gefragt.
<application>Portmanager</application> ist au&szlig;erdem in
der Lage, neue Ports auf Ihrem System zu installieren. Im
Gegensatz zum bekannten <command>make install clean</command>
aktualisiert es aber vor dem Bau und der Installation eines
Ports alle abh&auml;ngigen Ports.</para>
<screen>&prompt.root; <userinput>portmanager <replaceable>x11/gnome2</replaceable></userinput></screen>
<para>Treten bei den Abh&auml;ngigkeiten des zu installierenden
Ports Probleme auf, ist <application>Portmanager</application>
in der Lage, alle Abh&auml;ngigkeiten in der korrekten
Reihenfolge neu zu bauen. Nachdem dieser Schritt abgeschlossen
ist, wird der problematische Port ebenfalls neu gebaut.</para>
<screen>&prompt.root; <userinput>portmanager <replaceable>graphics/gimp</replaceable> -f</userinput></screen>
<para>Weitere Informationen finden Sie in der Manualpage
&man.portmanager.1;.</para>
</sect3>
<sect3 id="portmaster">
<title>Ports mit Portmaster aktualisieren</title>
<indexterm>
<primary>portmaster</primary>
</indexterm>
<para>Bei <application>Portmaster</application> handelt es sich
um ein weiteres Werkzeug zum Aktualisieren von Ports.
<application>Portmaster</application> nutzt nur Werkzeuge, die
bereits im Basissystem vorhanden sind (ist also nicht von
weiteren Ports abh&auml;ngig). Es verwendet Informationen
in <filename class="directory">/var/db/pkg/</filename>, um
festzustellen, welche Ports aktualisiert werden sollen.
Sie k&ouml;nnen dieses Program &uuml;ber den Port
<filename role="package">ports-mgmt/portmaster</filename>
installieren:</para>
<screen>&prompt.root; <userinput>cd <filename class="directory">/usr/ports/ports-mgmt/portmaster</filename></userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para><application>Portmaster</application> teilt Ports in vier
Kategorien ein:</para>
<itemizedlist>
<listitem>
<para>Root ports (no dependencies, not depended on)</para>
</listitem>
<listitem>
<para>Trunk ports (no dependencies, are depended on)</para>
</listitem>
<listitem>
<para>Branch ports (have dependencies, are depended on)</para>
</listitem>
<listitem>
<para>Leaf ports (have dependencies, not depended on)</para>
</listitem>
</itemizedlist>
<para>Um eine Liste aller installierter Ports anzuzeigen (und nach
neueren Versionen zu suchen), verwenden Sie die Option
<option>-L</option>:</para>
<screen>&prompt.root; <userinput>portmaster -L</userinput>
===>>> 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)
===>>> apache-2.2.3
===>>> New version available: apache-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
</screen>
<para>Um alle derzeit installierten Ports zu aktualisieren,
verwenden Sie einfach den folgenden Befehl:</para>
<screen>&prompt.root; <userinput>portmaster -a</userinput></screen>
<note><para>In der Voreinstellung erzeugt
<application>Portmaster</application> eine Sicherheitskopie,
bevor ein installierter Port gel&ouml;scht wird. Ist die
Installation der neuen Version erfolgreich, wird dieses
Backup wieder gel&ouml;scht. Wollen Sie das Backup lieber
manuell l&ouml;schen, verwenden Sie die Option
<option>-b</option> beim Aufruf von
<application>Portmaster</application>. Durch die Verwendung
der Option <option>-i</option> wird
<application>Portmaster</application> im interaktiven
Modus gestartet und fragt bei jedem zu aktualisierenden Port
nach, wie Sie vorgehen wollen.</para></note>
<para>Treten w&auml;hrend der Aktualisierung Fehler auf, k&ouml;nnen
Sie die Option <option>-f</option> verwenden, um alle Ports zu
aktualisieren beziehungsweise neu zu bauen:</para>
<screen>&prompt.root; <userinput>portmaster -af</userinput></screen>
<para><application>Portmaster</application> ist auch in der Lage,
neue Ports zu installieren, wobei zuvor alle abh&auml;ngigen Ports
aktualisiert werden:</para>
<screen>&prompt.root; <userinput>portmaster <replaceable>shells/bash</replaceable></userinput></screen>
<para>Weiterf&uuml;hrende Informationen finden Sie in der Manualpage
&man.portmaster.8;.</para>
</sect3>
</sect2>
<sect2 id="ports-disk-space">
<title>Platzbedarf von Ports</title>
<indexterm>
<primary>Ports</primary>
<secondary>Plattenplatz</secondary>
</indexterm>
<para>Die Ports-Sammlung kann sehr viel Plattenplatz
verschlingen. F&uuml;hren Sie nach dem Bau und der
Installation eines Ports <command>make
<maketarget>clean</maketarget></command> aus, um die
Arbeitsverzeichnisse zu l&ouml;schen. Dieser Befehl
entfernt das Verzeichnis <filename
class="directory">work</filename> des gebauten Ports.
Wollen Sie die gesamte Ports-Sammlung aufr&auml;umen,
verwenden Sie folgenden Befehl:</para>
<screen>&prompt.root; <userinput>portsclean -C</userinput></screen>
<para>Im Laufe der Zeit werden sich zahlreiche Distfiles im
Verzeichnis <filename class="directory">distfiles</filename>
ansammeln. Sie k&ouml;nnen diese entweder h&auml;ndisch
l&ouml;schen, oder Sie verwenden den folgenden Befehl, um alle
Distfiles zu l&ouml;schen, die nicht l&auml;nger
ben&ouml;tigt werden:</para>
<screen>&prompt.root; <userinput>portsclean -D</userinput></screen>
<para>Falls Sie nur alle Distfiles l&ouml;schen wollen, die von
keinem derzeit installierten Port referenziert werden:</para>
<screen>&prompt.root; <userinput>portsclean -DD</userinput></screen>
<note>
<para>Das Werkzeug <command>portsclean</command> wird
automatisch bei der Installation von
<application>portupgrade</application> mit installiert.</para>
</note>
<para>Denken Sie daran, installierte Ports wieder zu entfernen,
wenn Sie diese nicht mehr ben&ouml;tigen. Um diese Arbeit zu
erleichtern, k&ouml;nnen Sie den Port <filename
role="package">ports-mgmt/pkg_cutleaves</filename>
installieren.</para>
</sect2>
</sect1>
<sect1 id="ports-nextsteps">
<title>Nach der Installation</title>
<para>Nach der Installation einer neuen Anwendung wollen Sie
wahrscheinlich die mitgelieferte Dokumentation lesen und die
Konfigurationsdateien der Anwendung anpassen. Wenn die Anwendung
ein D&aelig;mon ist, sollten Sie sicherstellen, dass die
Anwendung beim Booten startet.</para>
<para>Die einzelnen Schritte sind nat&uuml;rlich von Anwendung zu
Anwendung verschieden. Wenn Sie sich allerdings nach der Installation
einer Anwendung die Frage <quote>Was nun?</quote> stellen, helfen die
folgenden Hinweise vielleicht weiter.</para>
<itemizedlist>
<listitem>
<para>Finden Sie mit &man.pkg.info.1; heraus, welche Dateien die
Anwendung wo installiert hat. Wenn Sie beispielsweise gerade
die Version 1.0.0 von FooPackage installiert haben, zeigt Ihnen
das folgende Kommando alle installierten Dateien des
Pakets:</para>
<screen>&prompt.root; <userinput>pkg_info -L foopackage-1.0.0 | less</userinput></screen>
<para>Achten Sie besonders auf die Manualpages, die Sie in
<filename>man/</filename> Verzeichnissen finden und auf
Konfigurationsdateien, die in <filename>etc/</filename> abgelegt
werden. Manche Pakete enthalten in <filename>doc/</filename>
zus&auml;tzliche Dokumentation.</para>
<para>Wenn Sie sich nicht sicher sind, welche Version einer
Anwendung Sie gerade installiert haben, k&ouml;nnen Sie mit dem
folgenden Kommando nach der Anwendung suchen:</para>
<screen>&prompt.root; <userinput>pkg_info | grep -i <replaceable>foopackage</replaceable></userinput></screen>
<para>Das Kommando zeigt alle installierten Pakete, deren
Paketname <replaceable>foopackage</replaceable> enth&auml;lt.
Ersetzen Sie <replaceable>foopackage</replaceable> durch den
Namen der Anwendung, die Sie suchen.</para>
</listitem>
<listitem>
<para>Nachdem Sie die Manualpages der Anwendung gefunden haben,
lesen Sie diese bitte mit &man.man.1;. Schauen Sie sich auch die
Beispiele f&uuml;r Konfigurationsdateien und die zus&auml;tzliche
Dokumentation, wenn es welche gibt, an.</para>
</listitem>
<listitem>
<para>Wenn es f&uuml;r die Anwendung eine Webseite gibt, suchen
Sie dort nach zus&auml;tzlicher Dokumentation wie FAQs
(h&auml;ufig gestellte Fragen). Wenn Sie die Adresse der Webseite
nicht kennen, versuchen Sie das folgende Kommando:</para>
<screen>&prompt.root; <userinput>pkg_info <replaceable>foopackage-1.0.0</replaceable></userinput></screen>
<para>Die Ausgabe enth&auml;lt oft eine Zeile, die mit
<literal>WWW:</literal> beginnt und die URL der Webseite
enth&auml;lt.</para>
</listitem>
<listitem>
<para>Ports, die w&auml;hrend des Systemstarts gestartet
werden sollen, installieren meist ein Beispielskript im
Verzeichnis <filename>/usr/local/etc/rc.d</filename>.
&Uuml;berpr&uuml;fen Sie dieses Skript. Wenn n&ouml;tig,
passen Sie das Skript an und benennen Sie es um. Weitere
Informationen finden Sie in
<xref linkend="configtuning-starting-services">.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="ports-broken">
<title>Kaputte Ports</title>
<para>Stolpern Sie einmal &uuml;ber einen Port, der bei Ihnen nicht
funktioniert, k&ouml;nnten Sie zum Beispiel Folgendes tun:</para>
<orderedlist>
<listitem>
<para>Stellen Sie fest, ob die
<ulink url="&url.base;/de/support.html#gnats">Datenbank mit den
Problemberichten</ulink> bereits einen L&ouml;sungsvorschlag
enth&auml;lt. Ist dies der Fall, k&ouml;nnen Sie die
vorgeschlagene L&ouml;sung testen.</para>
</listitem>
<listitem>
<para>Bitten Sie den Betreuer des Ports um Hilfe. Geben
Sie dazu <command>make <maketarget>maintainer</maketarget></command>
ein oder lesen Sie das <filename>Makefile</filename> 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
<literal>&dollar;FreeBSD:</literal> aus dem
<filename>Makefile</filename>) und die Ausgabe bis zur Fehlermeldung
mitzuschicken.</para>
<note>
<para>Einige Ports werden nicht von einer Einzelperson, sondern
von einer <ulink
url="&url.articles.mailing-list-faq.en;/article.html">
Mailingliste</ulink> betreut. Viele (aber nicht alle) dieser
Adressen haben die Form
<email role="nolink">freebsd-NameDerListe@FreeBSD.org</email>.
Denken Sie daran, wenn Sie Ihre Fragen formulieren.</para>
<para>Dies gilt insbesondere f&uuml;r Ports, die als als
Betreuer den Eintrag <email
role="nolink">ports@FreeBSD.org</email> aufweisen.
Derartige Ports haben &uuml;berhaupt keinen Betreuer.
Korrekturen und Unterst&uuml;tzung kommen daher nur von
Personen, die diese Mailingliste abonniert haben. Gerade
in diesem Bereich werden jederzeit zus&auml;tzliche
freiwillige Helfer ben&ouml;tigt!</para>
</note>
<para>Erhalten Sie auf Ihre Anfrage keine Antwort, k&ouml;nnen
Sie &uuml;ber &man.send-pr.1; einen Problembericht erstellen.
Bevor Sie einen solchen Bericht erstellen, sollten Sie den
Artikel <ulink
url="&url.articles.problem-reports.en;/article.html">Writing
FreeBSD Problem Reports</ulink> lesen.</para>
</listitem>
<listitem>
<para>Reparieren Sie ihn! Das <ulink
url="&url.books.porters-handbook.en;/index.html">FreeBSD
Porter's Handbook</ulink> enth&auml;lt eine detaillierte
Beschreibung des Portsystems. Damit sind Sie in der Lage,
einen gelegentlich kaputten Port zu reparieren oder einen
eigenen Port zu erstellen.</para>
</listitem>
<listitem>
<para>Holen Sie sich das Paket von einem FTP-Server in Ihrer
N&auml;he. Die <quote>Basis</quote>-Sammlung aller Pakete
liegt auf <hostid role="fqdn">ftp.de.FreeBSD.org</hostid> im
Verzeichnis <ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/packages/">packages</ulink>.
Aber versuchen Sie <emphasis>zuerst</emphasis> einen <ulink
url="http://mirrorlist.FreeBSD.org/">Spiegel in Ihrer
N&auml;he</ulink>! Benutzen Sie das Programm &man.pkg.add.1;, um
Pakete auf Ihrem Rechner zu installieren. Dies hat zudem den
Vorteil, dass es schneller geht.</para>
</listitem>
</orderedlist>
</sect1>
</chapter>
<!--
Local Variables:
mode: sgml
sgml-declaration: "../chapter.decl"
sgml-indent-data: t
sgml-omittag: nil
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "chapter")
End:
-->