aboutsummaryrefslogtreecommitdiff
path: root/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'de_DE.ISO8859-1/books/handbook/ports/chapter.sgml')
-rw-r--r--de_DE.ISO8859-1/books/handbook/ports/chapter.sgml833
1 files changed, 223 insertions, 610 deletions
diff --git a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
index a7eed6d1f1..0eb12fc4cd 100644
--- a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/ports/chapter.sgml,v 1.43 2003/05/18 12:16:25 mheinen Exp $
- basiert auf: 1.186
+ $FreeBSDde: de-docproj/books/handbook/ports/chapter.sgml,v 1.45 2003/05/29 15:17:12 mheinen Exp $
+ basiert auf: 1.200
-->
<chapter id="ports">
@@ -43,12 +43,15 @@
<para>wie Sie bin&auml;re Softwarepakete installieren,</para>
</listitem>
<listitem>
- <para>wie Sie Software Dritter mit der Ports-Sammlung bauen
- und</para>
+ <para>wie Sie Software Dritter mit der Ports-Sammlung bauen,</para>
</listitem>
<listitem>
<para>wie Sie zuvor installierte Pakete oder Ports von einem
- System entfernen.</para>
+ System entfernen und</para>
+ </listitem>
+ <listitem>
+ <para>wie Sie die Voreinstellungen der Ports-Sammlung
+ &uuml;berschreiben.</para>
</listitem>
</itemizedlist>
</sect1>
@@ -68,8 +71,8 @@
<step>
<para>Auspacken der Software, die typischerweise ein mit
- &man.compress.1; oder &man.gzip.1; komprimiertes Tar-Archiv
- enth&auml;lt.</para>
+ &man.compress.1;, &man.gzip.1; oder &man.bzip2.1;
+ komprimiertes Tar-Archiv enth&auml;lt.</para>
</step>
<step>
@@ -433,7 +436,10 @@ docbook =
<row>
<entry>?</entry>
<entry>Das installierte Paket konnte in der Ports-Sammlung
- nicht gefunden werden.</entry>
+ 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>
@@ -628,7 +634,7 @@ docbook =
<listitem>
<para>Eine Datei <filename>distinfo</filename>. Diese
enth&auml;lt Informationen, welche Dateien heruntergeladen
- werden m&uuml;ssen, sowie Pr&uuml;fsummen, um sicher zu gehen,
+ werden m&uuml;ssen, sowie MD5-Pr&uuml;fsummen, um sicher zu gehen,
dass diese Dateien w&auml;hrend des Herunterladens nicht
besch&auml;digt wurden.</para>
</listitem>
@@ -918,6 +924,112 @@ Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
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 fetch</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">net/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>
+
+ <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>PORTSDIR</makevar>
+ und <makevar>PREFIX</makevar> einstellen. Die Variable
+ <makevar>PORTSDIR</makevar> gibt das Bauverzeichnis an:</para>
+
+ <screen>&prompt.root; <userinput>make PORTSDIR=/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 PORTSDIR=../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>
</sect2>
@@ -958,6 +1070,70 @@ Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
wie im Abschnitt <link linkend="packages-using">Benutzen des
Paketsystems</link> beschrieben.</para>
</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 clean</command>
+ aus, um die Arbeitsverzeichnisse zu l&ouml;schen.
+ Die Quelldateien im Verzeichnis <filename>distfiles</filename>
+ k&ouml;nnen Sie ebenfalls l&ouml;schen. Entfernen Sie
+ nicht mehr ben&ouml;tigte Ports, um weiteren Plattenplatz
+ freizugeben.</para>
+
+ <para>Wenn Sie die Ports-Sammlung mit
+ <application>CVSup</application> synchronisieren,
+ k&ouml;nnen Sie in der Datei <filename>refuse</filename>
+ Kategorien angeben, die nicht heruntergeladen werden sollen.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ports aktualisieren</title>
+
+ <indexterm>
+ <primary>portupgrade</primary>
+ </indexterm>
+ <indexterm>
+ <primary>Ports</primary>
+ <secondary>aktualisieren</secondary>
+ </indexterm>
+
+ <para>Es kann sehr m&uuml;hsam sein, einen Port zu
+ aktualisieren: Sie m&uuml;ssen den Port im Port-Verzeichnis
+ bauen, den alten Port entfernen, den neuen Port
+ installieren und anschlie&szlig;end aufr&auml;umen. Stellen
+ Sie sich vor, Sie m&uuml;ssten f&uuml;nf Ports auf
+ diese Weise aktualisieren! Viele Systemadministratoren
+ haben sich &uuml;ber dieses aufw&auml;ndige Verfahren
+ beklagt. Mittlerweile gibt es aber den Port
+ <filename role="port">sysutils/portupgrade</filename>,
+ der diese Aufgabe automatisiert. Installieren Sie
+ den Port, wie jeden anderen, mit dem Kommando
+ <command>make install clean</command>.</para>
+
+ <para>Das Werkzeug <application>portupgrade</application>
+ ben&ouml;tigt eine Datenbank, die installierte Ports
+ enth&auml;lt. Das Kommando <command>pkgdb -F</command>
+ erstellt diese Datenbank im Verzeichnis
+ <filename>/var/db/pkg</filename>. Das Kommando
+ <command>portupgrade -a</command> aktualisiert alle
+ Ports des Systems. Dazu wird die Datenbank und die
+ Datei <filename>INDEX</filename> der Ports-Sammlung
+ gelesen. Anschlie&szlig;end werden die ben&ouml;tigten
+ Quelldateien heruntergeladen, die Ports gebaut, gesichert
+ und installiert. Zum Abschlu&szlig; r&auml;umt
+ <application>portupgrade</application> die Arbeitsverzeichnisse
+ auf. Im Verzeichnis <filename>ports/sysutils</filename>
+ finden Sie weitere Werkzeuge, mit denen Sie die
+ Ports-Sammlung aktualisieren k&ouml;nnen.</para>
+ </sect2>
</sect1>
<sect1 id="ports-nextsteps">
@@ -994,7 +1170,7 @@ Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
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 <replaceable>foopackage</replaceable></userinput></screen>
+ <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.
@@ -1024,611 +1200,49 @@ Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
</itemizedlist>
</sect1>
- <sect1 id="ports-trouble">
- <title>Fehlersuche und -behebung</title>
-
- <para>Der folgende Abschnitt beschreibt einige einfache
- Fehlerbehebungsm&ouml;glichkeiten beim Benutzen der Ports-Sammlung
- und ein paar Fehlerbehandlungen, falls ein <link
- linkend="ports-broken">Port kaputt</link> ist.</para>
-
- <sect2 id="ports-questions">
- <title>Einige Fragen und Antworten</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>Ich dachte hierbei ging es um Modems??!</para>
- </question>
-
- <answer>
- <para>Ah, Sie m&uuml;ssen an die serielle Schnittstelle auf der
- R&uuml;ckseite Ihres Computers gedacht haben (engl.
- <foreignphrase>port</foreignphrase>). Wir
- benutzen hier <quote>Port</quote> als Ergebnis des
- <quote>Portierens</quote> einer Anwendung von einem
- Betriebssystem auf ein anderes.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para id="ports-patch">Was ist ein Patch?</para>
- </question>
-
- <answer>
- <para>Ein Patch ist eine kleine Datei, die beschreibt, wie man
- von einer Version einer Datei zu einer anderen kommt. Sie
- enth&auml;lt reinen Text und sagt im Prinzip Dinge wie
- <quote>l&ouml;sche Zeile 23</quote>,
- <quote>f&uuml;ge diese zwei Zeilen hinter Zeile 468 an</quote>
- oder <quote>&auml;ndere Zeile 197 hierzu</quote>. Patche werden
- mit &man.diff.1; erstellt, daher werden die resultierenden
- Dateien auch <quote>diffs</quote> genannt.</para>
- </answer>
- </qandaentry>
-
- <indexterm><primary>Tarball</primary></indexterm>
- <qandaentry>
- <question>
- <para id="ports-tarball">Worum gehts eigentlich bei diesen
- Tarballs?</para>
- </question>
-
- <answer>
- <para>Das ist eine Datei mit der Endung <filename>.tar</filename>
- oder als Varianten mit <filename>.tar.gz</filename>,
- <filename>.tar.Z</filename>, <filename>.tar.bz2</filename>,
- oder auch <filename>.tgz</filename>.</para>
-
- <para>Vereinfacht ist das ein Verzeichnisbaum, welcher in eine
- einzelne Datei (<filename>.tar</filename>) archiviert und
- optional gepackt (<filename>.gz</filename>) wurde. Diese
- Technik wurde urspr&uuml;nglich f&uuml;r
- <emphasis>T</emphasis>ape <emphasis>AR</emphasis>chives
- benutzt (daher der Name <command>tar</command>), aber stellt
- heute einen weit verbreiteten Weg da, im Internet Quellcode
- zu verbreiten und zu verteilen.</para>
-
- <para>Sie k&ouml;nnen nachsehen, welche Dateien im Archiv
- enthalten sind oder diese auspacken, indem Sie das Programm
- &man.tar.1;, das Teil des FreeBSD Basissystems ist,
- benutzen. Das s&auml;he in etwa so aus:</para>
-
- <screen>&prompt.user; <userinput>tar tvzf foobar.tar.gz</userinput>
-&prompt.user; <userinput>tar xzvf foobar.tar.gz</userinput>
-&prompt.user; <userinput>tar tvf foobar.tar</userinput>
-&prompt.user; <userinput>tar xvf foobar.tar</userinput></screen>
- </answer>
- </qandaentry>
-
- <indexterm><primary>Pr&uuml;fsumme</primary></indexterm>
- <qandaentry>
- <question>
- <para id="ports-checksum">Eine Pr&uuml;fsumme?</para>
- </question>
-
- <answer>
- <para>Das ist eine Zahl, die dadurch generiert wird, indem man
- die ganzen Daten einer Datei aufaddiert. &Auml;ndert sich ein
- Zeichen in dieser Datei, ist die Pr&uuml;fsumme nicht mehr die
- gleiche und ein einfacher Vergleich erm&ouml;glicht das
- Erkennen des Unterschieds.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich tat, was ihr zum &Uuml;bersetzen von Ports von der
- CD-ROM geschrieben habt und es funktionierte auch prima, bis ich
- zum Port <application>Kermit</application> kam.</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-&gt;&gt; cku190.tar.gz doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.</screen>
-
- <para>Warum kann die Datei nicht gefunden werden? Habe ich
- eine kaputte CD-ROM?</para>
- </question>
-
- <answer>
- <para>Wie im Abschnitt <link linkend="ports-cd">Installation von
- CD-ROM</link> erl&auml;utert, d&uuml;rfen einige Ports wegen
- Lizenz-Beschr&auml;nkungen nicht auf CD-ROM ver&ouml;ffentlicht
- werden. <application>Kermit</application> ist ein solches
- Beispiel. Die Lizenz-Bestimmungen
- verbieten uns das Brennen des Tarballs auf CD-ROM, leider
- m&uuml;ssen Sie es sich von Hand aus dem Netz
- herunterladen &ndash; sorry!</para>
-
- <para>Der Grund f&uuml;r die ganzen Fehlermeldungen liegt darin,
- dass Sie zu diesem Zeitpunkt nicht mit dem Internet verbunden
- waren. Haben Sie den Tarball von einer der
- <makevar>MASTER_SITES</makevar> (aufgef&uuml;hrt im
- <filename>Makefile</filename>) gezogen, k&ouml;nnen Sie die
- Installation erneut starten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Das habe ich getan, aber als ich ihn in das Verzeichnis
- <filename>/usr/ports/distfiles</filename> legen wollte, erhielt
- ich eine Fehlermeldung bez&uuml;glich der Zugriffsrechte.</para>
- </question>
-
- <answer>
- <para>Der Port-Mechanismus versucht heruntergeladene Tarballs in
- <filename>/usr/ports/distfiles</filename> abzulegen. Dieses
- Verzeichnis verweist aber oft auf ein Verzeichnis eines
- Fileservers oder eine CD-ROM, die nur gelesen werden
- k&ouml;nnen. Wenn dies der Fall ist, k&ouml;nnen Sie einen
- anderen Ort zum Speichern der Tarballs angeben:</para>
-
- <screen>&prompt.root; <userinput>make DISTDIR=<replaceable>/Verzeichnis/mit/Schreibberechtigung</replaceable> install</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Funktioniert das Konzept der Ports nur, wenn alles in
- <filename>/usr/ports</filename> abl&auml;uft? Mein
- Systemadministrator sagt, dass ich alles unter
- <filename>/u/people/guests/wurzburger</filename> haben
- muss, aber das scheint nicht zu klappen.</para>
- </question>
-
- <answer>
- <para>Die Variablen <makevar>PORTSDIR</makevar> und
- <makevar>PREFIX</makevar> legen die Verzeichnisse fest, die das
- Ports-System benutzt.</para>
-
- <screen>&prompt.root; <userinput>make PORTSDIR=/u/people/guests/wurzburger/ports install</userinput></screen>
-
- <para>Der obige Befehl &uuml;bersetzt den Port in
- <filename>/u/people/guests/wurzburger/ports</filename> und
- installiert alles unter <filename>/usr/local</filename>. Der
- folgende Befehl kompiliert in <filename>/usr/ports</filename>
- und installiert den Port in
- <filename>/u/people/guests/wurzburger/local</filename>:</para>
-
- <screen>&prompt.root; <userinput>make PREFIX=/u/people/guests/wurzburger/local install</userinput></screen>
-
- <para>Sie k&ouml;nnen beide Variablen auch zusammen benutzen:</para>
-
- <screen>&prompt.root; <userinput>make PORTSDIR=../ports PREFIX=../local install</userinput></screen>
-
- <para>Die Kommandozeile ist zu lang, um es hier komplett
- wiederzugeben, aber Sie sollten die zugrunde liegende Idee
- erkennen.</para>
-
- <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>
-
- <para>Wenn Sie keine Lust haben, dies jedes Mal zu tippen,
- sollten Sie diese Variablen als Umgebungsvariablen setzen.
- Lesen Sie die Manualpage Ihrer Shell, um zu erfahren, wie man
- das anstellt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich habe keine FreeBSD CD-ROM, w&uuml;rde aber gerne die
- Tarballs auf meinem Rechner liegen haben, damit ich nicht
- jedes Mal auf das Herunterladen warten muss, wenn ich mal einen
- Port installieren will. Gibt es einen Weg, alle auf einmal
- zu holen?</para>
- </question>
-
- <answer>
- <para>Um jeden einzelnen Tarball f&uuml;r die Ports-Sammlung zu
- holen geben Sie ein:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make fetch</userinput></screen>
-
- <para>F&uuml;r alle Tarballs eines Ports-Verzeichnis:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>Verzeichnis</replaceable></userinput>
-&prompt.root; <userinput>make fetch</userinput></screen>
-
- <para>und f&uuml;r nur einen Port &ndash; gut, das haben Sie sicher
- schon erraten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich wei&szlig;, das es wohl schneller geht, wenn ich die
- Tarballs von einem FreeBSD Spiegel in der N&auml;he hole. Kann
- ich sagen, dass andere als in MASTER_SITES angegebene
- Server genommen werden sollen?</para>
- </question>
-
- <answer>
- <para>Ja. Zum Beispiel, wenn <hostid
- role="fqdn">ftp.FreeBSD.org</hostid> n&auml;her bei Ihnen
- ist, als der in <makevar>MASTER_SITES</makevar> angegebene,
- machen Sie das wie folgt:</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>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich w&uuml;rde gerne vorher wissen, welche Dateien
- <command>make</command> holen wird, bevor es das versucht.</para>
- </question>
-
- <answer>
- <para><command>make fetch-list</command> gibt aus, welche Dateien
- f&uuml;r den Port ben&ouml;tigt werden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Gibt es einen Weg einen Port am Kompilieren zu hindern? Ich
- m&ouml;chte gerne vor der Installation etwas im Quellcode hacken.
- Es ist aber etwas nervig, immer aufzupassen und im richtigen
- Moment mit
- <keycombo action="simul">
- <keycap>Ctrl</keycap>
- <keycap>C</keycap>
- </keycombo>
- abzubrechen.</para>
- </question>
-
- <answer>
- <para>Die Eingabe von <command>make extract</command> erreicht,
- dass der Port Quellcode nur geholt und entpackt wird.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich versuche einen eigenen Port zu erstellen und will,
- dass der Port vor dem &Uuml;bersetzen anh&auml;lt, damit
- ich eine Chance habe zu sehen, ob meine Patches sauber
- funktionieren. Gibt es etwas wie <command>make
- extract</command> f&uuml;r Patches?</para>
- </question>
-
- <answer>
- <para>Klar, <command>make patch</command> ist alles was Sie
- w&uuml;nschen. Sie werden wahrscheinlich die Variable
- <makevar>PATCH_DEBUG</makevar> auch recht n&uuml;tzlich finden.
- Ach ja, und vielen Dank f&uuml;r Ihre Bem&uuml;hungen!</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Stimmt es, dass einige Compiler Fehler machen? Wie
- kann ich sicher gehen, dass ich mit den richtigen
- Einstellungen &uuml;bersetze?</para>
- </question>
-
- <answer>
- <para>Ja, in der Version 2.6.3 des <command>gcc</command> (diese
- Version ist bei FreeBSD&nbsp;2.1.0 und 2.1.5 dabei) kann die Option
- <option>-O2</option> fehlerhafte Ergebnisse liefern, sofern man
- nicht auch die Option <option>-fno-strength-reduce</option>
- benutzt. (Die meisten Ports benutzen <option>-O2</option>
- nicht). Sie <emphasis>sollten</emphasis> die Compiler-Optionen
- etwa wie folgt spezifizieren k&ouml;nnen:</para>
-
- <screen>&prompt.root; <userinput>make CFLAGS='-O2 -fno-strength-reduce' install</userinput></screen>
-
- <para>Die Compiler-Optionen k&ouml;nnen Sie auch in
- <filename>/etc/make.conf</filename> angeben,
- allerdings beachten das nicht alle Ports. Der sicherste Weg ist,
- nach einem <command>make configure</command> in das Verzeichnis
- mit dem Quellcode zu gehen und dort die
- <filename>Makefile</filename>s von Hand zu
- untersuchen. Das kann aber sehr m&uuml;hselig werden, da es
- oft sehr viele Unterverzeichnisse mit eigenen
- <filename>Makefile</filename>s geben
- kann.</para>
-
- <para>Die bei FreeBSD voreingestellten Compiler Optionen sind
- recht konservativ, Sie sollten eigentlich keine Probleme
- bekommen, wenn Sie diese nicht ver&auml;ndert haben.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Das sind aber ganz sch&ouml;n viele Ports und es ist nicht
- leicht, den einen zu finden, den ich gerade m&ouml;chte. Gibt es
- eine Liste der erh&auml;ltlichen Ports?</para>
- </question>
-
- <answer>
- <para>Schauen Sie in die Datei <filename>INDEX</filename> im
- Verzeichnis <filename>/usr/ports</filename>. Sie k&ouml;nnen
- auch die Ports-Sammlung nach einem Stichwort durchsuchen.
- Wollen Sie zum Beispiel alle Ports finden, die mit der
- Programmiersprache LISP zu tun haben, geben Sie ein:</para>
-
- <screen>&prompt.user; <userinput>cd /usr/ports</userinput>
-&prompt.user; <userinput>make search key=lisp</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Als ich den Port <literal>bla</literal> installieren
- wollte, h&ouml;rt das System auf einmal mit dem Kompilieren auf
- und fing an, den Port <literal>s&uuml;lz</literal> zu
- erstellen. Was ist hier los?</para>
- </question>
-
- <answer>
- <para>Der Port <literal>bla</literal> braucht etwas aus dem
- Port <literal>s&uuml;lz</literal> &ndash; beispielsweise,
- wenn <literal>bla</literal> Grafik benutzt, k&ouml;nnte der Port
- <literal>s&uuml;lz</literal> eine Bibliothek mit
- n&uuml;tzlichen grafischen Routinen enthalten. Oder
- <literal>s&uuml;lz</literal> k&ouml;nnte ein Werkzeug sein, das zum
- &Uuml;bersetzen des Ports <literal>bla</literal> notwendig
- ist. Wenn <literal>s&uuml;lz</literal> einmal installiert ist,
- sollte das System mit dem Bau von <literal>bla</literal>
- fortfahren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para id="ports-remove"> Ich habe aus der Ports-Sammlung die
- Anwendung <literal>grizzle</literal> installiert und nun
- festgestellt, dass es reine Verschwendung von Plattenplatz
- ist. Ich will ihn wieder l&ouml;schen, wei&szlig; aber nicht
- wohin der Port seine Dateien installiert hat. Tips?</para>
- </question>
-
- <answer>
- <para>Alles kein Problem, tippen Sie einfach:</para>
-
- <screen>&prompt.root; <userinput>pkg_delete grizzle-6.5</userinput></screen>
-
- <para>Sie k&ouml;nnen alternativ auch eingeben:</para>
-
- <screen>&prompt.root; <userinput>cd <replaceable>/usr/ports/somewhere/grizzle</replaceable></userinput>
-&prompt.root; <userinput>make deinstall</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Moment, man muss die Versionsnummer wissen, um das
- Kommando benutzen zu k&ouml;nnen. Es wird aber nicht wirklich
- erwartet, dass ich mich daran noch erinnere, oder?</para>
- </question>
-
- <answer>
- <para>Nein, Sie finden diese Nummer durch folgende Eingabe
- heraus:</para>
-
- <screen>&prompt.root; <userinput>pkg_info -a | grep 'grizzle*'</userinput>
-Information for grizzle-6.5:
-grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up
-arcade game.</screen>
-
- <para>Die Versionsnummer finden Sie auch mit
- <command>pkg_info</command> heraus, oder indem Sie
- <command>ls /var/db/pkg</command> eingeben.</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Apropos Plattenplatz, die Ports-Sammlung scheint recht viel
- Platz einzunehmen. Ist es gef&auml;hrlich darin
- Sachen zu l&ouml;schen?</para>
- </question>
-
- <answer>
- <para>Nun, wenn Sie Anwendungen installiert haben und sicher sind,
- dass Sie den Quellcode nicht ben&ouml;tigen, gibt es
- keinen Grund diesen herumliegen zu haben. Der sicherste Weg
- aufzur&auml;umen ist:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make clean</userinput></screen>
-
- <para>Das geht durch alle Ports-Verzeichnisse und l&ouml;scht
- f&uuml;r jeden Port alles bis auf das Ger&uuml;st.</para>
-
- <tip><para>Dasselbe k&ouml;nnen Sie auch erreichen, ohne
- rekursiv jedes <filename>Makefile</filename> aufzurufen. Die
- <filename>work/</filename> Verzeichnisse k&ouml;nnen Sie auch
- mit dem folgenden Kommando l&ouml;schen:
- <screen>&prompt.root; <userinput>find /usr/ports -depth -name work -exec rm -rf {} \;</userinput></screen></para>
- </tip>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Das habe ich probiert, aber da liegen immer noch diese
- Tarballs (oder wie die genannt werden) im Verzeichnis
- <filename>distfiles</filename> herum. Darf ich die auch
- l&ouml;schen?</para>
- </question>
-
- <answer>
- <para>Ja, wenn Sie mit denen fertig sind, k&ouml;nnen die auch
- verschwinden. Man kann sie von Hand l&ouml;schen oder das
- Kommando <command>make distclean</command> benutzen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich finde es toll, tierisch viele Anwendungen zu haben und
- damit rumzuspielen. Gibt es einen Weg alle Ports auf einmal
- zu installieren?</para>
- </question>
-
- <answer>
- <para>Machen Sie einfach:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make install</userinput></screen>
-
- <para>Vorsicht: Einige Ports k&ouml;nnten Dateien mit dem
- gleichen Namen installieren. Wenn man zwei grafische Ports
- installiert und beide eine Datei
- <filename>/usr/local/bin/plot</filename> anlegen, haben Sie
- ein Problem.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Okay, das habe ich gemacht und da ich dachte, dass das
- sicherlich ziemlich lange dauert, ging ich zu Bett. Als ich heute
- morgen zum Computer kam, waren erst dreieinhalb Ports
- installiert. Hat da etwas nicht geklappt?</para>
- </question>
-
- <answer>
- <para>Nein, das Problem ist, dass es Ports gibt, die Ihnen
- Fragen stellen, auf die wir die Antworten nicht f&uuml;r Sie
- geben konnten (z.B. <quote>Drucken Sie auf Papier im A4 oder US
- Letter Format?</quote>). In solchen F&auml;llen muss
- jemand da sein und die Fragen beantworten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich m&ouml;chte aber nicht wirklich einen ganzen Tag damit
- verbringen, auf den Monitor zu starren. Irgendeine bessere
- Idee?</para>
- </question>
-
- <answer>
- <para>Klar, bevor Sie zu Bett/zur Arbeit/in den Park gehen,
- geben Sie ein:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make -DBATCH install</userinput></screen>
-
- <para>Das installiert Ihnen alle Ports, die
- <emphasis>keine</emphasis> Eingaben des Benutzers erfordern.
- Die restlichen Ports installieren Sie, wenn Sie zur&uuml;ck
- sind, mit dem Kommando:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make -DINTERACTIVE install</userinput></screen>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Auf der Arbeit benutzen wir die Anwendung
- <literal>frobble</literal>, die in der Ports-Sammlung ist. Wir
- haben sie aber etwas auf unsere Bed&uuml;rfnisse angepasst.
- K&ouml;nnen wir irgendwie ein eigenes Paket erstellen, so
- dass wir die Anwendung leichter auf unsere Rechner
- verteilen k&ouml;nnen?</para>
- </question>
-
- <answer>
- <para>Kein Problem. Angenommen Sie wissen, wie Sie f&uuml;r Ihre
- Anpassungen Patches erzeugen:</para>
-
- <screen>&prompt.root; <userinput>cd <replaceable>/usr/ports/somewhere/frobble</replaceable></userinput>
-&prompt.root; <userinput>make extract</userinput>
-&prompt.root; <userinput>cd work/frobble-2.8</userinput>
-[Ihre patche einspielen]
-&prompt.root; <userinput>cd ../..</userinput>
-&prompt.root; <userinput>make package</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Diese Geschichte mit den Ports ist wirklich clever. Ich
- habe keine Ahnung, wie ihr das hinbekommen habt. Was ist das
- Geheimnis dahinter?</para>
- </question>
-
- <answer>
- <para>Keine Geheimnisse. Sehen Sie einfach in die Dateien
- <filename>bsd.port.mk</filename> und
- <filename>bsd.port.subdir.mk</filename> im Verzeichnis
- <filename>/usr/ports/Mk/</filename>.</para>
-
- <para>Lesern mit einer Aversion gegen komplizierte Shell-Skripten
- wird geraten, dieses Verzeichnis nicht zu besuchen.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect2>
-
- <sect2 id="ports-broken">
- <title>Hilfe! Dieser Port ist kaputt!</title>
+ <sect1 id="ports-broken">
+ <title>Kaputte Ports</title>
- <para>Stolpern Sie mal &uuml;ber einen Port, der bei Ihnen nicht
- funktioniert, k&ouml;nnten Sie zum Beispiel Folgendes tun:</para>
+ <para>Stolpern Sie mal &uuml;ber einen Port, der bei Ihnen nicht
+ funktioniert, k&ouml;nnten Sie zum Beispiel Folgendes tun:</para>
- <orderedlist>
- <listitem>
- <para>Reparieren Sie ihn! Das <ulink
- url="../../../../doc/en_US.ISO8859-1/books/porters-handbook/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>
+ <orderedlist>
+ <listitem>
+ <para>Reparieren Sie ihn! Das <ulink
+ url="../../../../doc/en_US.ISO8859-1/books/porters-handbook/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>Rummeckern &ndash; <emphasis>nur mittels E-Mail</emphasis>!
- Senden Sie zuerst eine E-Mail an den Betreuer des Ports. 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>&dollar;FreeBSD:</literal> aus dem
- <filename>Makefile</filename>)
- und die Ausgabe bis zur Fehlermeldung mitzuschicken. Erhalten
- Sie vom Betreuer keine Resonanz, k&ouml;nnen mit
- &man.send-pr.1; einen Fehler-Report senden.</para>
- </listitem>
+ <listitem>
+ <para>Rummeckern &ndash; <emphasis>nur mittels E-Mail</emphasis>!
+ Senden Sie zuerst eine E-Mail an den Betreuer des Ports. 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>&dollar;FreeBSD:</literal> aus dem
+ <filename>Makefile</filename>)
+ und die Ausgabe bis zur Fehlermeldung mitzuschicken. Erhalten
+ Sie vom Betreuer keine Resonanz, k&ouml;nnen mit
+ &man.send-pr.1; einen Fehler-Report senden.</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
+ <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 Spiegel in
- Ihrer N&auml;he! 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>
- </sect2>
+ Aber versuchen Sie <emphasis>zuerst</emphasis> einen Spiegel in
+ Ihrer N&auml;he! 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>
<!--
@@ -1641,4 +1255,3 @@ arcade game.</screen>
sgml-parent-document: ("../book.sgml" "part" "chapter")
End:
-->
-