2003 lines
74 KiB
XML
2003 lines
74 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!--
|
|
The FreeBSD Documentation Project
|
|
The FreeBSD German Documentation Project
|
|
|
|
$FreeBSD$
|
|
$FreeBSDde: de-docproj/books/handbook/ports/chapter.xml,v 1.111 2011/12/19 17:13:33 bcr Exp $
|
|
basiert auf: r41084
|
|
-->
|
|
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="ports">
|
|
<info><title>Installieren von Anwendungen: Pakete und Ports</title>
|
|
<authorgroup>
|
|
<author><personname><firstname>Uwe</firstname><surname>Pierau</surname></personname><contrib>Übersetzt von </contrib></author>
|
|
</authorgroup>
|
|
|
|
</info>
|
|
|
|
<sect1 xml:id="ports-synopsis">
|
|
<title>Übersicht</title>
|
|
|
|
<indexterm><primary>Ports</primary></indexterm>
|
|
<indexterm><primary>Pakete</primary></indexterm>
|
|
<para>&os; enthält eine umfassende Sammlung von Systemwerkzeugen,
|
|
die Teil des Basissystems sind. Allerdings ist man früher oder
|
|
später auf Software Dritter angewiesen, damit bestimmte Arbeiten
|
|
durchgeführt werden können. Um diese Software zu installieren,
|
|
stellt &os; zwei sich ergänzende Methoden zur
|
|
Verfügung: Die Ports-Sammlung (zur Installation aus dem
|
|
Quellcode) sowie Pakete (auch als
|
|
<foreignphrase>Packages</foreignphrase> bezeichnet, zur
|
|
Installation von vorkompilierten binären Softwarepaketen).
|
|
Beide Methoden können benutzt werden, um Anwendungen von lokalen
|
|
Medien oder über das Netzwerk zu installieren.</para>
|
|
|
|
<para>Dieses Kapitel behandelt die folgenden Themen:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Die Installation binä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 die Voreinstellungen der Ports-Sammlung
|
|
überschrieben werden können.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Die Suche nach geeigneter Software.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Wie Anwendungen aktualisiert werden.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="ports-overview">
|
|
<title>Installation von Software</title>
|
|
|
|
<para>Die typischen Schritte zur Installation von
|
|
Drittanbieter-Software auf einem &unix; System sind:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Download der Software, die als Quelltext oder im
|
|
Binä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ält.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Durchsuchen der Dokumentation, die sich in
|
|
<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üssen Sie vielleicht das <filename>Makefile</filename>
|
|
anpassen, oder <command>configure</command> laufen lassen, oder
|
|
andere Arbeiten durchführen.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Testen und installieren der Software.</para>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Wenn Sie Software installieren, die nicht speziell für
|
|
&os; geschrieben wurde, müssen Sie vielleicht sogar den
|
|
Quelltext anpassen, damit die Software funktioniert.</para>
|
|
|
|
<para>&os; bietet zwei Technologien an, die diese Schritte für Sie
|
|
durchführen. Zurzeit werden über &os.numports; Anwendungen
|
|
Dritter zur Verfügung gestellt.</para>
|
|
|
|
<para>Ein &os;-Paket enthält vorkompilierte Kopien aller Befehle
|
|
für eine Anwendung, sowie zusätzliche Konfigurationsdateien und
|
|
Dokumentation. Zur Handhabung der Pakete stellt &os; Kommandos
|
|
wie &man.pkg.add.1;, &man.pkg.delete.1; und &man.pkg.info.1; zur
|
|
Verfügung.</para>
|
|
|
|
<para>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.</para>
|
|
|
|
<para>Das Portsystem kann auch dazu benutzt werden, Pakete zu
|
|
generieren, die mit den Paketverwaltungswerkzeugen von &os;
|
|
manipuliert werden können.</para>
|
|
|
|
<para>Pakete und Ports beachten
|
|
<emphasis>Abhängigkeiten</emphasis> zwischen Anwendungen.
|
|
Wenn &man.pkg.add.1; oder die Ports-Sammlung benutzt wird,
|
|
um eine Anwendung zu installieren, dann werden fehlende
|
|
Bibliotheken zuerst installiert, sofern sie nicht schon vorher
|
|
installiert waren.</para>
|
|
|
|
<para>Obwohl beide Technologien recht ähnlich sind, so haben
|
|
Pakete und Ports jeweils ihre eigenen Stärken. Welche
|
|
Technologie eingesetzt wird, hängt letzten Endes von den
|
|
Anforderungen ab, die an eine bestimmte Anwendung gestellt
|
|
werden.</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üssen nicht mehr kompiliert werden. Dies ist
|
|
ein Vorteil, wenn große Pakete wie
|
|
<application>Mozilla</application>,
|
|
<application>KDE</application> oder
|
|
<application>GNOME</application> auf langsamen Maschinen
|
|
installiert werden.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Wenn Sie Pakete verwenden, brauchen Sie nicht zu
|
|
verstehen, wie Software unter &os; kompiliert wird.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<itemizedlist>
|
|
<title>Vorteile von Ports</title>
|
|
|
|
<listitem>
|
|
<para>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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Die Eigenschaften einiger Anwendungen werden über
|
|
Optionen zum Zeitpunkt des Übersetzens festgelegt.
|
|
<application>Apache</application> kann zum Beispiel über
|
|
eine große Auswahl an eingebauten Optionen konfiguriert
|
|
werden.</para>
|
|
|
|
<para>Für einige Fälle existieren verschiedene
|
|
Pakete einer Anwendung, die beim Übersetzen
|
|
unterschiedlich konfiguriert wurden. Für
|
|
<application>Ghostscript</application> gibt es ein
|
|
<filename>ghostscript</filename>-Paket und ein
|
|
<filename>ghostscript-nox11</filename>-Paket, die sich durch
|
|
die <application>Xorg</application> 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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Einige Leute trauen binären Distributionen nicht, oder
|
|
sie ziehen es vor den Quelltext zu lesen, um diesen nach
|
|
möglichen Problemen zu durchsuchen.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Wenn Sie eigene Anpassungen besitzen, benötigen Sie den
|
|
Quelltext, um diese anzuwenden.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Wenn Sie über aktualisierte Ports informiert sein wollen,
|
|
lesen Sie die Mailinglisten &a.ports; und &a.ports-bugs;.</para>
|
|
|
|
<warning>
|
|
<para>Bevor Sie eine Anwendung installieren, informieren Sie
|
|
sich auf der Seite <uri
|
|
xlink:href="http://vuxml.FreeBSD.org/">http://vuxml.FreeBSD.org/</uri>
|
|
über mögliche Sicherheitsprobleme mit der Anwendung, oder
|
|
installieren Sie <package>ports-mgmt/portaudit</package>.
|
|
Installierte Anwendungen prüfen Sie mit
|
|
<command>portaudit -F -a</command> auf bekannte
|
|
Sicherheitsprobleme untersucht werden.</para>
|
|
</warning>
|
|
|
|
<para>Der Rest dieses Kapitels beschreibt, wie man Software
|
|
Dritter mit Paketen und Ports unter &os; installiert und
|
|
verwaltet.</para>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="ports-finding-applications">
|
|
<title>Suchen einer Anwendung</title>
|
|
|
|
<para>Die Anzahl der nach &os; portierten Anwendungen steigt
|
|
ständig. Es gibt einige Wege, um nach Anwendungen zu
|
|
suchen:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Die &os;-Webseite stellt unter
|
|
<link xlink:href="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/</link>
|
|
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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>FreshPorts</primary></indexterm>
|
|
|
|
<para>Dan Langille verwaltet <uri
|
|
xlink:href="http://www.FreshPorts.org/">FreshPorts</uri>,
|
|
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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>Freecode</primary></indexterm>
|
|
|
|
<para>Wenn Sie den Namen einer Anwendung nicht kennen, versuchen
|
|
Sie eine Webseite wie <uri
|
|
xlink:href="http://www.freecode.com/">Freecode.com</uri>,
|
|
um eine passende Anwendung zu finden. Schauen Sie dann auf der
|
|
&os;-Webseite nach, ob die Anwendung schon portiert
|
|
wurde.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Verwenden Sie
|
|
<command>whereis <replaceable>Datei</replaceable></command>
|
|
um herauszufinden, in welcher Kategorie ein Port ist, wobei
|
|
<replaceable>Datei</replaceable> der Name des Programms ist,
|
|
das installiert werden soll:</para>
|
|
|
|
<screen>&prompt.root; <userinput>whereis lsof</userinput>
|
|
lsof: /usr/ports/sysutils/lsof</screen>
|
|
|
|
<para>Alternativ kann der &man.echo.1;-Befehl verwendet
|
|
werden:</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>/usr/ports/distfiles</filename>
|
|
findet, auf die der angegebene Suchbegriff passt.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Ein weiterer Weg nach Software zu suchen besteht darin,
|
|
die eingebaute Suchfunktion der Ports-Sammlung zu benutzen.
|
|
Wechseln Sie dazu in das Verzeichnis
|
|
<filename>/usr/ports</filename>, und rufen Sie <command>make
|
|
search name=Anwendungsname</command> auf, wobei
|
|
<replaceable>Anwendungsname</replaceable> der Name der
|
|
Software ist. Um zum Beispiel nach <command>lsof</command>
|
|
zu 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>Die <quote>Path:</quote>-Zeile zeigt an, wo der Port zu
|
|
finden ist.</para>
|
|
|
|
<para>Um weniger Informationen zu erhalten, benutzen Sie die
|
|
Funktion <command>quicksearch</command>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/ports</userinput>
|
|
&prompt.root; <userinput>make quicksearch name=lsof</userinput>
|
|
Port: lsof-4.87.a,7
|
|
Path: /usr/ports/sysutils/lsof
|
|
Info: Lists information about open files (similar to fstat(1))</screen>
|
|
|
|
<para>Erweiterte Suchen führen Sie mit
|
|
<command>make search
|
|
key=<replaceable>Text</replaceable></command> oder
|
|
<command>make quicksearch
|
|
key=<replaceable>Text</replaceable></command> aus. Damit
|
|
werden Portnamen, Kommentare, Beschreibungen und
|
|
Abhängigkeiten nach <replaceable>Text</replaceable>
|
|
durchsucht. Dies kann sehr nützlich sein, wenn der
|
|
Name des Programms nicht bekannt ist.</para>
|
|
|
|
<para>Bei der Verwendung von <buildtarget>search</buildtarget>
|
|
und <buildtarget>quicksearch</buildtarget> wird Groß- 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 xml:id="packages-using">
|
|
<info><title>Verwendung von Binärpaketen</title>
|
|
<authorgroup>
|
|
<author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Beigesteuert von </contrib></author>
|
|
</authorgroup>
|
|
|
|
</info>
|
|
|
|
<para>Es gibt viele unterschiedliche Werkzeuge um Pakete in &os;
|
|
zu verwalten:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Auf einem laufenden System kann <command>sysinstall</command>
|
|
benutzt werden, um Pakete zu installieren, zu löschen und
|
|
verfü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>Benutzen Sie &man.pkg.add.1;, um ein &os;-Paket von einer
|
|
lokalen Datei oder über das Netzwerk installieren.</para>
|
|
|
|
<example>
|
|
<title>Download vor Installation eines Pakets</title>
|
|
|
|
<screen>&prompt.root; <userinput>ftp -a ftp2.FreeBSD.org</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 lsof-4.56.4.tgz</userinput></screen>
|
|
</example>
|
|
|
|
<para>Wenn Sie die Pakete nicht lokal vorliegen haben, zum Beispiel
|
|
auf den &os;-CD-ROMs, verwenden Sie den
|
|
Schalter <option>-r</option> von &man.pkg.add.1;. Dies
|
|
bestimmt automatisch das nötige Objektformat und
|
|
die richtige Version des Pakets, lädt dieses dann von einem
|
|
FTP-Server und installiert es, ohne das weitere
|
|
Benutzereingriffe nötig sind.</para>
|
|
|
|
<indexterm>
|
|
<primary><command>pkg_add</command></primary></indexterm>
|
|
<screen>&prompt.root; <userinput>pkg_add -r lsof</userinput></screen>
|
|
|
|
<para>Wenn Sie einen anderen &os; FTP-Mirror verwenden möchten,
|
|
geben Sie den Mirror in der Umgebungsvariablen
|
|
<envar>PACKAGESITE</envar> an. &man.pkg.add.1; benutzt
|
|
&man.fetch.3;, um Dateien herunterzuladen. Umgebungsvariablen wie
|
|
<envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar> und
|
|
<envar>FTP_PASSWORD</envar> werden dabei berücksichtigt.
|
|
Wenn Sie durch eine Firewall geschützt werden, müssen Sie
|
|
vielleicht eine oder mehrere dieser Umgebungsvariablen setzen oder
|
|
einen FTP oder HTTP Proxy verwenden. Eine Liste der
|
|
unterstützten Umgebungsvariablen finden Sie in &man.fetch.3;.
|
|
Beachten Sie, dass im obigen Beispiel <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.</para>
|
|
|
|
<note>
|
|
<para>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
|
|
<envar>PACKAGESITE</envar> überschreiben. Auf einem
|
|
&os; 8.1-RELEASE System, versucht
|
|
&man.pkg.add.1; in der Voreinstellung die Pakete von
|
|
<literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/</literal>
|
|
zu laden. Um &man.pkg.add.1; zu zwingen, nur
|
|
&os; 8-STABLE-Pakete herunterzuladen, setzen Sie
|
|
<envar>PACKAGESITE</envar> auf
|
|
<literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/</literal>.</para>
|
|
</note>
|
|
|
|
<para>Pakete werden im <filename>.tgz</filename>- und
|
|
<filename>.tbz</filename>-Format ausgeliefert. Sie sind unter
|
|
<uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/</uri>,
|
|
oder auf der &os;-DVD-Distribution. Die Struktur des
|
|
Paketbaums entspricht der Verzeichnisstruktur unter
|
|
<filename>/usr/ports</filename>. Jede Kategorie besitzt ein
|
|
eigenes Verzeichnis und alle Pakete befinden sich im
|
|
Verzeichnis <filename>All</filename>.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Verwalten von Paketen</title>
|
|
|
|
<indexterm>
|
|
<primary>Pakete</primary>
|
|
<secondary>verwalten</secondary>
|
|
</indexterm>
|
|
|
|
<para>&man.pkg.info.1; kann dazu benutzt werden, alle
|
|
installierten Pakete und deren Beschreibung anzuzeigen.</para>
|
|
|
|
<indexterm>
|
|
<primary><command>pkg_info</command></primary>
|
|
</indexterm>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_info</userinput>
|
|
colordiff-1.0.13 A tool to colorize diff output
|
|
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>
|
|
colordiff =
|
|
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 überein.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><</entry>
|
|
<entry>Die installierte Version ist älter als die der
|
|
verfügbaren Version aus der lokalen
|
|
Ports-Sammlung.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>></entry>
|
|
<entry>Die installierte Version ist neuer als die aus
|
|
der Ports-Sammlung, was vermutlich bedeutet, dass
|
|
die lokale Ports-Sammlung veraltet ist.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>?</entry>
|
|
<entry>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.</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 &man.pkg.delete.1;.</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_delete xchat-1.7.1</userinput></screen>
|
|
|
|
<para>Beachten Sie, dass &man.pkg.delete.1; die vollständige
|
|
Bezeichnung des Pakets benötigt. Die Eingabe von
|
|
<replaceable>xchat</replaceable> anstelle von
|
|
<replaceable>xchat-1.7.1</replaceable> wäre im obigen Beispiel
|
|
daher nicht ausreichend. Benutzen Sie &man.pkg.version.1;, um
|
|
die Versionsnummer des Pakets herausfinden, oder verwenden Sie
|
|
Wildcards:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_delete xchat\*</userinput></screen>
|
|
|
|
<para>In diesem Beispiel werden alle Pakete gelöscht, deren
|
|
Name mit <literal>xchat</literal> beginnt.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Verschiedenes</title>
|
|
|
|
<para>Alle Paketinformationen, einschließlich der
|
|
Beschreibungen, werden im Verzeichnis
|
|
<filename>/var/db/pkg</filename> abgelegt.</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="pkgng-intro">
|
|
<title>Benutzen von <application>pkgng</application> zur
|
|
Verwaltung von Binärpaketen</title>
|
|
|
|
<para><application>pkgng</application> ist ein verbesserter
|
|
Ersatz für die traditionellen Paketverwaltungswerkzeuge
|
|
von &os;. Es bietet viele Funktionen, um den Umgang mit
|
|
Binärpaketen schneller und einfacher zu gestalten.
|
|
<application>pkgng</application> wurde erstmalig
|
|
im August 2012 veröffentlicht.</para>
|
|
|
|
<para><application>pkgng</application> ist kein Ersatz für die
|
|
Portverwaltungswerkzeuge wie
|
|
<package>ports-mgmt/portmaster</package> oder
|
|
<package>ports-mgmt/portupgrade</package>. Während
|
|
<package>ports-mgmt/portmaster</package> und
|
|
<package>ports-mgmt/portupgrade</package> Drittanbieter-Software
|
|
sowohl aus Binärpaketen als auch aus den Ports installieren
|
|
kann, so installiert <application>pkgng</application>
|
|
ausschließlich Binärpakete.</para>
|
|
|
|
<sect2 xml:id="pkgng-initial-setup">
|
|
<title>Erste Schritte mit
|
|
<application>pkgng</application></title>
|
|
|
|
<para>&os; 9.1 und nachfolgende Versionen enthalten ein
|
|
"Bootstrap"-Programm für
|
|
<application>pkgng</application>. Das Bootstrap-Programm
|
|
lädt und installiert <application>pkgng</application>.</para>
|
|
|
|
<para>Um das Bootstrap Programm zu starten, geben Sie folgendes
|
|
ein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>/usr/sbin/pkg</userinput></screen>
|
|
|
|
<para>Für ältere Versionen von &os; muss
|
|
<application>pkgng</application> zunächst aus der
|
|
Ports-Sammlung oder als Paket installiert werden.</para>
|
|
|
|
<para>Um <application>pkgng</application> aus den Ports zu
|
|
installieren, geben Sie folgendes ein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/pkg</userinput>
|
|
&prompt.root; <userinput>make</userinput>
|
|
&prompt.root; <userinput>make install clean</userinput></screen>
|
|
|
|
<para>Um das Paket zu installieren, geben Sie folgendes
|
|
ein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_add -r pkg</userinput></screen>
|
|
|
|
<para>Bestehende &os; Installationen benötigen eine
|
|
Konvertierung der
|
|
<application>pkg_install</application>-Paketdatenbank in das
|
|
neue Format. Um die Paketdatenbank zu konvertieren, geben Sie
|
|
folgendes ein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg2ng</userinput></screen>
|
|
|
|
<para>Auf neu installieren Systemen, auf denen noch keine
|
|
Software von Drittanbietern installiert wurde, kann dieser
|
|
Schritt entfallen.</para>
|
|
|
|
<important>
|
|
<para>Die Konvertierung ist unwiderruflich. Sobald die
|
|
Paketdatenbank in das Format von
|
|
<application>pkgng</application> umgewandelt wurde, sollten
|
|
die traditionellen <application>pkg_install</application>
|
|
Werkzeuge nicht mehr benutzt werden.</para>
|
|
</important>
|
|
|
|
<note>
|
|
<para>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 <application>pkg2ng</application>
|
|
fertig ist, wird eine Liste von Drittanbieter-Software
|
|
ausgegeben, die nicht erfolgreich konvertiert werden konnte.
|
|
Diese Anwendungen müssen manuell neu installiert
|
|
werden.</para>
|
|
</note>
|
|
|
|
<para>Um sicherzustellen, dass die &os; Ports-Sammlung neue
|
|
Pakete mit <application>pkgng</application> und nicht mit
|
|
<application>pkg_install</application> registriert, muss in
|
|
&os; 10.<replaceable>X</replaceable> und früheren
|
|
Versionen folgende Zeile in
|
|
<filename>/etc/make.conf</filename> hinzugefügt werden:</para>
|
|
|
|
<programlisting>WITH_PKGNG= yes</programlisting>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="pkgng-pkg-conf">
|
|
<title>Konfiguration der <application>pkgng</application>
|
|
Umgebung</title>
|
|
|
|
<para>Das <application>pkgng</application>
|
|
Paketverwaltungssystem benutzt für die meisten Operationen ein
|
|
Paket-Repository. Der Speicherort des Paket-Repositories wird
|
|
in <filename>/usr/local/etc/pkg.conf</filename> oder der
|
|
Umgebungsvariablen <envar>PACKAGESITE</envar>
|
|
definiert.</para>
|
|
|
|
<para>Weitere Konfigurationsoptionen für
|
|
<application>pkgng</application> sind in &man.pkg.conf.5;
|
|
beschrieben.</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="pkgng-basic-usage">
|
|
<title>Grundlegende Bedienung von
|
|
<application>pkgng</application></title>
|
|
|
|
<para>Informationen zur Bedienung von
|
|
<application>pkgng</application> ist in der Manualpage
|
|
&man.pkg.8; verfügbar. Alternativ kann <command>pkg</command>
|
|
ohne zusätzliche Argumente aufgerufen werden.</para>
|
|
|
|
<para>Jedes Argument von <application>pkgng</application> ist in
|
|
seiner spezifischen Manualpage dokumentiert. Um
|
|
beispielsweise die Manualpage von
|
|
<command>pkg install</command> zu lesen, geben Sie einen der
|
|
folgenden Befehle ein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg help install</userinput></screen>
|
|
|
|
<screen>&prompt.root; <userinput>man pkg-install</userinput></screen>
|
|
|
|
<sect3 xml:id="pkgng-pkg-info">
|
|
<title>Mit <application>pkgng</application> Informationen über
|
|
installierte Pakete anzeigen</title>
|
|
|
|
<para>Informationen über bereits installierte Pakete können
|
|
mit <command>pkg info</command> angezeigt werden. Dabei
|
|
wird die Version und die Beschreibung aller Pakete
|
|
ausgegeben.</para>
|
|
|
|
<para>Informationen zu einem bestimmten Paket können wie folgt
|
|
angezeigt werden:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg info <replaceable>paketname</replaceable></userinput></screen>
|
|
|
|
<para>Um zu ermitteln welche Version von
|
|
<application>pkgng</application> installiert ist, geben Sie
|
|
folgendes ein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg info pkg</userinput>
|
|
pkg-1.0.2 New generation package manager</screen>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="pkgng-installing-deinstalling">
|
|
<title>Installation und Deinstallation von Paketen mit
|
|
<application>pkgng</application></title>
|
|
|
|
<para>In der Regel werden Benutzer von &os; Binärpakete wie
|
|
folgt installieren:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg install <replaceable>paketname</replaceable></userinput></screen>
|
|
|
|
<para><command>pkg install</command> benutzt das in
|
|
<xref linkend="pkgng-pkg-conf"/> erwähnte Repository.
|
|
Im Gegensatz dazu benutzt &man.pkg-add.8; kein Repository,
|
|
oder eine definierte <envar>PACKAGESITE</envar>, so dass
|
|
Abhängigkeiten nicht ordnungsgemäß aufgelöst und fehlende
|
|
Abhängigkeiten nicht von entfernten Systemen
|
|
heruntergeladen werden. Dieser Abschnitt beschreibt die
|
|
Bedienung von <command>pkg install</command>. Informationen
|
|
zur Bedienung von <command>pkg add</command> finden Sie in
|
|
&man.pkg-add.8;.</para>
|
|
|
|
<para>Zusätzliche Binärpakete können mit
|
|
<command>pkg intall</command> installiert werden. Um
|
|
beispielsweise <application>curl</application> zu
|
|
installieren:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg install curl</userinput>
|
|
Updating repository catalogue
|
|
Repository catalogue is up-to-date, no need to fetch fresh copy
|
|
The following packages will be installed:
|
|
|
|
Installing ca_root_nss: 3.13.5
|
|
Installing curl: 7.24.0
|
|
|
|
The installation will require 4 MB more space
|
|
|
|
1 MB to be downloaded
|
|
|
|
Proceed with installing packages [y/N]: <userinput>y</userinput>
|
|
ca_root_nss-3.13.5.txz 100% 255KB 255.1KB/s 255.1KB/s 00:00
|
|
curl-7.24.0.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00
|
|
Checking integrity... done
|
|
Installing ca_root_nss-3.13.5... done
|
|
Installing curl-7.24.0... done</screen>
|
|
|
|
<para>Das neue Paket und jedes weitere Paket, das als
|
|
Abhängigkeit installiert wurde, ist in der Liste der
|
|
installierten Pakete zu sehen:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg info</userinput>
|
|
ca_root_nss-3.13.5 The root certificate bundle from the Mozilla Project
|
|
curl-7.24.0 Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
|
|
pkg-1.0.2 New generation package manager</screen>
|
|
|
|
<para>Wird ein Paket nicht mehr benötigt, kann es mit
|
|
<command>pkg delete</command> entfernt werden. Wenn
|
|
beispielsweise <application>curl</application> nicht mehr
|
|
benötigt wird:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg delete curl</userinput>
|
|
The following packages will be deleted:
|
|
|
|
curl-7.24.0_1
|
|
|
|
The deletion will free 3 MB
|
|
|
|
Proceed with deleting packages [y/N]: <userinput>y</userinput>
|
|
Deleting curl-7.24.0_1... done</screen>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="pkgng-upgrading">
|
|
<title>Installierte Pakete mit
|
|
<application>pkgng</application> aktualisieren</title>
|
|
|
|
<para>Pakete die nicht mehr aktuell sind, können mit
|
|
<command>pkg version</command> 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.</para>
|
|
|
|
<para>Pakete können mit <application>pkgng</application> auf
|
|
neue Versionen aktualisiert werden. Wenn eine neue Version
|
|
von <application>curl</application> veröffentlicht wurde,
|
|
kann das lokale Paket auf die neue Version aktualisiert
|
|
werden:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg upgrade</userinput>
|
|
Updating repository catalogue
|
|
repo.txz 100% 297KB 296KB/s 296KB/s 00:00
|
|
The following packages will be upgraded:
|
|
|
|
Upgrading curl: 7.24.0 -> 7.24.0_1
|
|
|
|
1 MB to be downloaded
|
|
|
|
Proceed with upgrading packages [y/N]: <userinput>y</userinput>
|
|
curl-7.24.0_1.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00
|
|
Checking integrity... done
|
|
Upgrading curl from 7.24.0 to 7.24.0_1... done</screen>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="pkgng-auditing">
|
|
<title>Installierte Pakete mit
|
|
<application>pkgng</application> auditieren</title>
|
|
|
|
<para>Gelegentlich werden Sicherheitslücken in einer
|
|
Software innerhalb der Ports-Sammlung entdeckt.
|
|
<application>pkgng</application> besitzt ein eingebautes
|
|
Auditing, was mit dem Paket
|
|
<package>ports-mgmt/portaudit</package> vergleichbar ist.
|
|
Um die auf dem System installierte Software zu prüfen, geben
|
|
Sie folgenden Befehl ein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg audit -F</userinput></screen>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="pkgng-advanced-usage">
|
|
<title>Fortgeschrittene Arbeiten mit
|
|
<application>pkgng</application></title>
|
|
|
|
<sect3 xml:id="pkgng-autoremove">
|
|
<title>Automatisches Entfernen von nicht mehr benötigten
|
|
Abhängigkeiten mit <application>pkgng</application></title>
|
|
|
|
<para>Das Entfernen eines Pakets kann möglicherweise unnötige
|
|
Abhängigkeiten hinterlassen, wie im obigen Beispiel
|
|
<package>ca_root_nss</package>. Solche Pakete sind zwar
|
|
noch installiert, aber keine weiteren Pakete hängen mehr von
|
|
ihnen ab. Unnötige Pakete, die als Abhängigkeit von anderen
|
|
Paketen installiert wurden, können automatisch erfasst und
|
|
entfernt werden:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg autoremove</userinput>
|
|
Packages to be removed:
|
|
ca_root_nss-3.15.5
|
|
|
|
The autoremoval will free 723 kB
|
|
|
|
Proceed with autoremoval of packages [y/N]: <userinput>y</userinput>
|
|
Deinstalling ca_root_nss-3.13.5... done</screen>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="pkgng-backup">
|
|
<title>Sicherung der <application>pkgng</application>
|
|
Datenbank</title>
|
|
|
|
<para>Im Gegensatz zum alten Paketverwaltungssystem beinhaltet
|
|
<application>pkgng</application> einen eigenen Mechanismus
|
|
zur Sicherung der Paketdatenbank. Um den Inhalt der
|
|
Datenbank manuell zu sichern, geben Sie folgendes
|
|
ein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg backup -d <replaceable>pkgng.db</replaceable></userinput></screen>
|
|
|
|
<note>
|
|
<para>Ersetzen Sie den Dateinamen
|
|
<replaceable>pkgng.db</replaceable> durch einen geeigneten
|
|
Dateinamen.</para>
|
|
</note>
|
|
|
|
<para>Zusätzlich verfügt <application>pkgng</application> über
|
|
ein &man.periodic.8;-Skript, das automatisch eine tägliche
|
|
Sicherung der Paketdatenbank erstellt, wenn in
|
|
&man.periodic.conf.5;
|
|
<literal>daily_backup_pkgng_enable</literal> auf
|
|
<literal>YES</literal> gesetzt ist.</para>
|
|
|
|
<tip>
|
|
<para>Um <application>pkg_install</application> daran zu
|
|
hindern, ebenfalls eine Sicherung der Paketdatenbank zu
|
|
erstellen, muss in &man.periodic.conf.5;
|
|
<literal>daily_backup_pkgdb_enable</literal> auf
|
|
<literal>NO</literal> gesetzt werden.</para>
|
|
</tip>
|
|
|
|
<para>Um den Inhalt einer früheren Paketdatenbank
|
|
wiederherzustellen, geben Sie folgendes ein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg backup -r <replaceable>/path/to/pkgng.db</replaceable></userinput></screen>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="pkgng-clean">
|
|
<title>Alte Pakete mit <application>pkgng</application>
|
|
entfernen</title>
|
|
|
|
<para>Standardmäßig speichert <application>pkgng</application>
|
|
Pakete in einem Cache-Verzeichnis, welches in
|
|
&man.pkg.conf.5; in der Variablen
|
|
<envar>PKG_CACHEDIR</envar> definiert wird. Beim Upgrade
|
|
der Pakete mit <command>pkg upgrade</command>, werden die
|
|
alten Versionen der Pakete nicht automatisch
|
|
entfernt.</para>
|
|
|
|
<para>Um veraltete Pakete zu entfernen, geben Sie folgendes
|
|
ein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg clean</userinput></screen>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="pkgng-set">
|
|
<title>Manipulation der <application>pkgng</application> Paket
|
|
Metadaten</title>
|
|
|
|
<para>Bei Software aus der &os; Ports-Sammlung kann es
|
|
vorkommen, dass die Hauptversionsnummer geändert wird. Im
|
|
Gegensatz zu <application>pkg_install</application> hat
|
|
<application>pkgng</application> ein eingebautes Kommando,
|
|
um die Quelle eines Pakets zu aktualisieren. Wenn zum
|
|
Beispiel <package>lang/php5</package> ursprünglich die
|
|
Version <literal>5.3</literal> hatte, nun aber in
|
|
<package>lang/php53</package> umbenannt wurde, um die
|
|
Version <literal>5.4</literal> zu integrieren, dann hätte
|
|
<application>pkg_install</application> zusätzliche Software,
|
|
wie beispielsweise <package>ports-mgmt/portmaster</package>
|
|
benötigt, um die Quelle des Pakets in der Paketdatenbank
|
|
zu aktualisieren.</para>
|
|
|
|
<para>Bei <package>ports-mgmt/portmaster</package> und
|
|
<package>ports-mgmt/portupgrade</package> unterscheidet sich
|
|
die Ausgabe bei der Auflistung von neuen und alten
|
|
Versionen. Für <application>pkgng</application> lautet die
|
|
Syntax:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg set -o <replaceable>category/oldport</replaceable>:<replaceable>category/newport</replaceable></userinput></screen>
|
|
|
|
<para>Um die Quelle des Pakets für das obige Beispiel zu
|
|
ändern, geben Sie folgendes ein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg set -o lang/php5:lang/php53</userinput></screen>
|
|
|
|
<para>Ein weiteres Beispiel:
|
|
Um <package>lang/ruby18</package> auf
|
|
<package>lang/ruby19</package> zu aktualisieren, geben Sie
|
|
folgendes ein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg set -o lang/ruby18:lang/ruby19</userinput></screen>
|
|
|
|
<para>In diesem letzten Beispiel wird die Quelle der
|
|
Bibliotheken von <filename>libglut</filename> von
|
|
<package>graphics/libglut</package> auf
|
|
<package>graphics/freeglut</package> geändert:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg set -o graphics/libglut:graphics/freeglut</userinput></screen>
|
|
|
|
<note>
|
|
<para>Bei dem Wechsel einer Paketquelle ist es in den
|
|
meisten Fällen notwendig, die Pakete neu zu installieren,
|
|
welche von dem Paket abhängig sind, welches seine
|
|
Paketquelle geändert hat. Um eine Neuinstallation von
|
|
abhängigen Paketen zu erzwingen, führen Sie folgenden
|
|
Befehl aus:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg install -Rf <replaceable>graphics/freeglut</replaceable></userinput></screen>
|
|
</note>
|
|
</sect3>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="ports-using">
|
|
<title>Benutzen der Ports-Sammlung</title>
|
|
|
|
<para>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 <command>make</command>-Targets und
|
|
Umgebungsvariablen.</para>
|
|
|
|
<warning>
|
|
<para>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 <application>Portsnap</application>.
|
|
Benutzer, die lokale Anpassungen der Ports vornehmen müssen,
|
|
werden es wahrscheinlich bevorzugen, Subversion direkt zu
|
|
verwenden. Der CVS-Service wurde am 28. Februar 2013
|
|
eingestellt. Von einer weiteren Verwendung dieses Dienstes
|
|
wird abgeraten.</para>
|
|
</warning>
|
|
|
|
<sect2 xml:id="ports-tree">
|
|
<title>Installation der Ports-Sammlung</title>
|
|
|
|
<para>Die Ports-Sammlung ist eine Reihe von Makefiles, Patches
|
|
und Beschreibungen, die unter <filename>/usr/ports</filename>
|
|
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.</para>
|
|
|
|
<procedure>
|
|
<title>Installation mit Portsnap</title>
|
|
|
|
<para><application>Portsnap</application> ist ein schnelles
|
|
und benutzerfreundliches Werkzeug zur Installation der
|
|
Ports-Sammlung und die bevorzugte Wahl für die meisten
|
|
Benutzer. Eine detaillierte Beschreibung zu
|
|
<application>Portsnap</application> finden Sie in <link
|
|
linkend="updating-upgrading-portsnap">Portsnap: ein Werkzeug
|
|
zur Aktualisierung der Ports-Sammlung</link>.</para>
|
|
|
|
<step>
|
|
<para>Laden Sie einen komprimierten Snapshot der
|
|
Ports-Sammlung in
|
|
<filename>/var/db/portsnap</filename>.</para>
|
|
|
|
<screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Wenn Sie <application>Portsnap</application> das erste
|
|
Mal verwenden, müssen Sie den Snapshot nach
|
|
<filename>/usr/ports</filename> extrahieren:</para>
|
|
|
|
<screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
|
|
|
|
<para>Nachdem der erste Einsatz von
|
|
<application>Portsnap</application> abeschlossen ist, kann
|
|
<filename>/usr/ports</filename> wie folgt aktualisiert
|
|
werden:</para>
|
|
|
|
<screen>&prompt.root; <userinput>portsnap update</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
|
|
<procedure>
|
|
<title>Installation mit Subversion</title>
|
|
|
|
<para>Wird mehr Kontrolle über die Ports-Sammlung benötigt
|
|
(beispielsweise für der Pflege lokaler Änderungen),
|
|
kann <application>Subversion</application> benutzt werden,
|
|
um die Ports-Sammlung zu laden. Lesen Sie <link
|
|
xlink:href="&url.articles.committers-guide;/subversion-primer.html">the
|
|
Subversion Primer</link> für eine detaillierte
|
|
Beschreibung von
|
|
<application>Subversion</application>.</para>
|
|
|
|
<step>
|
|
<para><application>Subversion</application> muss installiert
|
|
sein, bevor damit die Ports-Sammlung geladen werden kann.
|
|
Ist eine lokale Kopie der Ports-Sammlung bereits
|
|
vorhanden, installieren Sie
|
|
<application>Subversion</application> wie folgt:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/ports/devel/subversion</userinput>
|
|
&prompt.root; <userinput>make install clean</userinput></screen>
|
|
|
|
<para>Ist keine lokale Kopie der Ports-Sammlung vorhanden,
|
|
kann <application>Subversion</application> als Paket
|
|
installiert werden:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_add -r subversion</userinput></screen>
|
|
|
|
<para>Wird <application>pkgng</application> für die
|
|
Verwaltung von Paketen benutzt, kann
|
|
<application>Subversion</application> darüber installiert
|
|
werden:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg install subversion</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Laden Sie eine Kopie der Ports-Sammlung. Verwenden
|
|
Sie anstatt <replaceable>svn.FreeBSD.org</replaceable> einen
|
|
<link
|
|
xlink:href="&url.books.handbook;/mirrors-svn.html">Subversion
|
|
Mirror</link> in Ihrer Nähe. Committer sollten zuvor den
|
|
<link
|
|
xlink:href="&url.articles.committers-guide;/subversion-primer.html">Subversion
|
|
Primer</link> lesen, um sicherzustellen, dass das richtige
|
|
Protokoll gewählt wird.</para>
|
|
|
|
<screen>&prompt.root; <userinput>svn checkout
|
|
svn://<replaceable>svn.FreeBSD.org</replaceable>/ports/head/usr/ports</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Nach dem erstmaligen
|
|
<foreignphrase>checkout</foreignphrase> mit
|
|
<application>Subversion</application> kann
|
|
<filename>/usr/ports</filename> wie folgt aktualisiert
|
|
werden:</para>
|
|
|
|
<screen>&prompt.root; <userinput>svn update /usr/ports</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
|
|
<procedure>
|
|
<title>Installieren mit <application>sysinstall</application></title>
|
|
|
|
<para>Nicht zuletzt ist es auch möglich, die Ports-Sammlung
|
|
ü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ö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ühren Sie als <systemitem class="username">root</systemitem>
|
|
<command>sysinstall</command> aus:</para>
|
|
|
|
<screen>&prompt.root; <userinput>sysinstall</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Wählen Sie den Punkt <guimenuitem>Configure</guimenuitem>
|
|
aus und drücken Sie <keycap>Enter</keycap>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Wählen Sie dann <guimenuitem>Distributions</guimenuitem>
|
|
aus und drücken Sie <keycap>Enter</keycap>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>In diesem Menü wählen Sie
|
|
<guimenuitem>ports</guimenuitem> aus und drücken die
|
|
<keycap>Leertaste</keycap>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Danach wählen Sie <literal>Exit</literal> aus und
|
|
drü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ählen Sie nun <literal>Exit</literal> aus und
|
|
drücken <keycap>Enter</keycap>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Verlassen Sie <application>sysinstall</application> mit
|
|
<keycap>X</keycap>.</para>
|
|
</step>
|
|
</procedure>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="cvsup-migration">
|
|
<title>Migration von
|
|
<application>CVSup</application>/<application>csup</application>
|
|
zu <application>portsnap</application></title>
|
|
|
|
<warning>
|
|
<para>Seit dem 28. Februar 2013 wird die Ports-Sammlung nicht
|
|
mehr nach <application>CVS</application> exportiert. Somit
|
|
werden über <application>CVSup</application> und
|
|
<application>csup</application> keine Updates für die
|
|
Ports-Sammlung mehr zu Verfügung gestellt.</para>
|
|
</warning>
|
|
|
|
<procedure>
|
|
<title>Migration zu portsnap</title>
|
|
|
|
<para>Für die Migration werden in <filename>/usr</filename>
|
|
ca. 1 GB freier Speicher und in
|
|
<filename>/var</filename> ca. 150 MB freier Speicher
|
|
benötigt.</para>
|
|
|
|
<step>
|
|
<para>Deaktivieren Sie alle automatischen Updates der
|
|
Ports-Sammlung, wie beispielsweise &man.cron.8; Jobs, die
|
|
<application>CVSup</application> oder
|
|
<application>csup</application> aufrufen.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Verschieben Sie die bestehende Ports-Sammlung in ein
|
|
temporäres Verzeichnis:</para>
|
|
|
|
<screen>&prompt.root; <userinput>mv /usr/ports /usr/ports.old</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Laden Sie eine aktuelle Kopie Ports-Sammlung mit
|
|
<application>Portsnap</application> herunter und
|
|
extrahieren Sie diese nach
|
|
<filename>/usr/ports</filename>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>portsnap fetch extract</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Verschieben Sie Distfiles und vorhandene Pakete in
|
|
die neue Ports-Sammlung:</para>
|
|
|
|
<screen>&prompt.root; <userinput>mv /usr/ports.old/distfiles /usr/ports</userinput>
|
|
&prompt.root; <userinput>mv /usr/ports.old/packages /usr/ports</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Löschen Sie die alte Ports-Sammlung:</para>
|
|
|
|
<screen>&prompt.root; <userinput>rm -rf /usr/ports.old</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Falls zuvor <application>CVSup</application> verwendet
|
|
wurde, kann es nun deinstalliert werden:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_delete -r -v cvsup-without-gui-\*</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Benutzer von <application>pkgng</application> können
|
|
das folgende Kommando benutzen:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg delete cvsup-without-gui</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Eine detaillierte Beschreibung von
|
|
<application>Portsnap</application> und wie die
|
|
Ports-Sammlung mit <application>Portsnap</application>
|
|
aktualisiert wird, finden Sie in <link
|
|
linkend="updating-upgrading-portsnap">Portsnap: Ein Werkzeug
|
|
zur Aktualisierung der Ports-Sammlung</link>.</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="ports-skeleton">
|
|
<title>Ports installieren</title>
|
|
|
|
<indexterm>
|
|
<primary>Ports</primary>
|
|
<secondary>installieren</secondary>
|
|
</indexterm>
|
|
|
|
<para>Ein Port-<quote>Gerüst</quote> ist ein Satz von Dateien,
|
|
die &os; sagen, wie ein Programm zu kompilieren und zu
|
|
installieren ist. Ein jeder Port beinhaltet:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><filename>Makefile</filename>: Das
|
|
<filename>Makefile</filename> enthält Anweisungen, die
|
|
spezifizieren, wie eine Anwendung kompiliert
|
|
wird und wohin sie installiert werden sollte.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>distinfo</filename>: 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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>files</filename>: 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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>pkg-descr</filename>: Diese Datei enthält
|
|
eine ausführlichere Beschreibung der Anwendung.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>pkg-plist</filename>: Das ist eine Liste
|
|
aller Dateien, die durch diesen Port installiert werden.
|
|
Außerdem sind hier Informationen enthalten, die zum
|
|
Entfernen des Ports benötigt werden.</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
|
|
über diese Dateien oder das Port-System erfahren sollen, lesen
|
|
Sie das <link xlink:href="&url.books.porters-handbook.en;/index.html">
|
|
&os; Porter's Handbook</link>.</para>
|
|
|
|
<para>Ein Port enthält nicht den eigentlichen Quellcode, der
|
|
auch als <quote>Distfile</quote> 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.</para>
|
|
|
|
<note>
|
|
<para>Zum Installieren von Ports müssen Sie als Benutzer
|
|
<systemitem class="username">root</systemitem> angemeldet sein.</para>
|
|
</note>
|
|
|
|
<warning>
|
|
<para>Stellen Sie sicher, dass die Ports-Sammlung
|
|
aktuell ist, bevor Sie einen Port kompilieren.
|
|
Informieren Sie sich vorher zusätzlich unter
|
|
<uri xlink:href="http://vuxml.FreeBSD.org/">http://vuxml.FreeBSD.org/</uri>
|
|
über mögliche Sicherheitsprobleme
|
|
des zu installierenden Ports. Wenn
|
|
<package>ports-mgmt/portaudit</package> installiert ist,
|
|
führen Sie <command>portaudit -F</command> 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;.</para>
|
|
</warning>
|
|
|
|
<para>Die Ports-Sammlung geht davon, dass eine funktionierende
|
|
Internetverbindung besteht. Ansonsten muss eine Kopie des zu
|
|
installierenden Distfiles manuell nach
|
|
<filename>/usr/ports/distfiles</filename> kopiert
|
|
werden.</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>Um den Port zu übersetzen (auch Bauen genannt), geben Sie
|
|
am Prompt <command>make</command> ein. Die Ausgabe sollte der
|
|
in diesem Beispiel ähnlich sein:</para>
|
|
|
|
<screen>&prompt.root; <userinput>make</userinput>
|
|
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
|
|
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
|
|
===> Extracting for lsof-4.57
|
|
...
|
|
[Ausgabe des Auspackens weggelassen]
|
|
...
|
|
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
|
|
===> Patching for lsof-4.57
|
|
===> Applying FreeBSD patches for lsof-4.57
|
|
===> Configuring for lsof-4.57
|
|
...
|
|
[configure-Ausgabe weggelassen]
|
|
...
|
|
===> Building for lsof-4.57
|
|
...
|
|
[Ausgabe der Übersetzung weggelassen]
|
|
...
|
|
&prompt.root;</screen>
|
|
|
|
<para>Ist die Übersetzungsprozedur beendet, landen Sie
|
|
wiederum in der Kommandozeile und können das Programm
|
|
im nächsten Schritt mit <command>make install</command>
|
|
installieren:</para>
|
|
|
|
<screen>&prompt.root; <userinput>make install</userinput>
|
|
===> Installing for lsof-4.57
|
|
...
|
|
[Ausgabe der Installation weggelassen]
|
|
...
|
|
===> Generating temporary packing list
|
|
===> Compressing manual pages for lsof-4.57
|
|
===> Registering installation for lsof-4.57
|
|
===> SECURITY NOTE:
|
|
This port has installed the following binaries which execute with
|
|
increased privileges.
|
|
&prompt.root;</screen>
|
|
|
|
<para>Nachdem die Installation abgeschlossen ist, können Sie
|
|
die gerade installierte Anwendung starten. Da
|
|
<command>lsof</command> 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.</para>
|
|
|
|
<para>Es ist eine gute Idee, das Unterverzeichnis
|
|
<filename>work</filename> 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.</para>
|
|
|
|
<screen>&prompt.root; <userinput>make clean</userinput>
|
|
===> Cleaning for lsof-4.57
|
|
&prompt.root;</screen>
|
|
|
|
<note>
|
|
<para>Sie können zwei Schritte sparen, wenn Sie gleich
|
|
<command>make install clean </command>
|
|
anstelle von <command>make</command>, <command>make
|
|
install</command> und <command>make
|
|
clean</command> eingeben.</para>
|
|
</note>
|
|
|
|
<note>
|
|
<para>Wird ein Port immer nur mit
|
|
<command>make install</command> 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
|
|
<command>make config-recursive</command>, um die
|
|
Konfiguration der Optionen an einem Stück zu erledigen.
|
|
Führen Sie anschließend
|
|
<command>make install [clean]</command> aus.</para>
|
|
</note>
|
|
|
|
<tip>
|
|
<para>Bei der Verwendung von
|
|
<buildtarget>config-recursive</buildtarget> wird eine
|
|
Liste von Ports, die konfiguriert werden, vom
|
|
&man.make.1;-Target
|
|
<buildtarget>all-depends-list</buildtarget> erstellt.
|
|
Es wird oft empfohlen,
|
|
<command>make config-recursive</command> 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.</para>
|
|
</tip>
|
|
|
|
<note>
|
|
<para>Um die Suche nach Kommandos zu beschleunigen, speichern
|
|
einige Shells eine Liste der verfügbaren Kommandos in den
|
|
durch die Umgebungsvariable <envar>PATH</envar> gegebenen
|
|
Verzeichnissen. Wenn Sie die <command>tcsh</command>
|
|
benutzen, müssen Sie eventuell <command>rehash</command>
|
|
eintippen, um die neu installierten Kommandos benutzen zu
|
|
können, ohne den vollständigen Pfad anzugeben. Unter
|
|
Shells wie der <command>sh</command> benutzen Sie
|
|
stattdessen das Kommando <command>hash -r</command>.
|
|
Weitere Informationen finden Sie in der Dokumentation
|
|
der jeweiligen Shell.</para>
|
|
</note>
|
|
|
|
<para>Einige von Dritten angebotenen DVD-Produkte wie das
|
|
&os; Toolkit von der <link
|
|
xlink:href="http://www.freebsdmall.com/">&os; Mall</link>
|
|
enthalten auch Distfiles. Diese lassen sich über die
|
|
Ports-Sammlung installieren. Dazu hängen Sie die DVD unter
|
|
<filename>/cdrom</filename> in den Verzeichnisbaum ein.
|
|
Wenn Sie einen anderen Mountpunkt verwenden, setzen Sie die
|
|
make-Variable <varname>CD_MOUNTPTS</varname>, damit die
|
|
auf der DVD enthaltenen Distfiles automatisch verwendet
|
|
werden.</para>
|
|
|
|
<note>
|
|
<para>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.</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ü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;.</para>
|
|
|
|
<para>Benutzer ohne eine ständige Internet-Verbindung können
|
|
<command>make fetch</command> im Verzeichnis
|
|
<filename>/usr/ports</filename> ausführen, um die benötigten
|
|
Dateien herunterzuladen. Es ist auch möglich,
|
|
<command>make fetch</command> nur in einem Teil
|
|
des Baums, wie <filename>/usr/ports/net</filename>,
|
|
aufzurufen. Die Dateien von allen abhängigen
|
|
Ports werden mit diesem Kommando allerdings nicht
|
|
heruntergeladen. Wenn Sie diese Dateien ebenfalls
|
|
herunterladen wollen, benutzen Sie
|
|
<command>make fetch-recursive</command>.</para>
|
|
|
|
<note>
|
|
<para>Sie können alle Ports einer Kategorie oder alle Ports
|
|
bauen, indem Sie <command>make</command> 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.</para>
|
|
</note>
|
|
|
|
<para>In einigen seltenen Fällen ist es erforderlich, die
|
|
benötigten Dateien von einem anderen Ort als den im Port
|
|
definierten <varname>MASTER_SITES</varname> herunterzuladen.
|
|
Sie können die Option <varname>MASTER_SITES</varname> mit dem
|
|
folgenden Kommando überschreiben:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/ports/directory</userinput>
|
|
&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \
|
|
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
|
|
|
|
<para>Im Beispiel wurde <varname>MASTER_SITES</varname>
|
|
mit dem Wert
|
|
<literal>ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</literal>
|
|
überschrieben.</para>
|
|
|
|
<note>
|
|
<para>Einige Ports bieten Optionen, mit denen zusätzliche
|
|
Funktionen oder Sicherheitsoptionen eingestellt werden
|
|
können. Zusätzliche Optionen können beispielsweise für
|
|
<package>www/firefox</package>,
|
|
<package>security/gpgme</package> und
|
|
<package>mail/sylpheed-claws</package>
|
|
angegeben werden. Wenn ein Port über zusätzliche
|
|
Optionen verfügt, wird ein Menü beim Bau des Ports
|
|
ausgegeben.</para>
|
|
</note>
|
|
|
|
<sect3>
|
|
<title>Vorgabe-Verzeichnisse ändern</title>
|
|
|
|
<para>Die Variablen <varname>WRKDIRPREFIX</varname>
|
|
und <varname>PREFIX</varname> überschreiben das
|
|
voreingestellte Bau- und Zielverzeichnis.
|
|
Zum Beispiel:</para>
|
|
|
|
<screen>&prompt.root; <userinput>make WRKDIRPREFIX=/usr/home/example/ports install</userinput></screen>
|
|
|
|
<para>Dieses Kommando baut den Port unter
|
|
<filename>/usr/home/example/ports</filename> und installiert
|
|
ihn unter <filename>/usr/local</filename>.</para>
|
|
|
|
<para>Die Variable <varname>PREFIX</varname> 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önnen beide Variablen auch zusammen
|
|
benutzen:</para>
|
|
|
|
<screen>&prompt.root; <userinput>make WRKDIRPREFIX=../ports PREFIX=../local install</userinput></screen>
|
|
|
|
<para>Alternativ können diese Variablen auch als
|
|
Umgebungsvariablen gesetzt werden. In der Manualpage Ihrer
|
|
Shell finden Sie Anweisungen, wie Umgebungsvariablen gesetzt
|
|
werden.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Ports rekonfigurieren</title>
|
|
|
|
<para>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
|
|
<command>make config</command> eingeben. Eine andere
|
|
Möglichkeit ist <command>make showconfig</command>. Eine
|
|
weitere Alternative bietet <command>make rmconfig</command>,
|
|
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.</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="ports-removing">
|
|
<title>Entfernen installierter Ports</title>
|
|
|
|
<indexterm>
|
|
<primary>Ports</primary>
|
|
<secondary>entfernen</secondary>
|
|
</indexterm>
|
|
|
|
<para>Installierte Ports werden mit &man.pkg.delete.1; wieder
|
|
deinstalliert:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_delete lsof-4.57</userinput></screen>
|
|
</sect2>
|
|
|
|
<sect2 xml: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 xml:id="ports-file-updating">
|
|
<title>Lesen Sie
|
|
<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ä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.</para>
|
|
|
|
<para>Sollte <filename>UPDATING</filename> etwas hier Gesagtem
|
|
widersprechen, so gilt das in <filename>UPDATING</filename>
|
|
Gesagte.</para>
|
|
</sect3>
|
|
|
|
<sect3 xml: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önnen
|
|
<application>portupgrade</application> über den Port
|
|
<package>ports-mgmt/portupgrade</package> wie
|
|
jeden anderen Port mit <command>make install clean</command>
|
|
installieren:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/portupgrade/</userinput>
|
|
&prompt.root; <userinput>make install clean</userinput></screen>
|
|
|
|
<para>Durchsuchen Sie regelmäßig die Liste der installierten
|
|
Ports mit <command>pkgdb -F</command> und beheben Sie alle
|
|
gefundenen Probleme. Es ist eine gute Idee, dies vor jedem
|
|
Update auszuführen.</para>
|
|
|
|
<para>Benutzen Sie <command>portupgrade -a</command>, um
|
|
automatisch alle veralteten Ports auf dem System zu
|
|
aktualisieren. 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>Um nur eine spezifische Anwendung zu aktualisieren,
|
|
verwenden Sie <command>portupgrade
|
|
<replaceable>Paketname</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ängen.</para>
|
|
|
|
<screen>&prompt.root; <userinput>portupgrade -R firefox</userinput></screen>
|
|
|
|
<para>Um Pakete anstelle von Ports zu installieren, verweden Sie
|
|
den Schalter <option>-P</option>. Mit dieser
|
|
Option durchsucht <application>portupgrade</application>
|
|
die in der Umgebungsvariablen <envar>PKG_PATH</envar>
|
|
aufgeführten Verzeichnisse nach Paketen. Sind
|
|
lokal keine Pakete vorhanden, versucht
|
|
<application>portupgrade</application> 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 <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öchten,
|
|
ohne die Anwendung zu bauen oder zu installieren,
|
|
geben Sie die Option <option>-F</option> an.
|
|
Weitere Möglichkeiten lesen Sie bitte in
|
|
der Hilfeseite &man.portupgrade.1; nach.</para>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="portmaster">
|
|
<title>Ports mit <application>portmaster</application>
|
|
aktualisieren</title>
|
|
|
|
<indexterm>
|
|
<primary>portmaster</primary>
|
|
</indexterm>
|
|
|
|
<para><package>portmaster</package> ist ein weiteres Werkzeug
|
|
zum Aktualisieren von Ports.
|
|
<application>portmaster</application> nutzt nur Werkzeuge,
|
|
die bereits im Basissystem vorhanden sind, ohne dabei von
|
|
weiteren Ports abhängig zu sein. Es verwendet Informationen
|
|
in <filename>/var/db/pkg/</filename>, um
|
|
festzustellen, welche Ports aktualisiert werden sollen.
|
|
Sie können den Port wie folgt installieren:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/portmaster</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 and is not depended on
|
|
by other ports</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Trunk ports: no dependencies, but other ports depend
|
|
upon it</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Branch ports: have dependencies but are depended
|
|
upon by other ports</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Leaf ports: have dependencies but are not depended
|
|
upon by other ports</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Um eine Liste der installierten Ports anzuzeigen und
|
|
nach neueren Versionen zu suchen, verwenden Sie
|
|
<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 installierten Ports zu aktualisieren,
|
|
verwenden Sie 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ö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
|
|
<option>-b</option> beim Aufruf von
|
|
<application>portmaster</application>. Durch die
|
|
Verwendung von <option>-i</option> wird
|
|
<application>portmaster</application> im interaktiven
|
|
Modus gestartet und fragt bei jedem zu aktualisierenden
|
|
Port nach, wie weiter vorgegangen werden soll.</para>
|
|
</note>
|
|
|
|
<para>Treten während der Aktualisierung Fehler auf, kö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ängigen Ports
|
|
aktualisiert werden:</para>
|
|
|
|
<screen>&prompt.root; <userinput>portmaster shells/bash</userinput></screen>
|
|
|
|
<para>Weiterführende Informationen finden Sie in der Manualpage
|
|
&man.portmaster.8;.</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="ports-disk-space">
|
|
<title>Platzbedarf von Ports</title>
|
|
|
|
<indexterm>
|
|
<primary>Ports</primary>
|
|
<secondary>Plattenplatz</secondary>
|
|
</indexterm>
|
|
|
|
<para>Die Nutzung der Ports-Sammlung wird im Laufe der Zeit viel
|
|
Plattenplatz verschlingen. Nach dem Bau und der Installation
|
|
eines Ports, wird <command>make clean</command> die temporären
|
|
Arbeitsverzeichnisse <filename>work</filename> aufräumen.
|
|
Um die gesamte Ports-Sammlung aufzuräumen, verwenden Sie
|
|
folgenden Befehl:</para>
|
|
|
|
<screen>&prompt.root; <userinput>portsclean -C</userinput></screen>
|
|
|
|
<para>Im Laufe der Zeit werden sich zahlreiche veraltete
|
|
Distfiles in <filename>distfiles</filename> ansammeln. Mit
|
|
dem folgenden Befehl werden alle Distfiles gelöscht, die vom
|
|
keinem Port mehr benötigt werden:</para>
|
|
|
|
<screen>&prompt.root; <userinput>portsclean -D</userinput></screen>
|
|
|
|
<para>Um alle Distfiles zu löschen, 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><package>port-mgmt/pkg_cutleaves</package> automatisiert
|
|
die Deinstallation von installierten Ports, die nicht weiter
|
|
benötigt werden.</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="ports-nextsteps">
|
|
<title>Nach der Installation</title>
|
|
|
|
<para>Nach der Installation einer neuen Anwendung wollen Sie
|
|
wahrscheinlich die mitgelieferte Dokumentation lesen, notwendige
|
|
Konfigurationsdateien anpassen und sicherstellen, dass die
|
|
Dienste der Anwendung automatisch beim Booten gestartet
|
|
werden.</para>
|
|
|
|
<para>Die einzelnen Schritte sind natü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 sich in
|
|
<filename>man/</filename> befinden und auf
|
|
Konfigurationsdateien, die in <filename>etc/</filename> abgelegt
|
|
werden. Manche Pakete enthalten in <filename>doc/</filename>
|
|
zusätzliche Dokumentation.</para>
|
|
|
|
<para>Um festzustellen welche Version der Anwendung
|
|
installiert ist:</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ä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 mit &man.man.1;. Überprüfen Sie die
|
|
Beispiele für Konfigurationsdateien und die zusätzliche
|
|
Dokumentation an, wenn es welche gibt.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Wenn es für die Anwendung eine Webseite gibt, suchen
|
|
Sie dort nach zusätzlicher Dokumentation wie FAQs
|
|
(häufig gestellte Fragen). Wenn Sie die Adresse der Webseite
|
|
nicht kennen, versuchen Sie das folgende Kommando:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_info foopackage-1.0.0</userinput></screen>
|
|
|
|
<para>Die Ausgabe enthält oft eine Zeile, die mit
|
|
<literal>WWW:</literal> beginnt und die URL der Webseite
|
|
enthält.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Ports die während des Systemstarts gestartet
|
|
werden sollen, installieren meist ein Startskript in
|
|
<filename>/usr/local/etc/rc.d</filename>.
|
|
Überprüfen Sie dieses Skript, und wenn nötig, passen Sie es
|
|
an oder benennen Sie es um. Weitere
|
|
Informationen finden Sie in
|
|
<xref linkend="configtuning-starting-services"/>.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="ports-broken">
|
|
<title>Kaputte Ports</title>
|
|
|
|
<para>Stolpern Sie einmal über einen Port, der nicht
|
|
funktioniert:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Stellen Sie fest, ob die
|
|
<link xlink:href="&url.base;/de/support.html#gnats">Datenbank mit den
|
|
Problemberichten</link> bereits einen Lösungsvorschlag
|
|
enthält. Ist dies der Fall, können Sie die
|
|
vorgeschlagene Lösung testen.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Bitten Sie den Betreuer des Ports um Hilfe. Geben
|
|
Sie dazu <command>make maintainer</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>$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 <link xlink:href="&url.articles.mailing-list-faq.en;/article.html">
|
|
Mailingliste</link> 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ür Ports, die als
|
|
Betreuer den Eintrag <email role="nolink">ports@FreeBSD.org</email> 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!</para>
|
|
</note>
|
|
|
|
<para>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 <link xlink:href="&url.articles.problem-reports.en;/article.html">Writing
|
|
&os; Problem Reports</link>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Reparieren Sie ihn! Das <link xlink:href="&url.books.porters-handbook.en;/index.html">&os;
|
|
Porter's Handbook</link> 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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Benutzen Sie alternativ &man.pkg.add.1;, um das Paket zu
|
|
installieren.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</sect1>
|
|
</chapter>
|