diff options
Diffstat (limited to 'de_DE.ISO8859-1/books/handbook/ports/chapter.sgml')
-rw-r--r-- | de_DE.ISO8859-1/books/handbook/ports/chapter.sgml | 1050 |
1 files changed, 0 insertions, 1050 deletions
diff --git a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml deleted file mode 100644 index 399652b334..0000000000 --- a/de_DE.ISO8859-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üngliche Version von verschiedenen Leuten.</emphasis></para> - <para><emphasis>Übersetzt von &a.de.pierau, Juli 2000</emphasis></para> - - <sect1> - <title>Übersicht</title> - - <para>Die FreeBSD Ports-Sammlung erlaubt Ihnen das Übersetzen - und Installieren einer Vielzahl von Anwendungen mit minimalem - Aufwand.</para> - - <para>Ein Port ist gewöhnlich eine Gruppe von <link - linkend="ports-skeleton">Gerüsten</link>, die die minimalen - Anpassungen enthalten, welche nötig sind, damit sich - eine Anwendung unter FreeBSD übersetzen und installieren - läßt.</para> - - <para>Trotz des ganzen Geredes von offenen Standards kann es eine - verzwickte Angelegenheit werden, eine Anwednung unter verschiedenen - UNIX Versionen zu übersetzen. Sie können zufrieden sein, - wenn sich die Anwendung sauber übersetzen läßt, in die - richtigen Verzeichnisse installiert und <quote>out-of-the-box</quote> - fehlerfrei läuft. Dies wird aber sehr selten vorkommen. - Die meiste Zeit werden Sie Modifizierungen vornehmen mü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ötig sind, - damit alles richtig funktioniert, so daß die Installation - einfach und schmerzlos ist. Mit der Ports-Sammlung ist die - ganze harte Arbeit bereits fü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öschen.</para> - - <sect2 id="ports-skeleton"> - <title>Ports installieren</title> - - <para>Was ist mit einem <quote>Gerüst</quote> im Zusammenhang - mit der Ports-Sammlung gemeint? In aller Kürze: ein - Gerüst eines Ports ist ein minimaler Satz von Dateien, die - für eine Anwendung benötigt werden, damit es sich - unter FreeBSD sauber übersetzen und installieren - läßt. Ein jeder Port beinhaltet:</para> - - <itemizedlist> - <listitem> - <para>Eine Datei <filename>Makefile</filename>. Das - <filename>Makefile</filename> enthä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ält eine Datei namens - <filename>md5</filename>. Der Name kommt vom MD5 - Algorithmus, welcher zur Ermittlung der Prüfsumme des - Portes benutzt wird. Eine Prüfsumme ist eine Zahl, - die durch Addition aller Daten einer Datei entsteht. - Ändert sich ein Zeichen in der Datei, so weicht die - Prü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ötigt - werden, aber nicht woanders in die Verzeichnis-Struktur - gehören.</para> - </listitem> - - <listitem> - <para>Ein <filename>patches</filename> Verzeichnis. Hierin - liegen Patches, welche das Übersetzen und Installieren - der Anwendung ermöglichen. Patches sind im Wesentlichen - kleine Dateien, die Änderungen an speziellen Dateien - süzifizieren. Sie liegen als reiner Text vor und sagen - ungefähr: - <quote>Lösche Zeile 10</quote> oder - <quote>Ä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ält normalerweise drei Dateien. Gelegentlich sind - es auch mehr, das hä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ü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ßerdem sind hier Informationen enthalten, - die bei der Deinstallation des Ports benötigt werden. - </para> - </listitem> - </itemizedlist> - </listitem> - </itemizedlist> - - <para>Nun haben Sie genug Hintergrund Informationen über - die Ports-Sammlung und Sie können Ihren ersten Port - installieren. Es gibt dazu zwei Möglichkeiten, beide - werden im Folgenden erläutert.</para> - - <para>Bevor Sie damit beginnen, müssen Sie sich natürlich - einen Port zum Installieren aussuchen. Sie kö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önnen dort Suchen - oder in der Liste schmökern. Jeder Port enthält - außerdem eine Beschreibung, so daß Sie sich vor der - Entscheidung, welchen Port Sie installieren wollen, über den Port - informieren können.</para> - - <para>Eine andere Methode bietet das Kommando <command>whereis</command>. - Um <command>whereis</command> zu benutzen, geben Sie einfach - <quote><command>whereis <Programm, daß Sie - installieren möchten></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ß 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ü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ötigt, Sie brauchen sich darum - jetzt nicht weiter zu kümmern.</para> - - <note> - <para>Zum Installieren von Ports müssen Sie als Benutzer - <username>root</username> angemeldet sein.</para> - </note> - - <para>Jetzt, wo Sie den gewü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ß Sie eine FreeBSD-CDROM Zusammenstellung haben. - Wenn nicht, kö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ß</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öchten:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports/irc/xchat</userinput></screen> - - <para>Im Verzeichnis xchat kann man das Gerüst erkennen. Der - nächste Schritt ist das Ü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> ->> xchat-1.3.8.tar.bz2 doesn't seem to exist on this system. ->> Attempting to fetch from file:/cdrom/ports/distfiles/. -===> Extracting for xchat-1.3.8 ->> Checksum OK for xchat-1.3.8.tar.bz2. -===> xchat-1.3.8 depends on executable: bzip2 - found -===> xchat-1.3.8 depends on executable: gmake - found -===> xchat-1.3.8 depends on shared library: gtk12.2 - found -===> xchat-1.3.8 depends on shared library: Imlib.5 - found -===> xchat-1.3.8 depends on shared library: X11.6 - found -===> Patching for xchat-1.3.8 -===> Applying FreeBSD patches for xchat-1.3.8 -===> Configuring for xchat-1.3.8 -... -[configure-Ausgabe weggelassen] -... -===> Building for xchat-1.3.8 -... -[Ausgabe der Übersetzung weggelassen] -... -&prompt.root;</screen> - - <para>Ist die Übersetzungsprozedur beendet, sind Sie wieder - in der Kommandozeile und der nächste Schritt ist das - Installieren. Dazu hä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> -===> Installing for xchat-1.3.8 -===> xchat-1.3.8 depends on shared library: gtk12.2 - found -===> xchat-1.3.8 depends on shared library: Imlib.5 - found -===> xchat-1.3.8 depends on shared library: X11.6 - found -... -[Ausgabe der Installation weggelassen] -... -===> Generating temporary packing list -===> Installing xchat docs in /usr/X11R6/share/doc/xchat -===> 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önnen einen Schritt sparen, wenn Sie gleich - <command>make install</command> anstatt von - <command>make</command> und dem anschließenden - <command>make install</command> eingeben.</para> - </note> - - <note> - <para>Beachten Sie bitte, daß die Lizenzen einiger Ports - die Einbeziehung auf der CDROM verbieten. Das könnte - aufgrund verschiedenster Gründe der Fall sein, beispielsweise - weil man sich vor dem Herunterladen registrieren lassen - muß oder eine Weiterverteilung verboten ist u.s.w. - Wünschen Sie einen Port zu installieren, der nicht auf - der CDROM enthalten ist, so müssen Sie online gehen und - mit Hilfe <link linkend="ports-inet"> des nä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ß Sie eine Verbindung - mit dem Internet haben. Haben Sie dies nicht, müssen Sie - eine <link linkend="ports-cd">CDROM Installation</link> - durchführen.</para> - - <para>Das Installieren eines Ports vom Internet wird genau so - durchgeführt wie das Installieren von CDROM. Der einzige - Unterschied zwischen beiden ist, daß der Quellcode der - Anwendung vom Internet heruntergeladen und nicht von der CDROM - genommen wird.</para> - - <para>Die durchgeführten Schritte sind identisch:</para> - - <screen>&prompt.root; <userinput>make install</userinput> ->> xchat-1.3.8.tar.bz2 doesn't seem to exist on this system. ->> 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) -===> Extracting for xchat-1.3.8 ->> Checksum OK for xchat-1.3.8.tar.bz2. -===> xchat-1.3.8 depends on executable: bzip2 - found -===> xchat-1.3.8 depends on executable: gmake - found -===> xchat-1.3.8 depends on shared library: gtk12.2 - found -===> xchat-1.3.8 depends on shared library: Imlib.5 - found -===> xchat-1.3.8 depends on shared library: X11.6 - found -===> Patching for xchat-1.3.8 -===> Applying FreeBSD patches for xchat-1.3.8 -===> Configuring for xchat-1.3.8 -... -[configure-Ausgabe weggelassen] -... -===> Building for xchat-1.3.8 -... -[Ausgabe der Übersetzung weggelassen] -... -===> Installing for xchat-1.3.8 -===> xchat-1.3.8 depends on shared library: gtk12.2 - found -===> xchat-1.3.8 depends on shared library: Imlib.5 - found -===> xchat-1.3.8 depends on shared library: X11.6 - found -... -[Ausgabe der Installation weggelassen] -... -===> Generating temporary packing list -===> Installing xchat docs in /usr/X11R6/share/doc/xchat -===> Registering installation for xchat-1.3.8 -&prompt.root;</screen> - - <para>Wie Sie sehen können, besteht der einzige Unterschied in - der Zeile, die Ihnen sagt, woher das System den Quellcode - herholt.</para> - - <para>Obiges erklärte Ihnen, wie Sie Ports auf Ihrem Computer - installieren können. Hiernach lernen Sie, wie Sie einen - Port wieder von Ihrem System lö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ür den - Fall, daß Sie versehentlich einen Falschen installiert haben. - Die nächsten Abschitte decken genau dieses Thema ab.</para> - - <para>Nun wollen wir mal unser vorheriges Beispiel wieder - löschen (für alle die nicht aufgepaßt haben, daß - 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> -===> Deinstalling for xchat-1.3.8 -&prompt.root;</screen> - - <para>Das war leicht. Sie haben jetzt die Fähigkeit, xchat - von Ihrem System zu entfernen. Mö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ö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üssen an die serielle Schnittstelle auf der - Rü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ätzliche Anwendungen zu installieren?</para> - </question> - - <answer> - <para>Ja, das ist gewö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ünden:</para> - - <orderedlist> - <listitem> - <para>Die Lizenz-Bestimmungen einiger Software verbietet - Verteilung in binärer Form. Diese muß 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öglichkeit, sich den Code anzusehen und - nach potentiellen Problemen für sich zu suchen.</para> - </listitem> - - <listitem> - <para>Haben Sie eigene Anpassungen, so benötigen Sie den - Quellcode, um diese vornehmen zu können.</para> - </listitem> - - <listitem> - <para>Sie könnten andere Ansichten darüber haben, - wie eine Anwendung übersetzt werden soll, als die Person - welche das Package erstellt hat— einige Leute haben - strenge Ansichten drüber, welche Optimierung benutzt, - ob eine Debug-Version erstellt oder ob anschließ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ür einen speziellen Prozessor oder eine besondere - Karte in Ihrem Rechner hat, können Sie diese immer - benutzen und die Ersteller der Packages müssen nicht - sehr viele verschiedene davon bereitstellen.</para> - - <para>Die verbreiteste Ausnahme von dieser Regel ist das - Papierformat. Unterstü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ü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ält reinen Text und sagt im Prinzip Dinge wie - <quote>lösche Zeile 23</quote>, - <quote>füge diese zwei Zeilen hinter Zeile 468an </quote>, - oder <quote>ä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ünglich fü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önnen selber hineinsehen, was für Dateien - darin sind oder diese auspacken, indem Sie das UNIX-Programm - <application>tar</application> benutzen. Dies ist auch bei - FreeBSD dabei. Das sä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üfsumme?</para> - </question> - - <answer> - <para>Das ist eine Zahl, die dadurch generiert wird, indem man - die ganzen Daten einer Datei aufaddiert. Ändert sich ein - Zeichen in dieser Datei, ist die Prüfsumme nicht mehr die - gleiche und ein einfacher Vergleich ermöglicht das - Erkennen des Unterschiedes.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Ich tat, was ihr zum Ü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> ->> cku190.tar.gz doesn't seem to exist on this system. ->> 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äutert, dürfen einige Ports wegen - Lizenz-Beschränkungen nicht auf CDROM veröffentlicht - werden. Kermit ist ein solches Beispiel. Die Lizenz-Bestimmungen - verbieten uns das Brennen des tarballs auf CDROM, leider - müssen Sie es sich von Hand aus dem Netz - Herunterladen—sorry!</para> - - <para>Der Grund für die ganzen Fehlermeldungen liegt darin, - daß Sie zu diesem Zeitpunkt nicht mit dem Internet verbunden - waren. Haben Sie den tarball von einer der MASTER_SITES - (aufgeführt im Makefile) gezogen, kö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ü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ö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äuft? Mein - Systemadministrator sagt, daß ich alles unter - <filename>/u/people/guests/wurzburger</filename> haben - muß, aber das scheint nicht klappen.</para> - </question> - - <answer> - <para>Sie können die Variablen <makevar>PORTSDIR</makevar> - und <makevar>PREFIX</makevar> benutzen, um dem Ports-System zu - sagen, daß es andere Verzeichnisse nutzen soll. Zum - Beispiel wü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ü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ürde aber gerne die - tarballs auf meinem Rechner liegen haben, damit ich nicht - jedesmal auf den Downlaod warten muß, 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ü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ü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ür nur einen Port—gut, das haben Sie sicher - schon erraten.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Ich weiß, das es wohl schneller geht, wenn ich die - tarballs von einem FreeBSD Mirror in der Nähe hole. Kann - ich sagen, daß 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ä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ü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ür den Port benötigt werden.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Gibt es einen Weg einen Port am Kompilieren zu hindern? Ich - mö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ß der Port Quellcode nur geholt und entpackt wird.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Ich versuche einen eigenen Port zu erstellen und will, - daß der Port vor dem Übersetzen anhält, damit - ich eine Chance habe zu sehen, ob meine Patches sauber - funktionieren. Gibt es etwas wie <command>make - extract</command> für Patches?</para> - </question> - - <answer> - <para>Klar, <command>make patch</command> ist alles was Sie - wünschen. Sie werden wahrscheinlich die Variable - <makevar>PATCH_DEBUG</makevar> auch recht nützlich finden. - Ach ja, und vielen Dank für Ihre Bemühungen!</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Stimmt es, daß einige Compiler Fehler machen? Wie - kann ich sicher gehen, daß ich mit den richtigen - Einstellungen ü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ö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ü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ändert haben.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Das sind aber ganz schön viele Ports und es ist nicht - leicht den einen zu finden, den ich gerade möchte. Gibt es - eine Liste der erhältlichen Ports?</para> - </question> - - <answer> - <para>Schauen Sie in die Datei <filename>INDEX</filename> im - Verzeichnis <filename>/usr/ports</filename>. Sie kö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ört das System auf einmal mit dem Kompilieren auf - und fing an, den Port <literal>sü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ülz</literal> mitkommt — beispielsweise, - wenn <literal>bla</literal> Grafik benutzt wird und der Port - <literal>sülz</literal> könnte dann eine Bibliothek mit - nützlichen grafischen Routinen enthalten. Oder - <literal>sülz</literal> könnte ein Werkzeug sein, das zum - Ü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ß es reine Verschwendung von Plattenplatz - ist. Ich will ihn wieder löschen, weiß 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ö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ß die Versionsnummer wissen, um das - Kommando benutzen zu können. Es wird nicht wirklich - erwartet, daß 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ährlich dahin zu gehen und - Sachen zu löschen?</para> - </question> - - <answer> - <para>Nun, wenn Sie Anwendungen installiert haben und sicher sind, - daß Sie den Quellcode nicht benötigen, gibt es - keinen Grund diesen herumliegen zu haben. Der beste Weg zum - Aufrä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öscht - für jeden Port alles bis auf das Gerü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öschen?</para> - </question> - - <answer> - <para>Ja, wenn Sie mit denen fertig sind, konnen die auch - verschwinden. Man kann sie von Hand lö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ö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ß 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ß es Ports gibt, die Ihnen - Fragen stellen, auf die wir die Antworten nicht für Sie - geben konnten (z.B. <quote>Drucken Sie auf Papier im A4 oder US - letter Format?</quote>). In solchen Fällen muß - jemand da sein und die Fragen beantworten.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Ich mö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ü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ürfnisse angepaßt. - Können wir irgendwie eigene packages erstellen, so - daß wir die Anwendung auf unseren Rechnern leichter - verteilen können?</para> - </question> - - <answer> - <para>Kein Problem. Angenommen Sie wissen, wie Sie fü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 über einen Port, der bei Ihnen nicht - funktioniert, kö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—<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ö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— nur - sehr wenige Ports kann man als <quote>unverzichtbar</quote> - klassifizieren. Außerdem gibt eine große - Wahrscheinlichkeit, daß der Fehler in der nä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ä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ä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ä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: ---> - |