aboutsummaryrefslogtreecommitdiff
path: root/de_DE.ISO_8859-1/books/handbook/ports/chapter.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'de_DE.ISO_8859-1/books/handbook/ports/chapter.sgml')
-rw-r--r--de_DE.ISO_8859-1/books/handbook/ports/chapter.sgml1050
1 files changed, 0 insertions, 1050 deletions
diff --git a/de_DE.ISO_8859-1/books/handbook/ports/chapter.sgml b/de_DE.ISO_8859-1/books/handbook/ports/chapter.sgml
deleted file mode 100644
index 399652b334..0000000000
--- a/de_DE.ISO_8859-1/books/handbook/ports/chapter.sgml
+++ /dev/null
@@ -1,1050 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD German Documentation Project
-
- Original version 1.111
- $FreeBSD: doc/de_DE.ISO_8859-1/books/handbook/ports/chapter.sgml,v 1.1 2000/08/18 12:47:40 alex Exp $
--->
-
-<chapter id="ports">
- <title>Installieren von Anwendungen: Die Ports-Sammlung</title>
-
- <para><emphasis>Neu geschrieben von &a.jim;, 22 November 1999.
- Urspr&uuml;ngliche Version von verschiedenen Leuten.</emphasis></para>
- <para><emphasis>&Uuml;bersetzt von &a.de.pierau, Juli 2000</emphasis></para>
-
- <sect1>
- <title>&Uuml;bersicht</title>
-
- <para>Die FreeBSD Ports-Sammlung erlaubt Ihnen das &Uuml;bersetzen
- und Installieren einer Vielzahl von Anwendungen mit minimalem
- Aufwand.</para>
-
- <para>Ein Port ist gew&ouml;hnlich eine Gruppe von <link
- linkend="ports-skeleton">Ger&uuml;sten</link>, die die minimalen
- Anpassungen enthalten, welche n&ouml;tig sind, damit sich
- eine Anwendung unter FreeBSD &uuml;bersetzen und installieren
- l&auml;&szlig;t.</para>
-
- <para>Trotz des ganzen Geredes von offenen Standards kann es eine
- verzwickte Angelegenheit werden, eine Anwednung unter verschiedenen
- UNIX Versionen zu &uuml;bersetzen. Sie k&ouml;nnen zufrieden sein,
- wenn sich die Anwendung sauber &uuml;bersetzen l&auml;&szlig;t, in die
- richtigen Verzeichnisse installiert und <quote>out-of-the-box</quote>
- fehlerfrei l&auml;uft. Dies wird aber sehr selten vorkommen.
- Die meiste Zeit werden Sie Modifizierungen vornehmen m&uuml;ssen, damit
- die Anwendung funktioniert. An diesem Punkt kommt die Ports-Sammlung
- zum Zuge.</para>
-
- <para>Die Grundidee hinter der Ports-Sammlung ist, all die
- verwirrenden Schritte zu eliminieren, welche n&ouml;tig sind,
- damit alles richtig funktioniert, so da&szlig; die Installation
- einfach und schmerzlos ist. Mit der Ports-Sammlung ist die
- ganze harte Arbeit bereits f&uuml;r Sie getan und Sie brauchen
- zum Installieren eines Ports aus der Ports-Sammlung lediglich
- <command>make install</command> eingeben.</para>
- </sect1>
-
- <sect1 id="ports-using">
- <title>Benutzen der Ports-Sammlung</title>
-
- <para>Die folgenden Abschnitte stellen die grundlegenden Anweisungen
- vor, um Anwendungen aus der Ports-Sammlung auf
- Ihren Rechner zu installieren oder zu l&ouml;schen.</para>
-
- <sect2 id="ports-skeleton">
- <title>Ports installieren</title>
-
- <para>Was ist mit einem <quote>Ger&uuml;st</quote> im Zusammenhang
- mit der Ports-Sammlung gemeint? In aller K&uuml;rze: ein
- Ger&uuml;st eines Ports ist ein minimaler Satz von Dateien, die
- f&uuml;r eine Anwendung ben&ouml;tigt werden, damit es sich
- unter FreeBSD sauber &uuml;bersetzen und installieren
- l&auml;&szlig;t. Ein jeder Port beinhaltet:</para>
-
- <itemizedlist>
- <listitem>
- <para>Eine Datei <filename>Makefile</filename>. Das
- <filename>Makefile</filename> enth&auml;lt verschiedene
- Anweisungen, die spezifizieren, wie die Anwendung kompiliert
- werden und wo sie auf Ihrem System installiert werden
- sollte.</para>
- </listitem>
-
- <listitem>
- <para>Ein Verzeichnis <filename>files</filename>. Dieses
- Verzeichnis enth&auml;lt eine Datei namens
- <filename>md5</filename>. Der Name kommt vom MD5
- Algorithmus, welcher zur Ermittlung der Pr&uuml;fsumme des
- Portes benutzt wird. Eine Pr&uuml;fsumme ist eine Zahl,
- die durch Addition aller Daten einer Datei entsteht.
- &Auml;ndert sich ein Zeichen in der Datei, so weicht die
- Pr&uuml;fsumme vom Original ab und eine Fehlermeldung
- erscheint. Damit sind Sie in der Lage, die Unterschiede zu
- bemerken und zu untersuchen.</para>
-
- <para>Dieses <filename>files</filename> Verzeichnis kann
- noch andere Dateien enthalten, die vom Port ben&ouml;tigt
- werden, aber nicht woanders in die Verzeichnis-Struktur
- geh&ouml;ren.</para>
- </listitem>
-
- <listitem>
- <para>Ein <filename>patches</filename> Verzeichnis. Hierin
- liegen Patches, welche das &Uuml;bersetzen und Installieren
- der Anwendung erm&ouml;glichen. Patches sind im Wesentlichen
- kleine Dateien, die &Auml;nderungen an speziellen Dateien
- s&uuml;zifizieren. Sie liegen als reiner Text vor und sagen
- ungef&auml;hr:
- <quote>L&ouml;sche Zeile 10</quote> oder
- <quote>&Auml;ndere Zeile 26 zu ...</quote>. Patches sind
- auch bekannt unter dem Namen <quote>diffs</quote>, weil
- Sie mit dem Programm <application>diff</application>
- erstellt werden.</para>
- </listitem>
-
- <listitem>
- <para>Ein Verzeichnis <filename>pkg</filename>. Dieses
- enth&auml;lt normalerweise drei Dateien. Gelegentlich sind
- es auch mehr, das h&auml;ngt vom Port ab. Die meisten
- Ports erfordern nur drei, und zwar diese:</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>COMMENT</filename>. Eine einzeilige
- Beschreibung der Anwendung.</para>
- </listitem>
-
- <listitem>
- <para><filename>DESCR</filename>. Eine
- ausf&uuml;hrlichere oft mehrzeilige Beschreibung der
- Anwendung.</para>
- </listitem>
-
- <listitem>
- <para><filename>PLIST</filename>. Das ist eine Liste
- aller Dateien, die durch diesen Port installiert
- werden. Au&szlig;erdem sind hier Informationen enthalten,
- die bei der Deinstallation des Ports ben&ouml;tigt werden.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
-
- <para>Nun haben Sie genug Hintergrund Informationen &uuml;ber
- die Ports-Sammlung und Sie k&ouml;nnen Ihren ersten Port
- installieren. Es gibt dazu zwei M&ouml;glichkeiten, beide
- werden im Folgenden erl&auml;utert.</para>
-
- <para>Bevor Sie damit beginnen, m&uuml;ssen Sie sich nat&uuml;rlich
- einen Port zum Installieren aussuchen. Sie k&ouml;nnen
- dazu mehrere Wege gehen, als einfachste Methode gibt es die
- <ulink url="http://www.freebsd.org/ports/">Liste der Port auf
- dem FreeBSD Web-Server</ulink>. Sie k&ouml;nnen dort Suchen
- oder in der Liste schm&ouml;kern. Jeder Port enth&auml;lt
- au&szlig;erdem eine Beschreibung, so da&szlig; Sie sich vor der
- Entscheidung, welchen Port Sie installieren wollen, &uuml;ber den Port
- informieren k&ouml;nnen.</para>
-
- <para>Eine andere Methode bietet das Kommando <command>whereis</command>.
- Um <command>whereis</command> zu benutzen, geben Sie einfach
- <quote><command>whereis &lt;Programm, da&szlig; Sie
- installieren m&ouml;chten&gt;</command></quote> ein. Wenn es auf
- Ihrem System gefunden wird, wird das wie im folgenden Beispiel anzeigt:
- </para>
-
- <screen>&prompt.root; <userinput>whereis xchat</userinput>
-xchat: /usr/ports/irc/xchat
-&prompt.root;</screen>
-
- <para>Dies sagt uns, da&szlig; xchat (ein IRC-Client) im
- Verzeichnis <filename>/usr/ports/irc/xchat</filename>
- gefunden werden kann.</para>
-
- <para>Ein noch anderer Weg, einen bestimmten Port zu finden ist,
- die eingebaute Suchfunktion der Ports-Sammlung zu benutzen.
- Dazu m&uuml;ssen Sie im Verzeichnis <filename>/usr/ports</filename>
- sein. Darin geben Sie ein
- <command>make search key=Anwendungsname</command> worin
- <quote>Anwendungsname</quote> der Name der von Ihnen gesuchten
- Anwendung ist. Wenn Sie zum Beispiel nach xchat suchten:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make search key=xchat</userinput>
-Port: xchat-1.3.8
-Path: /usr/ports/irc/xchat
-Info: An X11 IRC client using the GTK+ toolkit, and optionally, GNOME
-Maint: jim@FreeBSD.org
-Index: irc
-B-deps: XFree86-3.3.5 bzip2-0.9.5d gettext-0.10.35 giflib-4.1.0 glib-1.2.6 gmake-3.77 gtk-1.2.6
- imlib-1.9.8 jpeg-6b png-1.0.3 tiff-3.5.1
-R-deps: XFree86-3.3.5 gettext-0.10.35 giflib-4.1.0 glib-1.2.6 gtk-1.2.6 imlib-1.9.8 jpeg-6b
- png-1.0.3 tiff-3.5.1</screen>
-
- <para>Der Teil der Ausgabe der Sie interessiert ist die Zeile, die
- mit <quote>Path:</quote> beginnt, weil sie Ihnen sagt, wo der Port
- zu finden ist. Die anderen Informationen werden zum Installieren
- des Ports nicht direkt ben&ouml;tigt, Sie brauchen sich darum
- jetzt nicht weiter zu k&uuml;mmern.</para>
-
- <note>
- <para>Zum Installieren von Ports m&uuml;ssen Sie als Benutzer
- <username>root</username> angemeldet sein.</para>
- </note>
-
- <para>Jetzt, wo Sie den gew&uuml;nschten Port gefunden haben, kann es
- mit der eigentlichen Installation losgehen.</para>
-
- <sect3 id="ports-cd">
- <title>Installation von einer CDROM</title>
-
- <para>Wie Sie schon vermuten, geht dieser Abschnitt davon aus,
- da&szlig; Sie eine FreeBSD-CDROM Zusammenstellung haben.
- Wenn nicht, k&ouml;nnen Sie eine bei <ulink
- url="http://www.freebsdmall.com/">FreeBSD Mall</ulink>
- bestellen.</para>
-
- <para>Angenommen Ihre FreeBSD-CDROM ist im Laufwerk und nach
- <filename>/cdrom</filename> eingebunden (und der Mount Punkt
- <emphasis>mu&szlig;</emphasis> das Verzeichnis
- <filename>/cdrom</filename> sein), kann es mit dem Installieren
- von Port losgehen. Zu Beginn gehen Sie in das Verzeichnis des
- Portes, welchen Sie installieren m&ouml;chten:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/irc/xchat</userinput></screen>
-
- <para>Im Verzeichnis xchat kann man das Ger&uuml;st erkennen. Der
- n&auml;chste Schritt ist das &Uuml;bersetzen (auch Bauen genannt)
- des Portes. Dies wird durch Eingabe von <command>make</command>
- getan. Haben Sie das eingegeben, so werden Sie etwas lesen
- wie:</para>
-
-
- <screen>&prompt.root; <userinput>make</userinput>
-&gt;&gt; xchat-1.3.8.tar.bz2 doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from file:/cdrom/ports/distfiles/.
-===&gt; Extracting for xchat-1.3.8
-&gt;&gt; Checksum OK for xchat-1.3.8.tar.bz2.
-===&gt; xchat-1.3.8 depends on executable: bzip2 - found
-===&gt; xchat-1.3.8 depends on executable: gmake - found
-===&gt; xchat-1.3.8 depends on shared library: gtk12.2 - found
-===&gt; xchat-1.3.8 depends on shared library: Imlib.5 - found
-===&gt; xchat-1.3.8 depends on shared library: X11.6 - found
-===&gt; Patching for xchat-1.3.8
-===&gt; Applying FreeBSD patches for xchat-1.3.8
-===&gt; Configuring for xchat-1.3.8
-...
-[configure-Ausgabe weggelassen]
-...
-===&gt; Building for xchat-1.3.8
-...
-[Ausgabe der &Uuml;bersetzung weggelassen]
-...
-&prompt.root;</screen>
-
- <para>Ist die &Uuml;bersetzungsprozedur beendet, sind Sie wieder
- in der Kommandozeile und der n&auml;chste Schritt ist das
- Installieren. Dazu h&auml;ngen Sie einfach ein Wort an das
- <command>make</command>-Kommando, und dieses Wort ist
- <command>install</command>:</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-===&gt; Installing for xchat-1.3.8
-===&gt; xchat-1.3.8 depends on shared library: gtk12.2 - found
-===&gt; xchat-1.3.8 depends on shared library: Imlib.5 - found
-===&gt; xchat-1.3.8 depends on shared library: X11.6 - found
-...
-[Ausgabe der Installation weggelassen]
-...
-===&gt; Generating temporary packing list
-===&gt; Installing xchat docs in /usr/X11R6/share/doc/xchat
-===&gt; Registering installation for xchat-1.3.8
-&prompt.root;</screen>
-
- <para>Wenn Sie wieder den Prompt haben, sollte Sie in der Lage
- sein, die gerade in stallierte Anwendung laufen zu lassen.</para>
-
- <note>
- <para>Sie k&ouml;nnen einen Schritt sparen, wenn Sie gleich
- <command>make install</command> anstatt von
- <command>make</command> und dem anschlie&szlig;enden
- <command>make install</command> eingeben.</para>
- </note>
-
- <note>
- <para>Beachten Sie bitte, da&szlig; die Lizenzen einiger Ports
- die Einbeziehung auf der CDROM verbieten. Das k&ouml;nnte
- aufgrund verschiedenster Gr&uuml;nde der Fall sein, beispielsweise
- weil man sich vor dem Herunterladen registrieren lassen
- mu&szlig; oder eine Weiterverteilung verboten ist u.s.w.
- W&uuml;nschen Sie einen Port zu installieren, der nicht auf
- der CDROM enthalten ist, so m&uuml;ssen Sie online gehen und
- mit Hilfe <link linkend="ports-inet"> des n&auml;chsten
- Abschnitts </link> den Port installieren.</para>
- </note>
- </sect3>
-
- <sect3 id="ports-inet">
- <title>Port vom Internet installieren</title>
-
- <para>Dieser Abschnitt setzt voraus, da&szlig; Sie eine Verbindung
- mit dem Internet haben. Haben Sie dies nicht, m&uuml;ssen Sie
- eine <link linkend="ports-cd">CDROM Installation</link>
- durchf&uuml;hren.</para>
-
- <para>Das Installieren eines Ports vom Internet wird genau so
- durchgef&uuml;hrt wie das Installieren von CDROM. Der einzige
- Unterschied zwischen beiden ist, da&szlig; der Quellcode der
- Anwendung vom Internet heruntergeladen und nicht von der CDROM
- genommen wird.</para>
-
- <para>Die durchgef&uuml;hrten Schritte sind identisch:</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-&gt;&gt; xchat-1.3.8.tar.bz2 doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from http://xchat.org/files/v1.3/.
-Receiving xchat-1.3.8.tar.bz2 (305543 bytes): 100%
-305543 bytes transferred in 2.9 seconds (102.81 Kbytes/s)
-===&gt; Extracting for xchat-1.3.8
-&gt;&gt; Checksum OK for xchat-1.3.8.tar.bz2.
-===&gt; xchat-1.3.8 depends on executable: bzip2 - found
-===&gt; xchat-1.3.8 depends on executable: gmake - found
-===&gt; xchat-1.3.8 depends on shared library: gtk12.2 - found
-===&gt; xchat-1.3.8 depends on shared library: Imlib.5 - found
-===&gt; xchat-1.3.8 depends on shared library: X11.6 - found
-===&gt; Patching for xchat-1.3.8
-===&gt; Applying FreeBSD patches for xchat-1.3.8
-===&gt; Configuring for xchat-1.3.8
-...
-[configure-Ausgabe weggelassen]
-...
-===&gt; Building for xchat-1.3.8
-...
-[Ausgabe der &Uuml;bersetzung weggelassen]
-...
-===&gt; Installing for xchat-1.3.8
-===&gt; xchat-1.3.8 depends on shared library: gtk12.2 - found
-===&gt; xchat-1.3.8 depends on shared library: Imlib.5 - found
-===&gt; xchat-1.3.8 depends on shared library: X11.6 - found
-...
-[Ausgabe der Installation weggelassen]
-...
-===&gt; Generating temporary packing list
-===&gt; Installing xchat docs in /usr/X11R6/share/doc/xchat
-===&gt; Registering installation for xchat-1.3.8
-&prompt.root;</screen>
-
- <para>Wie Sie sehen k&ouml;nnen, besteht der einzige Unterschied in
- der Zeile, die Ihnen sagt, woher das System den Quellcode
- herholt.</para>
-
- <para>Obiges erkl&auml;rte Ihnen, wie Sie Ports auf Ihrem Computer
- installieren k&ouml;nnen. Hiernach lernen Sie, wie Sie einen
- Port wieder von Ihrem System l&ouml;schen.</para>
- </sect3>
- </sect2>
-
- <sect2 id="ports-removing">
- <title>Entfernen installierter Ports</title>
-
- <para>Da Sie nun wissen, wie man einen Port installiert, wollen Sie
- sicher auch wissen, wie man einen Port deinstalliert, f&uuml;r den
- Fall, da&szlig; Sie versehentlich einen Falschen installiert haben.
- Die n&auml;chsten Abschitte decken genau dieses Thema ab.</para>
-
- <para>Nun wollen wir mal unser vorheriges Beispiel wieder
- l&ouml;schen (f&uuml;r alle die nicht aufgepa&szlig;t haben, da&szlig;
- war xchat). Wie beim Installieren geht man zuerst in das
- Verzeichnis des Portes, wie Sie sich erinnern werden war das
- <filename>/usr/ports/irc/xchat</filename>. Danach ist man
- in der Lage den Port zu deinstallieren. Dies wird mit dem
- Kommando <command>make deinstall</command> getan (erscheint
- sinnvoll, oder?):</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/irc/xchat</userinput>
-&prompt.root; <userinput>make deinstall</userinput>
-===&gt; Deinstalling for xchat-1.3.8
-&prompt.root;</screen>
-
- <para>Das war leicht. Sie haben jetzt die F&auml;higkeit, xchat
- von Ihrem System zu entfernen. M&ouml;chten Sie den Port doch
- wieder neu installieren, geben Sie
- <command>make reinstall</command> im Verzeichnis
- <filename>/usr/ports/irc/xchat</filename> ein.</para>
- </sect2>
- </sect1>
-
- <sect1 id="ports-trouble">
- <title>Fehlersuche und -behebung</title>
-
- <para>Die folgenden Zeilen beschreiben 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. port). Wir
- benutzen hier <quote>Port</quote> als Ergebnis des
- <quote>Portierens</quote> einer Anwendung von einer UNIX-Variante
- zu einer anderen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich dachte man soll Packete (packages) benutzen, um
- zus&auml;tzliche Anwendungen zu installieren?</para>
- </question>
-
- <answer>
- <para>Ja, das ist gew&ouml;hnlich der schnellste und einfachste
- Weg.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Warum dann mit den Ports herumplagen?</para>
- </question>
-
- <answer>
- <para>Aus verschiedenen Gr&uuml;nden:</para>
-
- <orderedlist>
- <listitem>
- <para>Die Lizenz-Bestimmungen einiger Software verbietet
- Verteilung in bin&auml;rer Form. Diese mu&szlig; als
- Quellcode verteilt werden.</para>
- </listitem>
-
- <listitem>
- <para>Einige Leute vertrauen bereits kompilierter Software
- nicht. Mit dem Quellcode haben sie zumindest (in der
- Theorie) die M&ouml;glichkeit, sich den Code anzusehen und
- nach potentiellen Problemen f&uuml;r sich zu suchen.</para>
- </listitem>
-
- <listitem>
- <para>Haben Sie eigene Anpassungen, so ben&ouml;tigen Sie den
- Quellcode, um diese vornehmen zu k&ouml;nnen.</para>
- </listitem>
-
- <listitem>
- <para>Sie k&ouml;nnten andere Ansichten dar&uuml;ber haben,
- wie eine Anwendung &uuml;bersetzt werden soll, als die Person
- welche das Package erstellt hat&mdash; einige Leute haben
- strenge Ansichten dr&uuml;ber, welche Optimierung benutzt,
- ob eine Debug-Version erstellt oder ob anschlie&szlig;end
- <command>strip</command> benutzt werden soll und so
- weiter.</para>
- </listitem>
-
- <listitem>
- <para>Packages werden normalerweise mit recht konservativen
- Einstellungen erstellt. Wenn ein Port spezielle Optionen
- f&uuml;r einen speziellen Prozessor oder eine besondere
- Karte in Ihrem Rechner hat, k&ouml;nnen Sie diese immer
- benutzen und die Ersteller der Packages m&uuml;ssen nicht
- sehr viele verschiedene davon bereitstellen.</para>
-
- <para>Die verbreiteste Ausnahme von dieser Regel ist das
- Papierformat. Unterst&uuml;tzt ein Port von Haus aus
- verschieden Formate, stellen wir auch verschiedene
- packages bereit, eins pro Papierformat.</para>
- </listitem>
-
- <listitem>
- <para>Manche Menschen haben gerne Quellcode rumliegen, um
- darin zu lesen, wenn ihnen langweilig ist, drin rumzuhacken,
- sich etwas auszuleihen (nat&uuml;rlich, wenn es die Lizenz
- erlaubt) und so weiter.</para>
- </listitem>
-
- <listitem>
- <para>Hast Du keinen Quellcode, ist es keine Software!
- <!-- smiley -->;-)</para>
- </listitem>
- </orderedlist>
- </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 468an </quote>,
- oder <quote>&auml;ndere Zeile 197 hierzu</quote>. Sie sind
- auch bekannt als diffs, weil sie mit der Anwendung
- <application>diff</application> erstellt werden.</para>
- </answer>
- </qandaentry>
-
- <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 selber hineinsehen, was f&uuml;r Dateien
- darin sind oder diese auspacken, indem Sie das UNIX-Programm
- <application>tar</application> benutzen. Dies ist auch bei
- FreeBSD dabei. 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>
-
- <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 Unterschiedes.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich tat, was ihr zum &Uuml;bersetzen von Ports von der
- CDROM geschrieben habt und es funktionierte auch prima, bis ich
- zum Port kermit 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
- CDROM?</para>
- </question>
-
- <answer>
- <para>Wie im Abschnitt <link linkend="ports-cd">Installation von
- CDROM</link> erl&auml;utert, d&uuml;rfen einige Ports wegen
- Lizenz-Beschr&auml;nkungen nicht auf CDROM ver&ouml;ffentlicht
- werden. Kermit ist ein solches Beispiel. Die Lizenz-Bestimmungen
- verbieten uns das Brennen des tarballs auf CDROM, leider
- m&uuml;ssen Sie es sich von Hand aus dem Netz
- Herunterladen&mdash;sorry!</para>
-
- <para>Der Grund f&uuml;r die ganzen Fehlermeldungen liegt darin,
- da&szlig; Sie zu diesem Zeitpunkt nicht mit dem Internet verbunden
- waren. Haben Sie den tarball von einer der MASTER_SITES
- (aufgef&uuml;hrt im Makefile) gezogen, k&ouml;nnen Sie die
- Installation erneut starten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Das habe ich getan, aber als ich ihn ins Verzeichnis
- <filename>/usr/ports/distfiles</filename> legen wollte, erhielt
- ich eine Fehlermeldung bez&uuml;glich der Zugriffsrechte.</para>
- </question>
-
- <answer>
- <para>Der Ports Mechanimus sucht den tarball in
- <filename>/usr/ports/distfiles</filename>, aber Sie konnten ihn
- dort nicht hinkopieren, da dieses Verzeichnis auf die CDROM
- zeigt, die man nur gelesen kann. Sie k&ouml;nnen eine andere
- Stelle angeben, indem Sie eingeben:</para>
-
- <screen>&prompt.root; <userinput>make DISTDIR=<replaceable>/wohin/Sie/es/legten</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, da&szlig; ich alles unter
- <filename>/u/people/guests/wurzburger</filename> haben
- mu&szlig;, aber das scheint nicht klappen.</para>
- </question>
-
- <answer>
- <para>Sie k&ouml;nnen die Variablen <makevar>PORTSDIR</makevar>
- und <makevar>PREFIX</makevar> benutzen, um dem Ports-System zu
- sagen, da&szlig; es andere Verzeichnisse nutzen soll. Zum
- Beispiel w&uuml;rde,</para>
-
- <screen>&prompt.root; <userinput>make PORTSDIR=/u/people/guests/wurzburger/ports install</userinput></screen>
-
- <para>den Port in
- <filename>/u/people/guests/wurzburger/ports</filename>
- kompilieren und alles unter <filename>/usr/local</filename>
- installieren.</para>
-
- <screen>&prompt.root; <userinput>make PREFIX=/u/people/guests/wurzburger/local install</userinput></screen>
-
- <para>kompiliert in <filename>/usr/ports</filename> und
- installiert ihn in
- <filename>/u/people/guests/wurzburger/local</filename>.</para>
-
- <para>Und nat&uuml;rlich</para>
-
- <screen>&prompt.root; <userinput>make PORTSDIR=../ports PREFIX=../local install</userinput></screen>
-
- <para>kombiniert die beiden Sachen. (Es ist aber ein wenig lang,
- um es hier komplett aufzuschreiben. Sie sollten aber die
- zugrunde liegende Idee erkennen.)</para>
-
- <para>Wenn Sie keine Lust haben, dies jedesmal einzutippen,
- sollten Sie diese Variablen als Umgebungsvariablen setzen.
- Lesen Sie die Man-Page Ihre Shell, um zu erfahren, wie das
- anstellt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich habe keine FreeBSD CDROM, w&uuml;rde aber gerne die
- tarballs auf meinem Rechner liegen haben, damit ich nicht
- jedesmal auf den Downlaod warten mu&szlig;, 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&mdash;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 Mirror in der N&auml;he hole. Kann
- ich sagen, da&szlig; andere als in MASTER_SITES angegebene
- Server genommen werden soll?</para>
- </question>
-
- <answer>
- <para>Ja. Zum Beispiel, wenn <hostid
- role="fqdn">ftp.FreeBSD.org</hostid> bei Ihnen n&auml;her dran
- 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 gern 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;chter gern vor der Installation etwas im Quellcode hacken.
- Es ist aber etwas nervig, immer aufzupassen und im richtigen
- Moment mit Control-C abzubrechen.</para>
- </question>
-
- <answer>
- <para>Die Eingabe von <command>make extract</command> erreicht,
- da&szlig; der Port Quellcode nur geholt und entpackt wird.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich versuche einen eigenen Port zu erstellen und will,
- da&szlig; 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, da&szlig; einige Compiler Fehler machen? Wie
- kann ich sicher gehen, da&szlig; 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 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 spezifieren k&ouml;nnen:</para>
-
- <screen>&prompt.root; <userinput>make CFLAGS='-O2 -fno-strength-reduce' install</userinput></screen>
-
- <para>oder durch editieren von <filename>/etc/make.conf</filename>,
- alleding beachten das nicht alle Ports. Der sicherste Weg ist,
- nach einem <command>make configure</command> ins Verzeichnis
- mit dem Quellcode zu gehen und dort die Makefiles von Hand zu
- untersuchen. Das kann aber sehr m&uuml;hselig werden, da es
- oft sehr viele Unterverzeichnisse mit eigenen Makefiles geben
- kann.</para>
-
- <para>Die bei FreeBSD voreingestellten Compiler Optionen sind
- recht konservativ, so sollten Sie 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, was mit dem
- Port <literal>s&uuml;lz</literal> mitkommt &mdash; beispielsweise,
- wenn <literal>bla</literal> Grafik benutzt wird und der Port
- <literal>s&uuml;lz</literal> k&ouml;nnte dann 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.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para id="ports-remove"> Ich habe aus der Ports-Sammlung die
- Anwendung <literal>grizzle</literal> installiert und nun
- festgestellt, da&szlig; 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, machen Sie nur:</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 mu&szlig; die Versionsnummer wissen, um das
- Kommando benutzen zu k&ouml;nnen. Es wird nicht wirklich
- erwartet, da&szlig; ich mich daran noch erinner, 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>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Apropos Plattenplatz, die Ports-Sammlung scheint recht viel
- Platz einzunehmen. Ist es gef&auml;hrlich dahin zu gehen und
- Sachen zu l&ouml;schen?</para>
- </question>
-
- <answer>
- <para>Nun, wenn Sie Anwendungen installiert haben und sicher sind,
- da&szlig; Sie den Quellcode nicht ben&ouml;tigen, gibt es
- keinen Grund diesen herumliegen zu haben. Der beste Weg zum
- Aufr&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>
- </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, konnen die auch
- verschwinden. Man kann sie von Hand l&ouml;schen 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 ich dachte, da&szlig; das
- sicherlich ziemlich lange dauert, ging 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, da&szlig; 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 mu&szlig;
- 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 ins 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.
- Wenn Sie dann zur&uuml;ck sind, geben Sie ein:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make -DIS_INTERACTIVE install</userinput></screen>
-
- <para>um die Aufgabe zu beenden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Auf der Arbeit benutzen wir die Anwendung
- <literal>frobble</literal>, das in der Ports-Sammlung ist. Wir
- haben das aber etwas auf unsere Bed&uuml;rfnisse angepa&szlig;t.
- K&ouml;nnen wir irgendwie eigene packages erstellen, so
- da&szlig; wir die Anwendung auf unseren Rechnern leichter
- 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> in dem
- <ulink url="file://localhost/usr/ports/Mk/">makefiles
- Verzeichnis</ulink> auf Ihrem Rechner an.</para>
-
- <para>(Lesern mit einer Aversion gegen komplizierte Shell-scripts
- wird geraten, diesen Link nicht zu verfolgen...)</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect2>
-
- <sect2 id="ports-broken">
- <title>Hilfe! Dieser Port ist kaputt!</title>
-
- <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! Der Abschnitt
- <link linkend="porting"><quote>Wie erstelle ich einen
- Port</quote></link> sollte Ihnen dabei helfen.</para>
- </listitem>
-
- <listitem>
- <para>Rummeckern&mdash;<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 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. Erhalten
- Sie vom Betreuer keine Resonanz, k&ouml;nnen Sie auch das
- <command>send-pr</command> Kommando benutzen, um einen
- Fehler-Report einzusenden.</para>
- </listitem>
-
- <listitem>
- <para>Vergessen Sie es. Das ist der einfachste Weg&mdash; nur
- sehr wenige Ports kann man als <quote>unverzichtbar</quote>
- klassifizieren. Au&szlig;erdem gibt eine gro&szlig;e
- Wahrscheinlichkeit, da&szlig; der Fehler in der n&auml;chsten
- Version behoben ist, wenn der Port aktualisiert wurde.</para>
- </listitem>
-
- <listitem>
- <para>Holen Sie sich das Package von einem FTP-Server in Ihrer
- N&auml;he. Die <quote>Basis</quote> Sammlung aller packages
- 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 Mirror in
- Ihrer N&auml;he! Die Methode mit den Packages geht um einiges
- schneller. Benutzen Sie das Programm &man.pkg.add.1;, um
- Packages auf Ihrem Rechner zu installieren.</para>
- </listitem>
- </orderedlist>
- </sect2>
- </sect1>
-
- <sect1 id="porting">
- <title>Weitergehende Themen</title>
-
- <para>Dieser Abschnitt wurde ausgelagert und zu einem eigenst&auml;ndigen
- Handbuch, dem
- <ulink url="../porters-handbook/index.html">Porters-Handbuch</ulink>,
- Wenn Sie selber einen Port erstellen und einreichen
- wollen, lesen Sie bitte dieses Handbuch.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-