diff --git a/de_DE.ISO8859-1/books/developers-handbook/policies/chapter.sgml b/de_DE.ISO8859-1/books/developers-handbook/policies/chapter.sgml index ddf9db036e..ede509f5b8 100644 --- a/de_DE.ISO8859-1/books/developers-handbook/policies/chapter.sgml +++ b/de_DE.ISO8859-1/books/developers-handbook/policies/chapter.sgml @@ -1,522 +1,522 @@ Poul-Henning Kamp Beigesteuert von Axel Gruner Übersetzt von Vorgaben und Richtlinien für das Quelltextverzeichnis Dieses Kapitel dokumentiert verschiedene Vorgaben und Richtlinien für das FreeBSD-Quelltextverzeichnis. <makevar>MAINTAINER</makevar> eines Makefiles Ports-Maintainer Wenn ein bestimmter Bereich der FreeBSD-Distribution von einer Person oder Gruppe gepflegt wird, kann dies durch Hinzufügen der Zeile MAINTAINER= email-addresses im Makefile der Öffentlichkeit mitgeteilt werden. Dies bedeutet folgendes: Der Maintainer ist verantwortlich für diesen Code. Er muss einerseits für die Behebung von Fehlern und das Beantworten von Problemberichten für diesen Code die Verantwortung tragen und andererseits, falls es sich um beigesteuerte Software handelt, neue Versionen verfolgen und bereitstellen. Änderungen an Verzeichnissen, die ein Maintainer definiert hat, sollten an den Maintainer für eine Überprüfung gesendet werden, bevor diese committet werden. Nur wenn der Maintainer in einer inakzeptablen Zeitspanne auf mehrere E-Mails nicht antwortet, können die Änderungen, die mit dem Commit in Kraft treten, auch ohne Überprüfung durch den Maintainer vollzogen werden. Dennoch wird empfohlen, dass die Änderungen, falls möglich, von jemand anderem überprüft werden. Es ist natürlich nicht akzeptabel, einer Person oder Gruppe den Status eines Maintainers zu geben, so lange sie nicht zustimmt, diese Pflicht auf sich zu nehmen. Andererseits muss es kein einzelner Mensch sein. Eine Gruppe von Menschen ist genauso in Ordnung. Poul-Henning Kamp Beigesteuert von David O'Brien Beigesteuerte Software Beigesteuerte Software Einige Teile der FreeBSD-Distribution enthalten Software, die aktiv außerhalb des FreeBSD-Projektes gepflegt wird. Aus historischen Gründen nennen wir dies contributed Software. Beispiele dafür sind sendmail, gcc und patch. Über die Jahre wurden verschiedene Methoden genutzt, um solche Software zu verwalten, und jede hat Vor- wie auch Nachteile. So hat sich kein eindeutiger Gewinner herauskristallisiert. Es wurde viel über diesen Umstand diskutiert und eine Methode als die offizielle vorgestellt, um in Zukunft diese Art der Software zu importieren. Ferner wird dringend geraten, dass sich existierende, beigesteuerte Software diesem Modell annähert, da es signifikante Vorteile gegenüber der alten Methode gibt. Dazu gehört auch, dass jeder einfach Diffs bezüglich der offiziellen Quelltext-Versionen erzeugen kann (auch ohne CVS-Zugang). Dies wird es deutlich vereinfachen, Änderungen an die Hauptentwickler zurückfließen zu lassen. Letztendlich kommt es jedoch auf die Menschen an, welche die Arbeit leisten. Wenn die Durchführung dieses Modells bei einem Paket mal nicht möglich ist, können Ausnahmen dieser Regeln nur mit Genehmigung des Core-Teams und der Übereinstimmung der anderen Entwickler gewährt werden. Die Fähigkeit, dieses Paket auch in Zukunft pflegen zu können, ist eine der Schlüsselfragen bei dieser Entscheidung. Durch einige bedauernswerte Einschränkungen des RCS-Dateiformats und die Handhabung von Herstellerzweigen im CVS ist von unwesentlichen, trivialen und/oder kosmetischen Änderungen an Dateien dringend abzuraten, die dem Herstellerzweig folgen. Grammatikalische oder sprachliche Fehlerbehebungen sind explizit unter der Kosmetik-Kategorie einzuordnen und sollten bei Dateien mit einer 1.1.x.x-Revision vermieden werden. Das Repository kann sich durch Änderungen einzelner Zeichen dramatisch aufblähen. Die eingebettete Tcl-Programmiersprache soll als Beispiel dienen, wie dieses Modell funktioniert: src/contrib/tcl enthält den Quelltext so, wie vom Maintainer dieses Pakets bereitgestellt. Teile, die unter FreeBSD gänzlich unnutzbar sind, können entfernt werden. Im Fall von Tcl wurden die Unterverzeichnisse mac, win und compat vor dem Import entfernt. src/lib/libtcl enthält ein Makefile im bmake-Stil, das die Regeln des Standard-Makefiles bsd.lib.mk nutzt, um die Bibliothek zu erstellen und die Dokumentation zu installieren. src/usr.bin/tclsh enthält ein Makefile im bmake-Stil, welches das tclsh-Programm erstellt und installiert, ebenso die dazugehörigen Manualpages, welche die Regeln von bsd.prog.mk nutzen. src/tools/tools/tcl_bmake enthält einige Shell-Skripten, die hilfreich sein können, wenn die Tcl-Software aktualisiert werden soll. Diese sind nicht Teil des Erstellens und der Installation der Software. Das Entscheidende ist hier das src/contrib/tcl-Verzeichnis, welches nach den folgenden Regeln erstellt wird: Es muss den Quelltext aus dem Original enthalten (ohne RCS-Schlüsselworte und im korrekten CVS-Herstellerzweig) mit so wenig FreeBSD-spezifischen Änderungen wie möglich. Sollte es Zweifel geben, wie hier zu verfahren ist, unbedingt zuerst nachfragen und nicht auf gut Glück etwas probieren in der vagen Hoffnung, dass es irgendwie tut. CVS verzeiht keine Fehler beim Importieren und ein hoher Arbeitsaufwand wäre die Folge, um diesen großen Fehler wieder wettzumachen. Aufgrund der eingangs schon erwähnten Einschränkungen bei CVS-Herstellerzweigen ist es erforderlich, dass offizielle Fehlerbehebungen vom Hersteller in die Originalquellen der Distribution einfließen und als Resultat wieder in den Herstellerzweig importiert werden. Offizielle Fehlerbehebungen sollten nie direkt in FreeBSD eingepflegt und committet werden, da dies den Herstellerzweig zerstören würde und der Import von zukünftigen Versionen wäre um ein Vielfaches schwerer, da es zu Konflikten kommen würde. Da einige Pakete Dateien enthalten, die zur Kompatibilität mit anderen Architekturen und Umgebungen als FreeBSD gedacht sind, ist es zulässig, diese Teile zu löschen, wenn sie für FreeBSD nicht von Interesse sind, und so Speicherplatz zu sparen. Dateien, die ein Copyright und Release-artige Informationen zu den vorhandenen Dateien enthalten, sollten nicht gelöscht werden. Falls es einfacher erscheint, können die bmake-Makefiles vom Verzeichnisbaum durch einige Dienstprogramme automatisch erstellt werden, was es hoffentlich sogar noch einfacher macht, eine Version zu aktualisieren. Ist dies geschehen, so stellen Sie bitte sicher, diese Werkzeuge in das Verzeichnis src/tools gleich mit dem Port an sich einzuchecken, sodass es für zukünftige Maintainer verfügbar ist. Im Verzeichnis src/contrib/tcl sollte eine Datei mit dem Namen FREEBSD-upgrade hinzugefügt werden und sie sollte den Stand wie folgt anzeigen: Welche Dateien ausgelassen wurden. Von wo die Original-Distribution stammt und/oder wo die offizielle Hauptseite zu finden ist. Wohin Fehlerbehebungen an den Originalautor gesendet werden können. Möglicherweise eine Übersicht, welche FreeBSD-spezifischen Änderungen vorgenommen wurden. Importieren Sie jedoch FREEBSD-upgrade nicht mit den beigesteuerten Quelldateien. Stattdessen sollten Sie cvs add FREEBSD-upgrade ; cvs ci nach dem initialen Import nutzen. Ein Beispiel von src/contrib/cpio sehen Sie hier: This directory contains virgin sources of the original distribution files on a "vendor" branch. Do not, under any circumstances, attempt to upgrade the files in this directory via patches and a cvs commit. New versions or official-patch versions must be imported. Please remember to import with "-ko" to prevent CVS from corrupting any vendor RCS Ids. For the import of GNU cpio 2.4.2, the following files were removed: INSTALL cpio.info mkdir.c Makefile.in cpio.texi mkinstalldirs To upgrade to a newer version of cpio, when it is available: 1. Unpack the new version into an empty directory. [Do not make ANY changes to the files.] 2. Remove the files listed above and any others that don't apply to FreeBSD. 3. Use the command: cvs import -ko -m 'Virgin import of GNU cpio v<version>' \ src/contrib/cpio GNU cpio_<version> For example, to do the import of version 2.4.2, I typed: cvs import -ko -m 'Virgin import of GNU v2.4.2' \ src/contrib/cpio GNU cpio_2_4_2 4. Follow the instructions printed out in step 3 to resolve any conflicts between local FreeBSD changes and the newer version. Do not, under any circumstances, deviate from this procedure. To make local changes to cpio, simply patch and commit to the main branch (aka HEAD). Never make local changes on the GNU branch. All local changes should be submitted to "cpio@gnu.ai.mit.edu" for inclusion in the next vendor release. obrien@FreeBSD.org - 30 March 1997 Belastende Dateien Es kann gelegentlich notwendig sein, belastende Dateien in den FreeBSD-Quelltextbaum zu integrieren. Braucht ein Gerät zum Beispiel ein Stück binären Code, der zuerst geladen werden muss, bevor das Gerät funktioniert, und wir haben keine Quellen zu diesem Code, dann wird die binäre Datei als belastend bezeichnet. Die folgenden Richtlinien sind beim Aufnehmen von belastenden Dateien in den FreeBSD-Quelltextbaum zu beachten. Jede Datei, die durch die System-CPU(s) ausgeführt wird und nicht als Quelltext vorliegt, ist belastend. Jede Datei, deren Lizenz restriktiver ist als die BSD- oder GNU-Lizenz, ist belastend. Eine Datei, die herunterladbare Binär-Daten enthält, ist nur belastend, wenn (1) oder (2) zutreffen. Sie muss in einem ASCII-Format gespeichert werden, das Architektur-neutral ist (file2c oder uuencoding wird empfohlen). Jede belastende Datei braucht eine spezielle Genehmigung vom Core-Team, + url="&url.base;/administration.html#t-core">Core-Team, bevor diese in das CVS-Repository aufgenommen werden darf. Belastende Dateien liegen unter src/contrib oder src/sys/contrib. Das komplette Modul sollte auch am Stück aufbewahrt werden. Es gibt keinen Grund, dieses zu teilen, außer es gibt einen Code-Austausch mit Quelltext, der nicht belastend ist. Objekt-Dateien werden wie folgt benannt: arch/filename.o.uu>. Kernel-Dateien: Sollten immer nach conf/files.* verweisen (um den Bau einfach zu halten). Sollten sich immer in LINT befinden, jedoch entscheidet das Core-Team + url="&url.base;/administration.html#t-core">Core-Team je nach Fall, ob es auskommentiert wird oder nicht. Das Core-Team + url="&url.base;/administration.html#t-core">Core-Team kann sich zu einem späteren Zeitpunkt immer noch anders entscheiden. Der Release-Engineer entscheidet, ob es in ein Release aufgenommen wird oder nicht. Userland-Dateien: Core-Team Das Core-Team + url="&url.base;/administration.html#t-core">Core-Team entscheidet, ob der Code von make world gebaut wird oder nicht. Release-Engineer Der Release-Engineer + url="&url.base;/administration.html#t-re">Release-Engineer entscheidet, ob es in das Release aufgenommen wird oder nicht. Satoshi Asami Beigesteuert von Peter Wemm David O'Brien Shared-Libraries Sollten Sie die Unterstützung für Shared-Libraries bei einem Port oder einem Stück Software, das dies nicht hat, hinzufügen, sollten die Versionsnummern dessen Regeln folgen. Im Allgemeinen hat die sich daraus resultierende Nummer nichts mit der Release-Version der Software zu tun. Die drei Grundsätze zum Erstellen von Shared-Libraries sind: Sie beginnen mit 1.0. Gibt es eine Änderung, die abwärtskompatibel ist, so springen Sie zur nächsten Minor-Version (beachten Sie, dass ELF-Systeme die Minor-Version ignorieren). Gibt es eine inkompatible Änderung, so springen Sie bitte zur nächsten Major-Version. Zum Beispiel wird beim Hinzufügen von Funktionen und oder Fehlerbehebungen zur nächsten Minor-Version gesprungen, beim Löschen einer Funktion, Ändern von Funktionsaufrufen usw. ändert sich die Major-Version. Bleiben Sie bei Versionsnummern in der Form major.minor (x.y). Unser dynamischer Linker a.out kann mit Versionsnummern in der Form x.y.z nicht gut umgehen. Jede Versionsnummer nach dem y (die dritte Zahl) wird völlig ignoriert, wenn Versionsnummern der Shared-Libraries verglichen werden, um zu bestimmen, mit welcher Bibliothek eine Anwendung verlinkt wird. Sind zwei Shared-Libraries vorhanden, die sich nur in der micro-Revision unterscheiden, so wird ld.so zu der höheren verlinken. Dies bedeutet, dass wenn Sie mit libfoo.so.3.3.3 verlinken, der Linker nur 3.3 in den Header aufnimmt und alles linkt, was mit libfoo.so.3 .(irgendetwas >= 3).(höchste verfügbare Nummer) beginnt. ld.so wird immer die höchste Minor-Revision benutzen. Beispielsweise wird es die libc.so.2.2 bevorzugen gegenüber der libc.so.2.0, auch dann, wenn das Programm ursprünglich mit libc.so.2.0 verlinkt war. Unser dynamischer ELF-Linker kann keine Minor-Versionen handhaben. Dennoch sollten die Major- und Minor-Versionen genutzt werden, da unsere Makefiles das Richtige machen bezogen auf den Systemtyp. Für nicht-Port-Bibliotheken lautet die Richtlinie, die Shared-Library-Versionsnummer nur einmal zwischen den Releases zu ändern. Weiterhin ist es vorgeschrieben, die Major-Version der Shared-Libraries nur bei Major-OS-Releases zu ändern (beispielsweise von 3.0 auf 4.0). Wenn Sie also eine Änderung an einer Systembibliothek vornehmen, die eine neue Versionsnummer benötigt, überprüfen Sie die Commit-Logs des Makefiles. Es liegt in der Verantwortung des Committers, dass sich eine erste solche Änderung seit dem letzten Release in der aktualisierten Versionsnummer der Shared-Library im Makefile äußert, folgende Änderungen werden nicht berücksichtigt. diff --git a/de_DE.ISO8859-1/books/handbook/book.sgml b/de_DE.ISO8859-1/books/handbook/book.sgml index 5481f9a1f3..08cd062ae6 100644 --- a/de_DE.ISO8859-1/books/handbook/book.sgml +++ b/de_DE.ISO8859-1/books/handbook/book.sgml @@ -1,367 +1,368 @@ %books.ent; %chapters; %txtfiles; %pgpkeys; ]> Das &os;-Handbuch The FreeBSD German Documentation Project Februar 1999 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 + 2010 The FreeBSD German Documentation Project &bookinfo.legalnotice; &tm-attrib.freebsd; &tm-attrib.3com; &tm-attrib.3ware; &tm-attrib.arm; &tm-attrib.adaptec; &tm-attrib.adobe; &tm-attrib.apple; &tm-attrib.corel; &tm-attrib.creative; &tm-attrib.cvsup; &tm-attrib.heidelberger; &tm-attrib.ibm; &tm-attrib.ieee; &tm-attrib.intel; &tm-attrib.intuit; &tm-attrib.linux; &tm-attrib.lsilogic; &tm-attrib.m-systems; &tm-attrib.macromedia; &tm-attrib.microsoft; &tm-attrib.netscape; &tm-attrib.nexthop; &tm-attrib.opengroup; &tm-attrib.oracle; &tm-attrib.powerquest; &tm-attrib.realnetworks; &tm-attrib.redhat; &tm-attrib.sap; &tm-attrib.sun; &tm-attrib.symantec; &tm-attrib.themathworks; &tm-attrib.thomson; &tm-attrib.usrobotics; &tm-attrib.vmware; &tm-attrib.waterloomaple; &tm-attrib.wolframresearch; &tm-attrib.xfree86; &tm-attrib.xiph; &tm-attrib.general; Willkommen bei &os;! Dieses Handbuch beschreibt die Installation und den täglichen Umgang mit &os; &rel2.current;-RELEASE und &os; &rel.current;-RELEASE. Das Handbuch ist jederzeit unter Bearbeitung und das Ergebnis der Arbeit vieler Einzelpersonen. Dies kann dazu führen, dass bestimmte Bereiche nicht mehr aktuell sind und auf den neuesten Stand gebracht werden müssen. Bei Unklarheiten empfiehlt es sich daher stets, die englische Originalversion des Handbuchs zu lesen. Wenn Sie bei der Übersetzung des Handbuchs mithelfen möchten, senden Sie bitte eine E-Mail an die Mailingliste &a.de.translators;. Die aktuelle Version des Handbuchs ist immer auf dem &os;-Webserver verfügbar und kann in verschiedenen Formaten und in komprimierter Form vom &os;-FTP-Server oder einem der vielen Spiegel herunter geladen werden (ältere Versionen finden Sie hingegen unter ). Vielleicht möchten Sie das Handbuch aber auch durchsuchen. &chap.preface; Erste Schritte Dieser Teil des &os;-Handbuchs richtet sich an Benutzer und Administratoren für die &os; neu ist. Diese Kapitel geben Ihnen eine Einführung in &os;, geleiten Sie durch den Installationsprozess, erklären Ihnen die Grundlagen von &unix; Systemen, zeigen Ihnen, wie Sie die Fülle der erhältlichen Anwendungen Dritter installieren und führen Sie in X, der Benutzeroberfläche von &unix; Systemen ein. Es wird gezeigt, wie Sie den Desktop konfigurieren, um effektiver arbeiten zu können. Wir haben uns bemüht, Referenzen auf weiter vorne liegende Textteile auf ein Minimum zu beschränken, so dass Sie diesen Teil des Handbuchs ohne viel Blättern durcharbeiten können. Oft benutzte Funktionen Nach den Grundlagen beschäftigt sich das &os;-Handbuch mit oft benutzten Funktionen von &os;. Die Kapitel behandeln die nachstehenden Themen: Zeigen Ihnen beliebte und nützliche Werkzeuge wie Browser, Büroanwendungen und Programme zum Anzeigen von Dokumenten. Zeigen Ihnen Multimedia-Werkzeuge für &os;. Erklären den Bau eines angepassten &os;-Kernels, der die Systemfunktionen erweitert. Beschreiben ausführlich das Drucksystem, sowohl für direkt angeschlossene Drucker als auch für Netzwerkdrucker. Erläutern, wie Sie Linux-Anwendungen auf einem &os;-System laufen lassen. Damit Sie einige Kapitel verstehen, sollten Sie vorher andere Kapitel gelesen haben. Die Übersicht zu jedem Kapitel zählt die Voraussetzungen für das erolgreiche Durcharbeiten des Kapitels auf. Systemadministration Die restlichen Kapitel behandeln alle Aspekte der &os; Systemadministration. Am Anfang jedes Kapitels finden Sie eine Zusammenfassung, die beschreibt, was Sie nach dem Durcharbeiten des Kapitels gelernt haben. Weiterhin werden die Voraussetzungen beschrieben, die für das Durcharbeiten des Kapitels erforderlich sind. Diese Kapitel sollten Sie lesen, wenn Sie die Informationen darin benötigen. Sie brauchen Sie nicht in einer bestimmten Reihenfolge zu lesen, noch müssen Sie die Kapitel lesen, bevor Sie anfangen, &os; zu benutzen. Netzwerke &os; ist eins der meist benutzten Betriebssysteme für leistungsfähige Netzwerkserver. Die Kapitel in diesem Teil behandeln die nachstehenden Themen: Serielle Datenübertragung PPP und PPP over Ethernet Electronic-Mail Den Betrieb von Netzwerkdiensten Firewalls Weiterführende Netzwerkthemen Diese Kapitel sollten Sie lesen, wenn Sie die Informationen darin benötigen. Sie brauchen Sie nicht in einer bestimmten Reihenfolge zu lesen, noch müssen Sie die Kapitel lesen, bevor Sie anfangen, &os; zu benutzen. Anhang &chap.colophon; diff --git a/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml index 5882efa15d..b91b20a9c1 100644 --- a/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml @@ -1,3379 +1,3381 @@ Jim Mock Umstrukturiert und aktualisiert von Jordan Hubbard Im Original von Poul-Henning Kamp John Polstra Nik Clayton Martin Heinen Übersetzt von &os; aktualisieren Übersicht &os; wird zwischen einzelnen Releases ständig weiter entwickelt. Manche Leute bevorzugen die offiziellen Release-Versionen, während andere wiederum lieber auf dem aktuellen Stand der Entwicklung bleiben möchten. Wie dem auch sei, sogar offizielle Release-Versionen werden oft mit Sicherheitsaktualisierungen und anderen kritischen Fehlerbereinigungen versorgt. Unabhängig von der eingesetzten Version bringt &os; alle nötigen Werkzeuge mit, um ihr System aktuell zu halten und es innerhalb verschiedener Versionen zu aktualisieren. Dieses Kapitel hilft Ihnen bei der Entscheidung, ob Sie mit dem Entwicklungssystem Schritt halten oder ein Release verwenden wollen. Die zugrundeliegenden Werkzeuge um Ihr System aktuell zu halten werden ebenfalls vorgestellt. Nachdem Sie dieses Kapitel gelesen haben, werden Sie wissen, welche Werkzeuge verwendet werden können, um das System und die Port-Sammlung zu aktualisieren. wissen, wie Sie Ihr System mit freebsd-update, CVSup, CVS oder CTM aktualisieren. wissen, wie man das aktuell installierte System mit einer ursprünglichen Version vergleicht. wissen, wie Sie ihre Dokumentation mit CVSup oder Dokumentations-Ports aktuell halten können. den Unterschied zwischen den beiden Entwicklungszweigen &os.stable; und &os.current; kennen. Wissen, wie Sie das komplette Basissystem mit make buildworld neu bauen und installieren. Bevor Sie dieses Kapitel lesen, sollten Sie Ihr Netzwerk richtig konfiguriert haben () und wissen, wie Sie Software Dritter installieren (). Im gesamten Kapitel wird der Befehl cvsup verwendet, um die &os; Quellen zu beziehen und zu aktualisieren. Um es zu verwenden, benötigen Sie einen Port oder ein Paket wie net/cvsup-without-gui. Wenn Sie &os; 6.2-RELEASE oder eine spätere Version einsetzen, können Sie dieses Programm durch &man.csup.1; ersetzen, das nun Teil des Basissystems ist. Tom Rhodes Geschrieben von Colin Percival Basierend auf bereitgestellten Mitschriften von Benedict Reuschling Übersetzt von &os;-Update Updating and Upgrading freebsd-update updating-upgrading Das Einspielen von Sicherheitsaktualisierungen ist ein wichtiger Bestandteil bei der Wartung von Computersoftware, besonders wenn es um das Betriebssystem geht. Für lange Zeit war dieser Prozess unter &os; nicht einfach. Fehlerbehebungen mussten auf den Quellcode angewendet werden, danach wurde der Code zu neuen Binärdateien übersetzt und schliesslich mussten diese Dateien neu installiert werden. Das ist seit längerem nicht mehr der Fall, da &os; jetzt ein Werkzeug namens freebsd-update enthält. Dieses Werkzeug bringt zwei getrennte Funktionen mit sich. Die erste Funktion ermöglicht die Anwendung von Sicherheitsaktualisierungen im Binärformat auf das &os; Basissystem, ohne dieses neu zu übersetzen und zu installieren. Die zweite Funktion unterstützt Aktualisierungen zwischen Haupt- und Unterversionen. Binäre Aktualisierungen sind für alle Architekturen und Releases verfügbar, die aktuell vom &os; Security Team betreut werden. Allerdings benötigen manche Eigenschaften, wie die &os; Betriebssystemaktualisierungen, die zu dieser Zeit aktuellste Version von &man.freebsd-update.8; sowie &os; 6.3 oder höher. Vor der Aktualisierung auf eine neue Release-Version sollten die aktuellen Ankündigungen zu dem Release gelesen werden, da diese wichtige Informationen zu der gewünschten Version enthalten. Diese Ankündigungen finden Sie unter dem folgenden Link: . Wenn eine crontab existiert, welche die Eigenschaften von freebsd-update verwendet, muss diese deaktiviert werden, bevor die folgende Aktion gestartet wird. Die Konfigurationsdatei Manche Anwender möchten sicherlich Einstellungen in der - Konfigurationsdatei vornehmen, um bessere Kontrolle über den + Standard-Konfigurationsdatei unter + /etc/freebsd-update.conf vornehmen, um + bessere Kontrolle über den gesamten Prozess zu besitzen. Die Optionen sind sehr gut dokumentiert, jedoch benötigen die folgenden ein paar zusätzliche Erklärungen: # Components of the base system which should be kept updated. Components src world kernel Dieser Parameter kontrolliert, welche Teile von &os; auf dem aktuellen Stand gehalten werden sollen. Die Voreinstellung ist es, den Quellcode zu aktualisieren, das gesamte Basissystem sowie den Kernel. Die Komponenten sind die gleichen wie während der Installation, also würde beispielsweise das hinzufügen von "world/games" an dieser Stelle es erlauben, Aktualisierungen für Spiele anzuwenden. Die Verwendung von "src/bin" erlaubt es, den Quellcode in src/bin aktuell zu halten. Die beste Einstellung ist, diese Option so zu belassen, da eine Änderung es bedingt, dass man als Benutzer jede Komponente auflisten muss, die aktualisiert werden soll. Dies könnte katastrophale Folgen nach sich ziehen, da der Quellcode und die Binärdateien dadurch nicht mehr synchron wären. # Paths which start with anything matching an entry in an IgnorePaths # statement will be ignored. IgnorePaths Fügen Sie Pfade wie /bin oder /sbin hinzu, um diese speziellen Verzeichnisse während des Aktualisierungsprozesses unberührt zu lassen. Diese Option kann verwendet werden, um zu verhindern, dass freebsd-update lokale Änderungen überschreibt. # Paths which start with anything matching an entry in an UpdateIfUnmodified # statement will only be updated if the contents of the file have not been # modified by the user (unless changes are merged; see below). UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile Aktualisieren Sie Konfigurationsdateien in den angegebenen Verzeichnissen nur, wenn diese nicht geändert wurden. Jegliche Äderung, die der Benutzer daran vorgenommen hat, wird die automatische Aktualisierung dieser Dateien ungültig machen. Es gibt eine weitere Option KeepModifiedMetadata, die freebsd-update instruiert, die Änderungen während der Zusammenführung zu speichern. # When upgrading to a new &os; release, files which match MergeChanges # will have any local changes merged into the version from the new release. MergeChanges /etc/ /var/named/etc/ Eine Liste von Verzeichnissen mit Konfigurationsdateien, in denen freebsd-update Zusammenführungen versuchen soll. Dieser Verschmelzungsprozess von Dateien ist eine Serie von &man.diff.1;-Korrekturen, ähnlich wie &man.mergemaster.8; mit weniger Optionen. Die Änderungen werden entweder akzeptiert, öffnen einen Editor oder freebsd-update bricht ab. Wenn Sie im Zweifel sind, sichern Sie das /etc Verzeichnis und akzeptieren einfach die Änderungen. Lesen Sie , um Informationen über das mergemaster-Kommando zu erhalten. # Directory in which to store downloaded updates and temporary # files used by &os; Update. # WorkDir /var/db/freebsd-update In diesem Verzeichnis werden alle Korrekturen und temporären Dateien abgelegt. Für Fälle in denen der Anwender eine Versionsaktualisierung vornimmt, sollte diesem Verzeichnis mindestens ein Gigabyte Festplattenspeicher zur Verfügung stehen. # When upgrading between releases, should the list of Components be # read strictly (StrictComponents yes) or merely as a list of components # which *might* be installed of which &os; Update should figure out # which actually are installed and upgrade those (StrictComponents no)? # StrictComponents no Wenn dies auf yes gesetzt ist, wird freebsd-update annehmen, dass die Components-Liste vollständig ist und nicht versuchen, Änderungen ausserhalb dieser Liste zu tätigen. Tatsächlich wird freebsd-update versuchen, jede Datei zu aktualisieren, die zu der Components-Liste gehöhrt. Sicherheitsaktualisierungen Sicherheitsaktualisierungen sind auf einer entfernten Maschine abgelegt und können durch das folgende Kommando heruntergeladen und installiert werden: &prompt.root; freebsd-update fetch &prompt.root; freebsd-update install Wenn irgendeine Änderung auf den Kernel angewendet wurde benötigt das System einen Neustart. Wenn alles gut verlaufen ist, sollte das System aktualisiert sein und freebsd-update kann als nächtlicher &man.cron.8;-Job ablaufen. Ein Eintrag in der Datei /etc/crontab ist für diese Aufgabe ausreichend: @daily root freebsd-update cron Dieser Eintrag besagt, dass einmal am Tag freebsd-update ausgeführt wird. Auf diese Weise kann freebsd-update nur durch die Verwendung des -Arguments prüfen, ob Aktualisierungen vorliegen. Wenn Korrekturen existieren, werden diese automatisch auf die lokale Festplatte heruntergeladen, aber nicht eingespielt. Der root-Benutzer bekommt eine Nachricht, damit dieser die Korrekturen manuell installiert. Sollte irgendetwas schief gelaufen sein, kann freebsd-update den letzten Satz von Änderungen mit dem folgenden Befehl zurückrollen: &prompt.root; freebsd-update rollback Sobald dieser Vorgang abgeschlossen ist, sollte das System neu gestartet werden, wenn der Kernel oder ein beliebiges Kernelmodul geändert wurde. Dies ermöglicht es &os;, die neuen Binärdateien in den Hauptspeicher zu laden. Das freebsd-update-Werkzeug kann nur den GENERIC-Kernel automatisch aktualisieren. Wenn ein selbstkonfigurierter Kernel verwendet wird, muss dieser neu erstellt und installiert werden, nachdem freebsd-update den Rest der Aktualisierungen durchgeführt hat. Allerdings wird freebsd-update den GENERIC-Kernel in /boot/GENERIC erkennen und aktualisieren (falls dieser existiert), sogar dann, wenn dies nicht der aktuell verwendete Kernel des Systems ist. Es ist eine gute Idee, immer eine Kopie des GENERIC-Kernels in /boot/GENERIC aufzubewahren. Das wird bei der Diagnose von verschiedenen Problemen eine grosse Hilfe sein, sowie bei der Durchführung von Versionsaktualisierungen mit freebsd-update, wie in beschrieben ist. Solange die Standardkonfiguration in /etc/freebsd-update.conf nicht geändert wurde, wird freebsd-update die aktualisierten Quellcodedateien des Kernels zusammen mit dem Rest der Neuerungen installieren. Die erneute Übersetzung und Installation ihres neuen, selbstkonfigurierten Kernels kann dann auf die übliche Art und Weise durchgeführt werden. Die Aktualisierungen, die über freebsd-update verteilt werden, betreffen nicht immer den Kernel. Es ist nicht notwendig, den selbstkonfigurierten Kernel neu zu erstellen, wenn die Kernelquellen nicht durch die Ausführung von freebsd-update install geändert wurden. Allerdings wird freebsd-update auf alle Fälle die Datei /usr/src/sys/conf/newvers.sh aktualisieren. Der aktuelle Patch-Level (angegeben durch die -p-Nummer, die von dem Kommando uname -r ausgegeben wird) wird aus dieser Datei ausgelesen. Die Neuinstallation des selbstkonfigurierten Kernels, selbst wenn sich daran nichts geädert hat, erlaubt es &man.uname.1;, den aktuellen Patch-Level des Systems korrekt wiederzugeben. Dies ist besonders hilfreich, wenn mehrere Systeme gewartet werden, da es eine schnelle Einschätzung der installierten Aktualisierungen in jedem einzelnen System ermöglicht. Aktualisierungen an Haupt- und Unterversionen Dieser Prozess entfernt alte Objekt-Dateien und Bibliotheken, was dazu führt, dass die meisten Anwendungen von Drittherstellern nicht mehr funktionieren. Es wird empfohlen, dass alle installierten Ports entweder entfernt und neu installiert oder zu einem späteren Zeitpunkt mittels ports-mgmt/portupgrade aktualisiert werden. Die meisten Anwender werden wahrscheinlich einen Testlauf mittels des folgenden Kommandos durchführen wollen: &prompt.root; portupgrade -af Dies sorgt dafür, dass alles korrekt neu installiert wird. Beachten Sie, dass das Setzen der BATCH-Umgebungsvariable auf yes während dieses Prozesses auf jede Eingabe mit ja antwortet, was es nicht mehr notwendig macht, manuell eingreifen zu müssen. Wenn ein selbstkonfigurierter Kernel verwendet wird, ist der Aktualisierungsprozess ein kleines bisschen aufwändiger. Eine Kopie des GENERIC-Kernels wir benötigt und sollte in /boot/GENERIC abgelegt sein. Wenn der GENERIC-Kernel nicht bereits im System vorhanden ist, kann dieser über eine der folgenden Methoden bezogen werden: Wenn ein eigener Kernel genau einmal gebaut wurde, ist der Kernel im Verzeichnis /boot/kernel.old in Wirklichkeit der GENERIC-Kernel. Benennen Sie einfach dieses Verzeichnis in /boot/GENERIC um. Angenommen, direkter Zugriff auf die Maschine ist möglich, so kann eine Kopie des GENERIC-Kernels von den CD-ROM-Medien installiert werden. Legen Sie die Installations-CD ein und benutzen Sie die folgenden Befehle: &prompt.root; mount /cdrom &prompt.root; cd /cdrom/X.Y-RELEASE/kernels &prompt.root; ./install.sh GENERIC Ersetzen Sie X.Y-RELEASE mit der richtigen Version der Veröffentlichung, die Sie verwenden. Der GENERIC-Kernel wird standardmässig in /boot/GENERIC installiert. Falls alle obigen Schritte fehlschlagen, kann der GENERIC-Kernel folgendermassen aus den Quellen neu gebaut und installiert werden: &prompt.root; cd /usr/src &prompt.root; env DESTDIR=/boot/GENERIC make kernel &prompt.root; mv /boot/GENERIC/boot/kernel/* /boot/GENERIC &prompt.root; rm -rf /boot/GENERIC/boot Damit dieser Kernel als GENERIC-Kernel von freebsd-update erkannt wird, darf die GENERIC-Konfigurationsdatei in keinster Weise geändert worden sein. Es wird ebenfalls empfohlen, dass dieser ohne irgendwelche speziellen Optionen erstellt wird (bevorzugt mit einer leeren /etc/make.conf). Der Neustart in den GENERIC-Kernel ist zu diesem Zeitpunkt nicht notwendig. Aktualisierungen an Haupt- und Unterversionen können durchgeführt werden, wenn man freebsd-update eine Release-Version als Ziel übergibt. Beispielsweise wird das folgende Kommando das System auf &os; 6.4 aktualisieren: &prompt.root; freebsd-update -r 6.4-RELEASE upgrade Nachdem das Kommando empfangen wurde, überprüft freebsd-update die Konfigurationsdatei und das aktuelle System, um die nötigen Informationen für die Systemaktualisierung zu sammeln. Eine Bildschirmausgabe wird anzeigen, welche Komponenten erkannt und welche nicht erkannt wurden. Zum Beispiel: Looking up update.FreeBSD.org mirrors... 1 mirrors found. Fetching metadata signature for 6.3-RELEASE from update1.FreeBSD.org... done. Fetching metadata index... done. Inspecting system... done. The following components of FreeBSD seem to be installed: kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin world/base world/info world/lib32 world/manpages The following components of FreeBSD do not seem to be installed: kernel/generic world/catpages world/dict world/doc world/games world/proflibs Does this look reasonable (y/n)? y An diesem Punkt wird freebsd-update versuchen, alle notwendigen Dateien für die Aktualisierung herunter zu laden. In manchen Fällen wird der Benutzer mit Fragen konfrontiert, um festzustellen, was installiert werden soll oder auf welche Art und Weise fortgesetzt werden soll. Wenn ein selbstkonfigurierter Kernel benutzt wird, produziert der vorherige Schritt eine Warnung ähnlich zu der folgenden: WARNING: This system is running a "MYKERNEL" kernel, which is not a kernel configuration distributed as part of FreeBSD 6.3-RELEASE. This kernel will not be updated: you MUST update the kernel manually before running "/usr/sbin/freebsd-update install" Diese Warnung kann an dieser Stelle problemlos ignoriert werden. Der aktualisierte GENERIC-Kernel wird als ein Zwischenschritt im Aktualisierungsprozess verwendet. Nachdem alle Korrekturen auf das lokale System heruntergeladen wurden, werden diese nun eingespielt. Dieser Prozess kann eine gewisse Zeit in Anspruch nehmen, abhängig von der Geschwindigkeit und Auslastung der Maschine. Konfigurationsdateien werden ebenfalls zusammengefügt - dieser Teil der Prozedur benötigt einige Benutzereingaben, da eine Datei möglicherweise von Hand zusammengefasst werden muss oder ein Editor erscheint auf dem Bildschirm zum manuellen bearbeiten. Die Ergebnisse von jeder erfolgreichen Zusammenfassung werden dem Benutzer angezeigt, während der Prozess weiterläuft. Eine fehlgeschlagene oder ignorierte Zusammenfassung wird den Prozess sofort beenden. Benutzer sollten eine Sicherung von /etc anlegen und wichtige Dateien später manuell vereinen, beispielsweise master.passwd oder group. Das System ist noch nicht verändert worden, alle Korrekturen und Vereinigungen sind in einem anderen Verzeichnis vorgenommen worden. Wenn alle Korrekturen erfolgreich eingespielt, alle Konfigurationsdateien zusammengefügt wurden und es den Anschein hat, dass der Prozess problemlos verlaufen wird, müssen die Änderungen vom Anwender noch angewendet werden. Sobald dieser Prozess abgeschlossen ist, können die Aktualisierungen über das folgende Kommando auf die Platte geschrieben werden: &prompt.root; freebsd-update install Der Kernel und die Module werden zuerst aktualisiert. Zu diesem Zeitpunkt muss die Maschine neu gestartet werden. Wenn das System einen selbstkonfigurierten Kernel verwendet, benutzen Sie das &man.nextboot.8;-Kommando, um den Kernel für den nächsten Neustart auf /boot/GENERIC zu setzen (welcher aktualisiert wurde): &prompt.root; nextboot -k GENERIC Bevor mit dem GENERIC-Kernel das System neu gestartet wird, vergewissern Sie sich, dass alle notwendigen Treiber für ihr System enthalten sind, um korrekt zu starten (und schliessen Sie ihn ans Netzwerk an, falls auf die Maschine, die aktualisiert wird, von der Ferne aus zugegriffen wird). Achten Sie besonders darauf, dass wenn der vorherige selbstkonfigurierte Kernel Funktionalität beinhaltet, die von Kernelmodulen zur Verfügung gestellt wurde, dass diese temporär in den GENERIC-Kernel über die Datei /boot/loader.conf übernommen werden. Sie sollten ebenfalls nicht benötigte Dienste, eingehängte Platten, verbundene Netzlaufwerke, usw. deaktivieren, bis der Aktualisierungsprozess abgeschlossen ist. Die Maschine sollte nun mit dem aktualisierten Kernel neu gestartet werden: &prompt.root; shutdown -r now Sobald das System wieder hochgefahren wurde, muss freebsd-update erneut gestartet werden. Der Zustand des Prozesses wurde zuvor gesichert und deshalb wird freebsd-update nicht von vorne beginnen, jedoch alle alten Shared-Libraries und Objektdateien löschen. Um zu diesem Zustand zu gelangen, setzen Sie das folgende Kommando ab: &prompt.root; freebsd-update install Abhängig davon, ob irgendwelche Bibliotheksversionen erhöht wurden, kann es sein, dass nur zwei Installationsphasen anstatt drei durchlaufen werden. Nun muss alle Drittanbieter-Software neu erstellt und neu installiert werden. Dies ist notwendig, da die installierte Software möglicherweise Abhängigkeiten zu Bibliotheken enthält, die während der Aktualisierung entfernt wurden. Der ports-mgmt/portupgrade-Befehl kann verwendet werden, um diesen Vorgang zu automatisieren. Die folgenden Kommandos können verwendet werden, um diesen Prozess zu starten: &prompt.root; portupgrade -f ruby &prompt.root; rm /var/db/pkg/pkgdb.db &prompt.root; portupgrade -f ruby18-bdb &prompt.root; rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db &prompt.root; portupgrade -af Sobald dies abgeschlossen ist, beenden Sie den Aktualisierungsprozess mit einem letzten Aufruf von freebsd-update. Geben Sie den folgenden Befehl ein, um alle losen Enden des Aktualisierungsprozesses miteinander zu verknüpfen: &prompt.root; freebsd-update install Wenn der GENERIC-Kernel temporär Verwendung fand, ist dies der richtige Zeitpunkt, einen neuen, selbstkonfigurierten Kernel zu bauen und über die übliche Methode zu installieren. Booten Sie anschliessend die Maschine in die neue &os;-Version. Der Prozess ist damit abgeschlossen. Vergleich des Systemzustands Das freebsd-update-Werkzeug kann verwendet werden, um den Zustand der installierten &os;-Version gegenüber einer bekannten und funktionierenden Kopie zu vergleichen. Diese Option vergleicht die aktuelle Version von Systemwerkzeugen, Bibliotheken und Konfigurationsdateien. Um diesen Vergleich zu starten, geben Sie den folgenden Befehl ein: &prompt.root; freebsd-update IDS >> outfile.ids Obwohl der Befehlsname IDS lautet, sollte er in keiner Weise als Ersatz für ein Intrusion Detection System wie security/snort angesehen werden. Da freebsd-update seine Daten auf Platte ablegt, ist die Möglichkeit von Verfälschungen offensichtlich. Obwohl diese Möglichkeit durch die Verwendung von kern.securelevel oder die Ablage von freebsd-update auf einem Nur-Lese Dateisystem, wenn es gerade nicht gebraucht wird, eingedämmt werden kann, besteht eine bessere Lösung darin, das System gegen ein gesichertes Medium, wie eine DVD oder einen externen, separat aufbewahrten USB-Plattenspeicher, zu vergleichen. Das System wird jetzt untersucht und eine Liste von Dateien ausgegeben, zusammen mit deren &man.sha256.1;-Hashwerten, sowohl der von der Release-Version bekannte Wert als auch der des aktuell installierten Systems. Das ist der Grund dafür, warum die Ausgabe an die Datei outfile.ids geschickt wurde. Es scrollt zu schnell vorbei, um diese mit den Augen zu vergleichen und bald wird auch der Konsolenpuffer damit überfüllt. Diese Zeilen sind dazu noch extrem lang, aber das Ausgabeformat kann sehr einfach verarbeitet werden. Um beispielsweise eine Liste von allen Dateien zu erhalten, die sich vom aktuellen Release unterscheiden, geben Sie das folgende Kommando ein: &prompt.root; cat outfile.ids | awk '{ print $1 }' | more /etc/master.passwd /etc/motd /etc/passwd /etc/pf.conf Diese Ausgabe wurde abgeschnitten, es existieren noch viel mehr Dateien dazu. Manche dieser Dateien besitzen ganz selbstverständliche Veränderungen, /etc/passwd wurde beispielsweise geändert, um Benutzer zum System hinzuzufügen. In manchen Fällen kann es anderen Dateien wie Kernelmodule geben, welche sich geändert haben, weil freebsd-update diese aktualisiert hat. Um bestimmte Dateien oder Verzeichnisse auszuschliessen, hängen Sie diese an die IDSIgnorePaths-Option in /etc/freebsd-update.conf an. Diese Vorgehensweise kann als Teil einer ausgeklügelten Aktualisierungsmethode benutzt werden, unabhängig von der zuvor angesprochenen Variante. Tom Rhodes Geschrieben von Colin Percival Basierend auf bereitgestellten Mitschriften von Benedict Reuschling Übersetzt von Portsnap: Ein Werkzeug zur Aktualisierung der Ports-Sammlung Updating and Upgrading Portsnap Updating and Upgrading Das Basissystem von &os; enthält auch ein Programm zum Aktualisieren der Ports-Sammlung: das &man.portsnap.8; Werkzeug. Wenn es ausgeführt wird, verbindet es sich mit einem entfernten Rechner, überprüft den Sicherungsschlüssel und lädt eine neue Kopie der Ports-Sammlung herunter. Der Schlüssel wird dazu verwendet, um die Integrität aller heruntergeladenen Dateien zu prüfen und um sicherzustellen, dass diese unterwegs nicht verändert wurden. Um die aktuellsten Dateien der Ports-Sammlung herunter zu laden, geben Sie das folgende Kommando ein: &prompt.root; portsnap fetch Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found. Fetching snapshot tag from portsnap1.FreeBSD.org... done. Fetching snapshot metadata... done. Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008. Fetching 3 metadata patches.. done. Applying metadata patches... done. Fetching 3 metadata files... done. Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done. Applying patches... done. Fetching 133 new ports or files... done. Dieses Beispiel zeigt, dass &man.portsnap.8; mehrere Korrekturen für die aktuellen Ports-Daten gefunden und verifiziert hat. Es zeigt auch, dass das Programm zuvor schon einmal gestartet wurde. Wäre es das erste Mal, würde nur die Ports-Sammlung heruntergeladen werden. Wenn &man.portsnap.8; erfolgreich die fetch-Operation abgeschlossen hat, befinden sich die Ports-Sammlung und die dazugehörigen Korrekturen auf dem lokalen System, welches die Überprüfung bestanden hat. Wenn portsnap das erste Mal ausgeführt wird, verwenden Sie extract, um die aktualisierten Dateien zu installieren: &prompt.root; portsnap extract /usr/ports/.cvsignore /usr/ports/CHANGES /usr/ports/COPYRIGHT /usr/ports/GIDs /usr/ports/KNOBS /usr/ports/LEGAL /usr/ports/MOVED /usr/ports/Makefile /usr/ports/Mk/bsd.apache.mk /usr/ports/Mk/bsd.autotools.mk /usr/ports/Mk/bsd.cmake.mk ... Für weitere Aufrufe von portsnap fetch sollte stattdessen update verwendet werden: &prompt.root; portsnap update Der Prozess ist jetzt abgeschlossen und Anwendungen können mittels der aktuellen Ports-Sammlung installiert oder aktualisiert werden. Die Operationen fetch und extract oder update können auch nacheinander ausgeführt werden, wie im folgenden Beispiel gezeigt: &prompt.root; portsnap fetch update Benedict Reuschling Übersetzt von Aktualisieren der Dokumentationssammlung Updating and Upgrading Documentation Updating and Upgrading Neben dem Basissystem und der Ports-Sammlung ist die Dokumentation ein wichtiger Bestandteil des &os; Betriebssystems. Obwohl eine aktuelle Version der &os; Dokumentation jederzeit auf der &os; Webseite verfügbar ist, verfügen manche Benutzer nur über eine langsame oder überhaupt keine Netzwerkverbindung. Glücklicherweise gibt es mehrere Möglichkeiten, die Dokumentation, welche mit jeder Version ausgeliefert wird, zu aktualisieren, indem eine lokale Kopie der aktuellen &os;-Dokumentationssammlung verwendet wird. Verwenden von CVSup um die Dokumentation zu aktualisieren Die Quellen und die installierte Kopie der &os; Dokumentation kann mittels CVSup aktualisiert werden, indem ein ähnlicher Mechanismus angewendet wird, wie derjenige für die Betriebssystemquellen (vergleichen Sie mit ). Dieser Abschnitt beschreibt: Wie die Dokumentations-Werkzeugsammlung installiert wird, welche die Werkzeuge enthält, die nötig sind, um die &os; Dokumentation aus den Quellen neu zu erstellen. Wie man eine Kopie der Dokumentationsquellen nach /usr/doc herunterlädt, unter Verwendung von CVSup. Wie man die &os; Dokumentation aus den Quellen baut und unter /usr/share/doc installiert. Manche der Optionen zum Erstellen, die vom System zum Bauen der Dokumentation unterstützt werden, z.B. die Optionen welche nur ein paar der unterschiedlichen Sprachübersetzungen der Dokumentation erstellen oder die Optionen, die ein bestimmtes Ausgabeformat auswählen. CVSup und die Werkzeugsammlung der Dokumentation installieren Die &os; Dokumentation aus dem Quellen zu erstellen benötigt eine ziemlich grosse Anzahl an Werkzeugen. Diese Werkzeuge sind nicht Teil des &os; Basissystems, da sie eine grosse Menge an Plattenplatz verbrauchen und nicht von allen &os;-Anwendern benötigt werden. Sie sind nur für diejenigen Benutzer notwendig, die aktiv an neuer Dokumentation fü &os; schreiben oder häufig ihre Dokumentation aus den Quellen bauen lassen. Alle benötigten Werkzeuge sind als Teil der Ports-Sammlung verfügbar. Der Port textproc/docproj dient als Masterport, der vom &os; Documentation Project entwickelt wurde, um die initiale Installation und zukünftige Aktualisierungen dieser Werkzeuge zu vereinfachen. Wenn Sie die Dokumentation nicht als &postscript; oder PDF benötigen, können Sie alternativ die Installation des textproc/docproj-nojadetex-Ports in Erwägung ziehen. Diese Version der Dokumentations-Werkzeugsammlung enthält alles ausser das teTeX-Textsatzsystem. teTeX ist eine sehr grosse Sammlung an Werkzeugen, deshalb ist es vernünftig, deren Installation auszulassen, wenn die Ausgabe von PDF nicht unbedingt gebraucht wird. Für weitere Informationen über das Installieren und Verwenden von CVSup, lesen Sie CVSup verwenden. Die Dokumentationsquellen aktualisieren Das Programm CVSup kann eine saubere Kopie der Dokumentationsquellen holen, indem es die Datei /usr/share/examples/cvsup/doc-supfile als Konfigurationsvorlage verwendet. Der Standard-Host zum Aktualisieren ist auf einen Platzhalterwert im doc-supfile gesetzt, aber &man.cvsup.1; akzeptiert auch einen Hostnamen über die Kommandozeile. Somit können die Dokumentationsquellen von einem der CVSup-Server geholt werden, indem man eingibt: &prompt.root; cvsup -h cvsup.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/doc-supfile Ändern Sie cvsup.FreeBSD.org auf den Ihnen am nächsten gelegenen CVSup-Server. Eine vollständige Liste von Spiegelservern finden Sie unter . Es dauert eine Weile, wenn die Dokumentationsquellen das allererste Mal heruntergeladen werden. Lassen Sie es laufen, bis es fertig ist. Zukünftige Aktualisierungen der Dokumentationsquellen können Sie über den gleichen Befehl bekommen. Das Programm CVSup lädt und kopiert nur diejenigen Aktualisierungen herunter, die seit seinem letzten Aufruf hinzugekommen sind. Deshalb sollte jeder weitere Aufruf von CVSup nach dem Ersten wesentlich schneller abgeschlossen sein. Nachdem die Quellen einmal ausgecheckt wurden, besteht ein anderer Weg, die Dokumentation zu aktualisieren, darin, das Makefile im Verzeichnis /usr/doc anzupassen. Durch setzen von SUP_UPDATE, SUPHOST und DOCSUPFILE in der Datei /etc/make.conf ist es jetzt möglich, folgendes zu tun: &prompt.root; cd /usr/doc &prompt.root; make update Ein typischer Satz dieser &man.make.1;-Optionen für /etc/make.conf ist: SUP_UPDATE= yes SUPHOST?= cvsup.freebsd.org DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfile Das Setzen des Werts von SUPHOST und DOCSUPFILE auf ?= erlaubt es, diese in der Kommandozeile von make zu überschreiben. Diese Methode wird empfohlen, um Optionen zu make.conf hinzuzufügen, um zu verhinden, dass man die Datei jedes Mal bearbeiten muss, um einen anderen Wert für die Option auszuprobieren. Einstellbare Optionen der Dokumentationsquellen Das System zum aktualisieren und erstellen der &os;-Dokumentation unterstützt ein paar Optionen, welche den Prozess der Aktualisierung von Teilen der Dokumentation oder einer bestimmten Übersetzung erleichtert. Diese Optionen lassen sich entweder systemweit in der Datei /etc/make.conf setzen, oder als Kommandozeilenoptionen, die dem &man.make.1;-Werkzeug übergeben werden. Die folgenden Optionen sind ein paar davon: DOC_LANG Eine Liste von Sprachen und Kodierungen, die gebaut und installiert werden sollen, z.B. en_US.ISO8859-1, um nur die englische Dokumentation zu erhalten. FORMATS Ein einzelnes Format oder eine Liste von Ausgabeformaten, das gebaut werden soll. Momentan werden html, html-split, txt, ps, pdf, und rtf unterstützt. SUPHOST Der Hostname des CVSup-Servers, der verwendet werden soll, um Aktualisierungen zu holen. DOCDIR Wohin die Dokumentation installiert werden soll. Der Standardpfad ist /usr/share/doc. Für weitere make-Variablen, die als systemweite Optionen in &os; unterstützt werden, lesen Sie &man.make.conf.5;. Für weitere make-Variablen, die vom System zum Erstellen der &os;-Dokumentation unterstützt werden, lesen Sie die Fibel für neue Mitarbeiter des &os;-Dokumentationsprojekts. Die &os;-Dokumentation aus den Quellen installieren Wenn ein aktueller Schnappschuss der Dokumentationsquellen nach /usr/doc heruntergeladen wurde, ist alles bereit für eine Aktualisierung der bestehenden Dokumentation. Eine komplette Aktualisierung aller Sprachoptionen, definiert durch die DOC_LANG Makefile-Option, kann durch folgende Eingabe erreicht werden: &prompt.root; cd /usr/doc &prompt.root; make install clean Wenn make.conf mit den richtigen Optionen DOCSUPFILE, SUPHOST und SUP_UPDATE eingerichtet wurde, kann der Installationsschritt mit einer Aktualisierung der Dokumentationsquellen kombiniert werden, indem man eingibt: &prompt.root; cd /usr/doc &prompt.root; make update install clean Wenn nur eine Aktualisierung einer bestimmten Sprache gewünscht wird, kann &man.make.1; in einem sprachspezifischen Unterverzeichnis von /usr/doc aufgerufen werden, z.B.: &prompt.root; cd /usr/doc/en_US.ISO8859-1 &prompt.root; make update install clean Die zu installierenden Ausgabeformate können durch das Setzen der make-Variablen FORMATS angegeben werden, z.B.: &prompt.root; cd /usr/doc &prompt.root; make FORMATS='html html-split' install clean Marc Fonvieille Basierend auf der Arbeit von Verwendung von Dokumentations-Ports Updating and Upgrading documentation package Updating and Upgrading Im vorherigen Abschnitt wurde eine Methode gezeigt, wie die &os;-Dokumentation aus den Quellen gebaut werden kann. Allerdings sind quellbasierte Aktualisierungen möglicherweise nicht für alle &os;-Systeme geeignet oder praktikabel. Das Erstellen der Dokumentationsquellen benötigt eine grosse Anzahl an Werkzeugen, Programmen und Hilfsmitteln, die documentation toolchain, ein gewisser Grad an Vertrautheit mit CVS und ausgecheckte Quellen von einem Repository, sowie ein paar manuelle Schritte, um diese ausgecheckten Quellen zu bauen. In diesem Abschnitt wird eine alternative Art und Weise vorgestellt, wie man die installierte Kopie der &os;-Dokumentation aktualisieren kann. Diese Methode verwendet die Ports-Sammlung und erlaubt es: vorgefertige Schnappschüsse der Dokumentation herunter zu laden und zu installieren, ohne vorher irgendetwas lokal zu erstellen (dadurch ist es nicht mehr notwenig, den kompletten Werkzeugkasten der Dokumentation zu installieren). die Dokumentationsquellen herunterzuladen und durch das Ports-System erstellen zu lassen (was die Schritte zum Auschecken und Erstellen etwas erleichtert). Diese beiden Methoden der Aktualisierung der &os;-Dokumentation werden durch eine Menge von Dokumentations-Ports unterstützt, die von &a.doceng; monatlich aktualisiert wird. Diese sind in der Ports-Sammlung unter der virtuellen Kategorie, docs genannt, gelistet. Erstellen und Installieren von Dokumentations-Ports Die Dokumentations-Ports nutzen das Ports-System, um das Erstellen von Dokumentation wesentlich einfacher zu machen. Es automatisiert den Prozess des Auscheckens der Dokumentationsquellen, aufrufen von &man.make.1; mit den passenden Umgebungsvariablen und Kommandozeilenoptionen und macht die Installation und Deinstallation von Dokumentation so einfach wie die Installation von jedem anderen Port oder Paket. Als zusätzliche Eigenschaft zeichnen sie eine Abhängigkeit zum Dokumentations-Werkzeugsatz auf, wenn die Dokumentations-Ports lokal erstellt werden, weshalb dieser auch automatisch mitinstalliert wird. Die Dokumentations-Ports sind wie folgt organisiert: Es existiert ein Master-Port, misc/freebsd-doc-en, in dem alle Dateien zu den Dokumentations-Ports abgelegt sind. Es dient als Basis für alle Dokumentations-Ports. Als Voreinstellung wird nur die englische Dokumentation gebaut. Es gibt einen Alles-in-Einem-Port, misc/freebsd-doc-all, welcher die komplette Dokumentation in allen verfügbaren Sprachen erstellt und installiert. Schliesslich gibt es noch einen sogenannten slave port f&¨r jede Übersetzung, z.B.: misc/freebsd-doc-hu für Dokumentation in ungarischer Sprache. All diese benötigen den Master-Port und installieren die übersetzte Dokumentation in der entsprechenden Sprache. Um einen Dokumentations-Port aus den Quellen zu installieren, geben Sie das folgende Kommando (als root) ein: &prompt.root; cd /usr/ports/misc/freebsd-doc-en &prompt.root; make install clean Auf diese Weise wird die englische Dokumentation gebaut und als getrenntes HTML-Format im Verzeichnis /usr/local/share/doc/freebsd installiert (genau wie unter zu finden). Gebräuchliche Schalter und Optionen Es gibt viele Optionen, um das Standarderhalten der Dokumentations-Ports zu verändern. Im Folgenden sind nur ein paar davon aufgeführt: WITH_HTML Erlaubt das Erstellen im HTML-Format: eine einzige HTML-Datei pro Dokument. Die formatierte Dokumentation wird als Datei mit dem Namen article.html gespeichert, oder, je nachdem, als book.html, zuzuüglich der Bilder. WITH_PDF Erlaubt das Erstellen von &adobe; Portable Document Format, für die Verwendung mit &adobe; &acrobat.reader;, Ghostscript oder anderen PDF-Betrachtern. Die formatierte Dokumentation wird als Datei mit dem Namen article.pdf oder, soweit angemessen, als book.pdf gespeichert. DOCBASE Wohin die Dokumentation installiert werden soll. Der Standardpfad ist /usr/local/share/doc/freebsd. Beachten Sie, dass sich der Standardpfad von dem Verzeichnis unterscheidet, das von der CVSup-Methode verwendet wird. Das liegt daran, dass ein Port installiert wird und diese überlicherweise im Verzeichnis /usr/local abgelegt werden. Durch setzen der PREFIX-Variablen kann dieses Verhalten geändert werden. Es folgt ein kurzes Beispiel, wie die Variablen verwendet werden, um die oben erwähnte ungarische Dokumentation als Portable Document Format zu installieren: &prompt.root; cd /usr/ports/misc/freebsd-doc-hu &prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean Verwendung von Dokumentations-Paketen Das Erstellen der Dokumentations-Ports aus den Quellen, wie im vorherigen Abschnitt beschrieben, benötigt die lokale Installation der Dokumentations-Werkzeugsammlung und ein wenig Festplattenspeicher für das Bauen der Ports. Sollten die Ressourcen zum Bauen der Dokumentations-Werkzeugsammlung nicht zur Verfügung stehen, oder weil das erstellen zuviel Plattenplatz benötigen würde, ist es trotzdem möglich, bereits zuvor gebaute Schnappschüsse der Dokumentations-Ports zu installieren. &a.doceng; erstellt monatliche Schnappschüsse der Dokumentations-Pakete von &os;. Diese Binärpakete können mit jedem der mitgelieferten Paketwerkzeuge installiert werden, beispielsweise &man.pkg.add.1;, &man.pkg.delete.1; und so weiter. Wenn Binärpakete zu Einsatz kommen, wird die &os;-Dokumentation in allen verfügbaren Formaten in der gegebenen Sprache installiert. Zum Beispiel installiert das folgende Kommando das aktuelle, vorgefertigte Paket der ungarischen Dokumentation: &prompt.root; pkg_add -r hu-freebsd-doc Pakete haben das folgende Namensformat, welches sich von dem Namen des dazugehörigen Ports unterscheidet: lang-freebsd-doc. lang entspricht hier der Kurzform des Sprachcodes, z.B. hu für Ungarisch, oder zh_cn für vereinfachtes Chinesisch. Dokumentations-Ports aktualisieren Um einen zuvor installierten Dokumentations-Port zu aktualisieren, kann jedes Werkzeug, das auch zum Aktualisieren von Ports verwendet wird, eingesetzt werden. Beispielsweise aktualisiert das folgende Kommando die installierte ungarische Dokumentation mittels des Programms ports-mgmt/portupgrade indem nur Pakete verwendet werden sollen: &prompt.root; portupgrade -PP hu-freebsd-doc Pav Lucistnik Based on information provided by Using Docsnap Updating and Upgrading Docsnap Updating and Upgrading Docsnap is an &man.rsync.1; repository for updating installed &os; Documentation in a relatively easy and fast way. A Docsnap server tracks the documentation sources, and builds them in HTML format every hour. The textproc/docproj is unneeded with Docsnap as only patches to the built documentation exist. The only requirement for using this technique is the net/rsync port or package. To add it, use the following command: &prompt.root; pkg_add -r rsync Docsnap has been originally developed for updating documentation installed to /usr/share/doc, but the following examples could be adapted for other directories as well. For user directories, it does not require root privileges. To update the documentation set, issue the following command: &prompt.root; rsync -rltvz docsnap.sk.FreeBSD.org::docsnap /usr/share/doc There is only one Docsnap server at the moment; the docsnap.sk.FreeBSD.org shown above. Do not use the flag here as there are some items installed into /usr/share/doc during make installworld, which would accidentally be removed. To clean up, use this command instead: &prompt.root; rsync -rltvz --delete docsnap.sk.FreeBSD.org::docsnap/??_??\.\* /usr/share/doc If a subset of documentation needs to be updated, for example, the English documentation only, the following command should be used: &prompt.root; rsync -rltvz docsnap.sk.FreeBSD.org::docsnap/en_US.ISO8859-1 /usr/share/doc ]]> Einem Entwicklungszweig folgen -CURRENT -STABLE FreeBSD besitzt zwei Entwicklungszweige: &os.current; und &os.stable;. Dieser Abschnitt beschreibt beide Zweige und erläutert, wie Sie Ihr System auf dem aktuellen Stand eines Zweiges halten. Zuerst wird &os.current; vorgestellt, dann &os.stable;. &os.current; Beachten Sie im Folgenden, dass &os.current; die Spitze der Entwicklung von &os; ist. Benutzer von &os.current; sollten über sehr gute technische Fähigkeiten verfügen und in der Lage sein, schwierige Probleme alleine zu lösen. Wenn &os; neu für Sie ist, überlegen Sie sich genau, ob Sie &os.current; benutzen wollen. Was ist &os.current;? Snapshot &os.current; besteht aus den neuesten Quellen des FreeBSD-Systems. Es enthält Sachen, an denen gerade gearbeitet wird, experimentelle Änderungen und Übergangsmechanismen, die im nächsten offiziellen Release der Software enthalten sein können oder nicht. Obwohl &os.current; täglich von vielen Entwicklern gebaut wird, gibt es Zeiträume, in denen sich das System nicht bauen lässt. Diese Probleme werden so schnell wie möglich gelöst, aber ob Sie mit &os.current; Schiffbruch erleiden oder die gewünschten Verbesserungen erhalten, kann von dem Zeitpunkt abhängen, an dem Sie sich den Quelltext besorgt haben! Wer braucht &os.current;? &os.current; wird hauptsächlich für 3 Interessengruppen zur Verfügung gestellt: Entwickler, die an einem Teil des Quellbaums arbeiten und daher über die aktuellen Quellen verfügen müssen. Tester, die bereit sind, Zeit in das Lösen von Problemen zu investieren und sicherstellen, dass &os.current; so stabil wie möglich bleibt. Weiterhin Leute, die Vorschläge zu Änderungen oder der generellen Entwicklung von &os; machen und Patches bereitstellen, um diese Vorschläge zu realisieren. Für Leute, die die Entwicklung im Auge behalten wollen, oder die Quellen zu Referenzzwecken (zum Beispiel darin lesen, aber nicht verwenden) benutzen wollen. Auch diese Gruppe macht Vorschläge oder steuert Quellcode bei. Was &os.current; <emphasis>nicht</emphasis> ist! Der schnellste Weg, neue Sachen vor dem offiziellen Release auszuprobieren. Bedenken Sie, dass der erste, der die neuen Sachen ausprobiert, auch der erste ist, der die neuen Fehler findet. Ein schneller Weg, um an Fehlerbehebungen (engl. bug fixes) zu kommen. Jede Version von &os.current; führt mit gleicher Wahrscheinlichkeit neue Fehler ein, mit der sie alte behebt. In irgendeiner Form offiziell unterstützt. Wir tun unser Bestes, um Leuten aus den drei legitimen Benutzergruppen von &os.current; zu helfen, aber wir haben einfach nicht die Zeit, technische Unterstützung zu erbringen. Das kommt nicht daher, dass wir kleinliche, gemeine Leute sind, die anderen nicht helfen wollen (wenn wir das wären, würden wir &os; nicht machen), wir können einfach nicht jeden Tag Hunderte Nachrichten beantworten und an &os; arbeiten! Vor die Wahl gestellt, &os; zu verbessern oder jede Menge Fragen zu experimentellem Code zu beantworten, haben sich die Entwickler für ersteres entschieden. Benutzen von &os.current; -CURRENT benutzen Es ist essentiell, die Mailinglisten &a.current.name; und &a.svn-src-head.name; zu lesen. Wenn Sie &a.current.name; nicht lesen, verpassen Sie die Kommentare anderer über den momentanen Zustand des Systems und rennen demzufolge in viele bekannte Probleme, die schon gelöst sind. Noch kritischer ist, dass Sie wichtige Bekanntmachungen verpassen, die erhebliche Auswirkungen auf die Stabilität Ihres Systems haben können. In der &a.svn-src-head.name; Mailingliste sehen Sie zu jeder Änderung das Commit-Log, das Informationen zu möglichen Seiteneffekten enthält. Um diese Listen zu abonnieren (oder zu lesen) besuchen Sie bitte die Seite &a.mailman.lists.link;. Weitere Informationen erhalten Sie, wenn Sie dort auf die gewünschte Liste klicken. Wenn Sie daran interessiert sind, die Änderungen am gesamten Quellbaum mit zu verfolgen, schlagen wir vor, die Liste &a.svn-src-all.name; zu abonnieren. Beschaffen Sie sich die Quellen von einem &os;-Spiegel. Sie haben dazu zwei Möglichkeiten: cvsup cron -CURRENT mit CVSup synchronisieren Benutzen Sie das Programm cvsup mit der Datei standard-supfile aus dem Verzeichnis /usr/share/examples/cvsup. Dies ist die empfohlene Methode, da Sie die ganzen Quellen nur einmal herunterladen und danach nur noch Änderungen beziehen. Viele lassen cvsup aus cron heraus laufen, um ihre Quellen automatisch auf Stand zu bringen. Sie müssen die obige Sup-Datei anpassen und cvsup in Ihrer Umgebung konfigurieren. Die standard-supfile-Beispieldatei ist dafür vorgesehen, einen bestimmten Sicherheitszweig zu verfolgen und nicht &os.current;. Sie müssen diese Datei bearbeiten und die folgende Zeile: *default release=cvs tag=RELENG_X_Y durch diese ersetzen: *default release=cvs tag=. Lesen Sie den Abschnitt über CVS Tags im Handbuch, um eine genaue Beschreibung von verwendbaren Tags zu erhalten. -CURRENT mit CTM synchronisieren CTM kommt in Frage, wenn Sie über eine schlechte Internet-Anbindung (hoher Preis oder nur E-Mail Zugriff) verfügen. Der Umgang mit CTM ist allerdings recht mühsam und Sie können beschädigte Dateien erhalten. Daher wird es selten benutzt, was wiederum dazu führt, dass es über längere Zeit nicht funktioniert. Wir empfehlen jedem mit einem 9600 bps oder schnellerem Modem, CVSup zu benutzen. Wenn Sie die Quellen einsetzen und nicht nur darin lesen wollen, besorgen Sie sich bitte die kompletten Quellen von &os.current; und nicht nur ausgesuchte Teile. Der Grund hierfür ist, dass die verschiedenen Teile der Quellen voneinander abhängen. Es ist ziemlich sicher, dass Sie in Schwierigkeiten geraten, wenn Sie versuchen, nur einen Teil der Quellen zu übersetzen. -CURRENT übersetzen Sehen Sie sich das Makefile in /usr/src genau an, bevor Sie &os.current; übersetzen. Wenn Sie &os; das erste Mal aktualisieren, sollten Sie sowohl einen Kernel als auch das System neu installieren. Lesen Sie bitte die Mailingliste &a.current; und /usr/src/UPDATING, um über Änderungen im Installationsverfahren, die manchmal vor der Einführung eines neuen Releases notwendig sind, informiert zu sein. Seien Sie aktiv! Wenn Sie &os.current; laufen lassen, wollen wir wissen, was Sie darüber denken, besonders wenn Sie Verbesserungsvorschläge oder Fehlerbehebungen haben. Verbesserungsvorschläge, die Code enthalten, werden übrigens begeistert entgegengenommen. &os.stable; Was ist &os.stable;? -STABLE &os.stable; ist der Entwicklungszweig, auf dem Releases erstellt werden. Dieser Zweig ändert sich langsamer als &os.current; und alle Änderungen hier sollten zuvor in &os.current; ausgetestet sein. Beachten Sie, dass dies immer noch ein Entwicklungszweig ist und daher zu jedem Zeitpunkt die Quellen von &os.stable; verwendbar sein können oder nicht. &os.stable; ist Teil des Entwicklungsprozesses und nicht für Endanwender gedacht. Wer braucht &os.stable;? Wenn Sie den FreeBSD-Entwicklungsprozess, besonders im Hinblick auf das nächste Release, verfolgen oder dazu beitragen wollen, sollten Sie erwägen, &os.stable; zu benutzen. Auch wenn sicherheitsrelevante Fehlerbehebungen in den &os.stable; Zweig einfließen, müssen Sie deswegen noch lange nicht &os.stable; verfolgen. Jeder der FreeBSD Sicherheitshinweise beschreibt für jedes betroffene Release, Das stimmt nicht ganz. Obwohl wir alte FreeBSD Releases für einige Jahre unterstützen, können wir sie nicht ewig unterstützen. Eine vollständige Beschreibung der Sicherheitspolitik für alte FreeBSD Releases entnehmen Sie bitte http://www.FreeBSD.org/security/. wie sie einen sicherheitsrelevanten Fehler beheben. Wenn Sie den Entwicklungszweig aus Sicherheitsgründen verfolgen wollen, bedenken Sie, dass Sie neben Fehlerbehebungen auch eine Vielzahl unerwünschter Änderungen erhalten werden. Obwohl wir versuchen sicherzustellen, dass der &os.stable; Zweig sich jederzeit übersetzen lässt und läuft, können wir dafür keine Garantie übernehmen. Auch wenn Neuentwicklungen in &os.current; stattfinden, ist es jedoch so, dass mehr Leute &os.stable; benutzen als &os.current; und es daher unvermeidlich ist, dass Fehler und Grenzfälle erst in &os.stable; auffallen. Aus diesen Gründen empfehlen wir Ihnen nicht, blindlings &os.stable; zu benutzen. Es ist wichtig, dass Sie &os.stable; zuerst sorgfältig in einer Testumgebung austesten, bevor Sie Ihre Produktion auf &os.stable; migrieren. Wenn Sie dies nicht leisten können, empfehlen wir Ihnen, das aktuelle FreeBSD-Release zu verwenden. Benutzen Sie dann den binären Update-Mechanismus, um auf neue Releases zu migrieren. Benutzen von &os.stable; -STABLE benutzen Lesen Sie Mailingliste &a.stable.name;, damit Sie über Abhängigkeiten beim Bau von &os.stable; und Sachen, die besondere Aufmerksamkeit erfordern, informiert sind. Umstrittene Fehlerbehebungen oder Änderungen werden von den Entwicklern auf dieser Liste bekannt gegeben. Dies erlaubt es den Benutzern, Einwände gegen die vorgeschlagenen Änderungen vorzubringen. Abonnieren Sie die passende SVN-Liste für den jeweiligen Branch, den Sie verfolgen. Wenn Sie beispielsweise den Zweig 7-STABLE verfolgen, lesen Sie die &a.svn-src-stable-7.name;. Dort sehen Sie zu jeder Änderung das Commit-Log, das Informationen zu möglichen Seiteneffekten enthält. Um diese Listen oder andere Listen zu abonnieren besuchen Sie bitte die Seite &a.mailman.lists.link;. Weitere Informationen erhalten Sie, wenn Sie dort auf die gewünschte Liste klicken. Wenn Sie daran interessiert sind, Änderungen am gesamten Quellbaum zu verfolgen, dann empfehlen wir, dass Sie &a.svn-src-all.name; abonnieren. Wenn Sie ein neues System installieren und dazu einen der monatlich aus &os.stable; erzeugten Snapshots verwenden wollen, sollten Sie zuerst die Snapshot Website auf aktuelle Informationen überprüfen. Alternativ können Sie auch das neueste &os.stable;-Release von den Spiegeln beziehen und Ihr System nach den folgenden Anweisungen aktualisieren. Wenn Sie schon ein älteres Release von &os; und das System mit dem Quellcode aktualisieren wollen, benutzen Sie einen der &os;-Spiegel. Sie haben dazu zwei Möglichkeiten: cvsup cron -STABLE mit CVSup synchronisieren Benutzen Sie das Programm cvsup mit der Datei stable-supfile aus dem Verzeichnis /usr/share/examples/cvsup. Dies ist die empfohlene Methode, da Sie die ganzen Quellen nur einmal herunterladen und danach nur noch Änderungen beziehen. Viele lassen cvsup aus cron heraus laufen, um ihre Quellen automatisch auf Stand zu bringen. Sie müssen das oben erwähnte supfile anpassen und cvsup konfigurieren. -STABLE mit CTM synchronisieren Benutzen Sie CTM. Wenn Sie über keine schnelle und billige Internet-Anbindung verfügen, sollten Sie diese Methode in Betracht ziehen. Benutzen Sie cvsup oder ftp, wenn Sie schnellen Zugriff auf die Quellen brauchen und die Bandbreite keine Rolle spielt, andernfalls benutzen Sie CTM. -STABLE übersetzen Bevor Sie &os.stable; übersetzen, sollten Sie sich das Makefile in /usr/src genau anschauen. Wenn Sie &os; das erste Mal aktualisieren, sollten Sie sowohl einen Kernel als auch das System neu installieren. Lesen Sie bitte die Mailingliste &a.stable; und /usr/src/UPDATING, um über Änderungen im Installationsverfahren, die manchmal vor der Einführung eines neuen Releases notwendig sind, informiert zu sein. Synchronisation der Quellen Sie können eine Internet-Verbindung (oder E-Mail) dazu nutzen, Teile von &os;, wie die Quellen zu einzelnen Projekten, oder das Gesamtsystem, aktuell zu halten. Dazu bieten wir die Dienste AnonymousCVS, CVSup und CTM an. Obwohl es möglich ist, nur Teile des Quellbaums zu aktualisieren, ist die einzige unterstütze Migrationsprozedur, den kompletten Quellbaum zu aktualisieren und alles, das heißt das Userland (z.B. alle Programme in /bin und /sbin) und die Kernelquellen, neu zu übersetzen. Wenn Sie nur einen Teil der Quellen, zum Beispiel nur den Kernel oder nur die Programme aus dem Userland, aktualisieren, werden Sie oft Probleme haben, die von Übersetzungsfehlern über Kernel-Panics bis hin zu Beschädigungen Ihrer Daten reichen können. CVS anonymous Anonymous CVS und CVSup benutzen die Pull-Methode Von engl. to pull = ziehen. Der Client holt sich bei dieser Methode die Dateien ab. , um die Quellen zu aktualisieren. Im Fall von CVSup ruft der Benutzer oder ein cron-Skript cvsup auf, das wiederum mit einem cvsupd Server interagiert, um Ihre Quellen zu aktualisieren. Mit beiden Methoden erhalten Sie aktuelle Updates zu einem genau von Ihnen bestimmten Zeitpunkt. Sie können die Prozedur auf bestimmte Dateien oder Verzeichnisse einschränken, so dass Sie nur die Updates bekommen, die für Sie von Interesse sind. Die Updates werden zur Laufzeit, abhängig von den Sachen, die Sie schon haben und den Sachen, die Sie haben wollen, auf dem Server generiert. Anonymous CVS ist eine Erweiterung von CVS, die es Ihnen erlaubt, Änderungen direkt aus einem entfernten CVS-Repository zu ziehen. Anonymous CVS ist leichter zu handhaben als CVSup, doch ist letzteres sehr viel effizienter. CTM Im Gegensatz dazu vergleicht CTM Ihre Quellen nicht mit denen auf einem Server. Stattdessen läuft auf dem Server ein Skript, das Änderungen an Dateien gegenüber seinem vorigen Lauf bemerkt, die Änderungen komprimiert, mit einer Sequenznummer versieht und für das Verschicken per E-Mail kodiert (es werden nur druckbare ASCII-Zeichen verwendet). Wenn Sie diese CTM-Deltas erhalten haben, können Sie sie mit &man.ctm.rmail.1; benutzen, welches die Deltas dekodiert, verifiziert und dann die Änderungen an Ihren Quellen vornimmt. Dieses Verfahren ist viel effizienter als CVSup und erzeugt auch weniger Last auf unseren Servern, da es die Push-Methode Von engl. to push = schieben. Der Server schickt dem Client die Dateien. verwendet. Es gibt natürlich noch weitere Unterschiede, die Sie beachten sollten. Wenn Sie unabsichtlich Teile Ihres Archivs löschen, wird das von CVSup wie Anonymous CVS erkannt und repariert. Wenn sich fehlerhafte Dateien in Ihrem Quellbaum befinden, löschen Sie diese einfach und synchronisieren erneut. CTM leistet das nicht, wenn Sie Teile des Quellbaums gelöscht haben und keine Sicherung besitzen, müssen Sie von neuem, das heißt vom letzten Basis-Delta, starten und die Änderungen wieder mit CTM nachziehen. Das komplette Basissystem neu bauen Bau des Basissystems Wenn Sie Ihren lokalen Quellbaum mit einer bestimmten FreeBSD Version (&os.stable;, &os.current;, usw.) synchronisiert haben, können Sie diesen benutzen, um das System neu zu bauen. Erstellen Sie eine Sicherungskopie! Es kann nicht oft genug betont werden, wie wichtig es ist, Ihr System zu sichern, bevor Sie die nachfolgenden Schritte ausführen. Obwohl der Neubau des Systems eine einfache Aufgabe ist, wenn Sie sich an die folgende Anleitung halten, kann es dennoch vorkommen, dass Sie einen Fehler machen, oder dass Ihr System nicht mehr bootet, weil andere Entwickler Fehler in den Quellbaum eingeführt haben. Stellen Sie sicher, dass Sie eine Sicherung erstellt haben und über eine Fixit-Floppy oder eine startfähige CD verfügen. Wahrscheinlich werden Sie die Startmedien nicht benötigen, aber gehen Sie auf Nummer Sicher! Abonnieren Sie die richtige Mailingliste Mailingliste Die &os.stable; und &os.current; Zweige befinden sich in ständiger Entwicklung. Die Leute, die zu &os; beitragen, sind Menschen und ab und zu machen sie Fehler. Manchmal sind diese Fehler harmlos und lassen Ihr System eine Warnung ausgeben. Die Fehler können allerdings auch katastrophal sein und dazu führen, dass Sie Ihr System nicht mehr booten können, Dateisysteme beschädigt werden oder Schlimmeres passiert. Wenn solche Probleme auftauchen, wird ein heads up an die passende Mailingliste geschickt, welches das Problem erklärt und die betroffenen Systeme benennt. Eine all clear Meldung wird versendet, wenn das Problem gelöst ist. Wenn Sie &os.stable; oder &os.current; benutzen und nicht die Mailinglisten &a.stable; beziehungsweise &a.current; lesen, bringen Sie sich nur unnötig in Schwierigkeiten. Finger weg von <command>make world</command> Ältere Dokumentationen empfehlen, das Kommando make world für den Neubau. Das Kommando überspringt wichtige Schritte. Setzen Sie es nur ein, wenn Sie wissen was Sie tun. In fast allen Fällen ist make world falsch, benutzen Sie stattdessen die nachstehende Anleitung. Richtig aktualisieren Um Ihr System zu aktualisieren, sollten Sie zuerst /usr/src/UPDATING lesen, und eventuelle, für Ihre Quellcodeversion nötigen Aufgaben erledigen, bevor Sie das System bauen. Danach aktualisieren Sie Ihr System mit den folgenden Schritten. Bei den hier dargestellten Aktualisierungsschritten wird davon ausgegangen, dass Sie momentan eine alte &os;-Version verwenden, die aus einem alten Compiler, Kernel, sowie einem alten Basissystem und veralteten Konfigurationsdateien besteht. Mit Basissystem sind hier die zentralen Binärdateien, Bibliotheken und Entwicklerdateien gemeint. Der Compiler ist Teil des Basissystems, beinhaltet aber ein paar Besonderheiten. Es wird ausserdem davon ausgegangen, dass Sie bereits die Quellen für ein neues System bezogen haben. Falls die Quellen in dem vorliegenden System zu alt sind, lesen Sie , um detaillierte Hilfe über die Aktualisierung der Quellen zu erhalten. Die Aktualisierung des Systems aus den Quellen ist ein wenig ausgetüftelter als es zunächst den Anschein hat. Die Entwickler von &os; haben es über die Jahre für Nötig befunden, den vorgeschlagenen Ablauf ziemlich stark zu verändern, da neue Arten von unvermeidlichen Abhängigkeiten mit der Zeit ans Licht kamen. Der übrige Teil dieses Abschnitts beschreibt die Überlegungen hinter der aktuell empfohlenen Aktualisierungsreihenfolge. Jede erfolgreiche Aktualisierung muss sich mit den folgenden Sachverhalten auseinandersetzen: Der alte Compiler ist möglicherweise nicht in der Lage, den neuen Kernel zu übersetzen (alte Compiler besitzen manchmal Fehler). Deshalb sollte der neue Kernel mit dem neuen Compiler übersetzt werden. Ganz besonders muss darauf geachtet werden, dass der neue Compiler vor dem neuen Kernel gebaut wird. Das bedeutet nicht unbedingt, dass der neue Compiler auch installiert werden muss, bevor der neue Kernel gebaut wird. Das neue Basissystem benötigt eventuell neue Eigenschaften des Kernels. Also muss der neue Kernel installiert sein, bevor das neue Basissystem installiert wird. Diese ersten beiden Sachverhalte sind die Grundlage für die zentrale Sequenz von buildworld, buildkernel, installkernel und installworld, die in den folgenden Abschnitten beschrieben wird. Dies ist keine vollständige Liste all der Gründe, warum Sie den aktuell empfohlenen Prozess der Aktualisierung bevorzugen sollten. Ein paar der weniger naheliegenden Gründe sind im folgenden aufgezählt: Das alte Basissystem wird möglicherweise nicht korrekt mit dem neuen Kernel funktionieren, weshalb Sie das neue Basissystem sofort nach der Installation des neuen Kernels installieren müssen. Manche Änderungen an der Konfiguration müssen erledigt worden sein, bevor das neue Basissystem installiert wird, jedoch können andere die Funktionalität des alten Basissystems beeinträchtigen. Aus diesem Grund sind zwei verschiedene Schritte notwendig, um eine Aktualisierung der Konfiguration durchzuführen. Der Aktualisierungsprozess ersetzt zum Grossteil Dateien oder fügt neue hinzu, bestehende Dateien werden nicht gelöscht. In wenigen Ausnahmefällen kann dies Probleme verursachen. Aus diesem Grund wird der Aktualisierungsprozess manchmal bestimmte Dateien zum manuellen Löschen vorschlagen. Dies wird eventuell in der Zukunft automatisch durchgeführt. Diese Bedenken haben zu der folgenden Reihenfolge geführt. Beachten Sie, dass der genaue Ablauf für bestimmte Aktualisierungen zusätzliche Schritte nach sich zieht, jedoch sollte der Kernprozess davon nicht beeinträchtigt werden: make buildworld Dieser Schritt übersetzt zuerst den neuen Compiler und ein paar damit zusammenhängende Werkzeuge und verwendet dann den neuen Compiler, um den Rest des Basissystems zu erstellen. Das Ergebnis landet dann in /usr/obj. make buildkernel Statt dem alten Ansatz, &man.config.8; und &man.make.1; zu verwenden, nutzt dieser den neuen Compiler, der in /usr/obj abgelegt ist. Das schützt Sie vor falschen Compiler-Kernel-Kombinationen. make installkernel Platziert den neuen Kernel und Kernelmodule auf der Platte, was es erlaubt, mit dem frisch aktualisierten Kernel zu starten. Starten Sie das System neu in den Single-User-Modus. Der Single-User-Modus minimiert Probleme mit der Aktualisierung von Programmen, die bereits gestartet sind. Ebenso minimiert es Probleme, die mit der Verwendung des alten Basissystems und des neuen Kernels zu tun haben könnten. mergemaster Dieser Schritt aktualisiert ein paar initiale Konfigurationsdateien als Vorbereitung für das neue Basissystem. Beispielsweise fügt es neue Benutzergruppen zum System oder neue Benutzernamen in die Passwortdatenbank hinzu. Dies wird oftmals benötigt, wenn neue Gruppen oder bestimmte Systembenutzerkonten seit der letzten Aktualisierung hinzu gekommen sind, so dass der installworld-Schritt in der Lage ist, auf dem neu installierten System die Benutzer oder Systemgruppennamen ohne Probleme zu verwenden. make installworld Kopiert das Basissystem aus /usr/obj. Sie haben jetzt den neuen Kernel und das neue Basissystem auf der Festplatte. mergemaster Sie können nun die verbleibenden Konfigurationsdateien aktualisieren, da Sie nun das neue Basissystem auf der Platte haben. Starten Sie das System neu. Ein kompletter Systemneustart ist notwendig, um den neuen Kernel und das neue Basissystem mit den neuen Konfigurationsdateien zu laden. Beachten Sie, dass wenn Sie von einem Release des gleichen &os;-Zweigs auf ein aktuelleres Release des gleichen Zweigs, z.B. von 7.0 auf 7.1, aktualisieren, dann ist diese Vorgehensweise nicht unbedingt notwendig, da Sie nur sehr unwahrscheinlich in ungünstige Kombinationen zwischen Compiler, Kernel, Basissystem und den Konfigurationsdateien geraten werden. Die ältere Vorgehensweise von make world, gefolgt von der Erstellung und Installation des neuen Kernels funktioniert möglicherweise gut genug, um kleinere Aktualisierungen vorzunehmen. Wenn Sie allerdings zwischen Hauptversionen aktualisieren wollen und befolgen diese Schritte nicht, sollten Sie sich auf Probleme gefasst machen. Es ist auch wichtig zu wissen, dass viele Aktualisierungen, z.B. von 4.X auf 5.0, viele spezielle und zusätzliche Schritte benötigt, wie beispielsweise das umbennen oder löschen von speziellen Dateien vor installworld. Lesen Sie die Datei /usr/src/UPDATING gründlich, besonders am Ende, wo die aktuell vorgeschlagene Aktualisierungssequenz explizit aufgelistet ist. Diese Prozedur hat sich mit der Zeit weiterentwickelt, da die Entwickler es für unmöglich erachtet haben, bestimmte Arten von Kombinationsproblemen vollständig auszuschliessen. Hoffentlich wird die aktuelle Aktualisierungsprozedur für lange Zeit stabil bleiben. Aktualisierungen von&os; 3.X oder noch früheren Releases ist ein wenig trickreicher. Lesen Sie dazu UPDATING sorgfältig, wenn Sie diese Art von Aktualisierung durchführen müssen. Als Zusammenfassung ist hier nochmal die aktuell vorgeschlagene Vorgehensweise für die Aktualisierung von &os; aus den Quellen aufgelistet: &prompt.root; cd /usr/src &prompt.root; make buildworld &prompt.root; make buildkernel &prompt.root; make installkernel &prompt.root; shutdown -r now Es gibt einige, sehr seltene Situationen, in denen Sie mergemaster -p zusätzlich ausführen müssen, bevor Sie das System mit buildworld bauen. Diese Situationen werden in UPDATING beschrieben. Solche Situationen treten aber in der Regel nur dann auf, wenn Sie Ihr &os;-System um eine oder mehrere Hauptversionen aktualisieren. Nachdem installkernel erfolgreich abgeschlossen wurde, starten Sie das System im Single-User-Modus (etwa durch die Eingabe von boot -s am Loaderprompt). Danach führen Sie die folgenden Anweisungen aus: &prompt.root; adjkerntz -i &prompt.root; mount -a -t ufs &prompt.root; mergemaster -p &prompt.root; cd /usr/src &prompt.root; mergemaster &prompt.root; reboot Lesen Sie bitte weiter Die obige Vorschrift ist nur eine Gedächtnisstütze. Um die einzelnen Schritte zu verstehen, lesen Sie bitte die folgenden Abschnitte, insbesondere wenn Sie einen angepassten Kernel erstellen. Lesen Sie <filename>/usr/src/UPDATING</filename> Bevor Sie etwas anderes tun, lesen Sie bitte /usr/src/UPDATING (oder die entsprechende Datei, wenn Sie den Quellcode woanders installiert haben). Die Datei enthält wichtige Informationen zu Problemen, auf die Sie stoßen könnten oder gibt die Reihenfolge vor, in der Sie bestimmte Kommandos laufen lassen müssen. Die Anweisungen in UPDATING sind aktueller als die in diesem Handbuch. Im Zweifelsfall folgen Sie bitte den Anweisungen aus UPDATING. Das Lesen von UPDATING ersetzt nicht das Abonnieren der richtigen Mailingliste. Die beiden Voraussetzungen ergänzen sich, es reicht nicht aus, nur eine zu erfüllen. Überprüfen Sie <filename>/etc/make.conf</filename> make.conf Überprüfen Sie die Dateien /usr/share/examples/etc/make.conf und /etc/make.conf. Die erste enthält Vorgabewerte, von denen die meisten auskommentiert sind. Um diese während des Neubaus des Systems zu nutzen, tragen Sie die Werte in /etc/make.conf ein. Beachten Sie, dass alles, was Sie in /etc/make.conf eintragen, bei jedem Aufruf von make angezogen wird. Es ist also klug, hier etwas Sinnvolles einzutragen. Typischerweise wollen Sie die Zeilen, die CFLAGS und NO_PROFILE enthalten, aus /usr/share/examples/etc/make.conf nach /etc/make.conf übertragen und dort aktivieren. Sehen Sie sich auch die anderen Definitionen, wie COPTFLAGS oder NOPORTDOCS an und entscheiden Sie, ob Sie diese aktivieren wollen. Aktualisieren Sie die Dateien in <filename>/etc</filename> Das Verzeichnis /etc enthält den Großteil der Konfigurationsdateien des Systems und Skripten, die beim Start des Systems ausgeführt werden. Einige dieser Skripten ändern sich bei einer Migration auf eine neue FreeBSD-Version. Einige der Konfigurationsdateien, besonders /etc/group, werden für den Normalbetrieb des Systems gebraucht. Es gab Fälle, in denen das Kommando make installworld auf bestimmte Accounts oder Gruppen angewiesen war, die aber während der Aktualisierung fehlten. Demzufolge kam es zu Problemen bei der Aktualisierung. In einigen Fällen prüft make buildworld ob die Accounts oder Gruppen vorhanden sind. Ein Beispiel dafür trat beim Anlegen des Benutzers smmsp auf. Die Installationsprozedur schlug an der Stelle fehl, an der &man.mtree.8; versuchte, /var/spool/clientmqueue anzulegen. Um dieses Problem zu umgehen,rufen Sie &man.mergemaster.8; prä-buildworld-Modus auf, der mit aktiviert wird. In diesem Modus werden nur Dateien verglichen, die für den Erfolg von buildworld oder installworld essentiell sind. Wenn Ihre alte Version von mergemaster die Option noch nicht unterstützt, nehmen Sie beim ersten Lauf die neue Version aus dem Quellbaum: &prompt.root; cd /usr/src/usr.sbin/mergemaster &prompt.root; ./mergemaster.sh -p Wenn Sie besonders paranoid sind, sollten Sie Ihr System nach Dateien absuchen, die der Gruppe, die Sie umbenennen oder löschen, gehören: &prompt.root; find / -group GID -print Das obige Kommando zeigt alle Dateien an, die der Gruppe GID (dies kann entweder ein Gruppenname oder eine numerische ID sein) gehören. Wechseln Sie in den Single-User-Modus Single-User-Modus Sie können das System im Single-User-Modus übersetzen. Abgesehen davon, dass dies etwas schneller ist, werden bei der Installation des Systems viele wichtige Dateien, wie die Standard-Systemprogramme, die Bibliotheken und Include-Dateien, verändert. Sie bringen sich in Schwierigkeiten, wenn Sie diese Dateien auf einem laufenden System verändern, besonders dann, wenn zu dieser Zeit Benutzer auf dem System aktiv sind. Mehrbenutzermodus Eine andere Methode übersetzt das System im Mehrbenutzermodus und wechselt für die Installation in den Single-User-Modus. Wenn Sie diese Methode benutzen wollen, warten Sie mit den folgenden Schritten, bis der Bau des Systems fertig ist und Sie mit installkernel oder installworld installieren wollen. Als Superuser können Sie mit dem folgenden Kommando ein laufendes System in den Single-User-Modus bringen: &prompt.root; shutdown now Alternativ können Sie das System mit der Option single user in den Single-User-Modus booten. Danach geben Sie die folgenden Befehle ein: &prompt.root; fsck -p &prompt.root; mount -u / &prompt.root; mount -a -t ufs &prompt.root; swapon -a Die Kommandos überprüfen die Dateisysteme, hängen / wieder beschreibbar ein, hängen dann alle anderen UFS Dateisysteme aus /etc/fstab ein und aktivieren den Swap-Bereich. Zeigt Ihre CMOS-Uhr die lokale Zeit und nicht GMT an, dies erkennen Sie daran, dass &man.date.1; die falsche Zeit und eine flasche Zeitzone anzeigt, setzen Sie das folgende Kommando ab: &prompt.root; adjkerntz -i Dies stellt sicher, dass Ihre Zeitzone richtig eingestellt ist. Ohne dieses Kommando werden Sie vielleicht später Probleme bekommen. Entfernen Sie <filename>/usr/obj</filename> Die neugebauten Teile des Systems werden in der Voreinstellung unter /usr/obj gespeichert. Die Verzeichnisse dort spiegeln die Struktur unter /usr/src. Sie können den make buildworld Prozess beschleunigen, indem Sie dieses Verzeichnis entfernen. Dies erspart Ihnen zudem einigen Ärger aufgrund von Abhängigkeiten. Einige Dateien unter /usr/obj sind vielleicht durch die -Option (siehe &man.chflags.1;) schreibgeschützt, die vor dem Löschen entfernt werden muss. &prompt.root; cd /usr/obj &prompt.root; chflags -R noschg * &prompt.root; rm -rf * Übersetzen der Quellen des Basissystems Sichern der Ausgaben Für den Fall, dass etwas schief geht, sollten Sie die Ausgaben von &man.make.1; in einer Datei sichern, damit Sie eine Kopie der Fehlermeldung besitzen. Das mag Ihnen nicht helfen, den Fehler zu finden, kann aber anderen helfen, wenn Sie Ihr Problem in einer der &os;-Mailinglisten schildern. Dazu können Sie einfach das Kommando &man.script.1; benutzen, dem Sie beim Aufruf als Parameter den Dateinamen für die Ausgaben mitgeben. Setzen Sie das Kommando unmittelbar vor dem Neubau ab und geben Sie exit ein, wenn der Bau abgeschlossen ist: &prompt.root; script /var/tmp/mw.out Script started, output file is /var/tmp/mw.out &prompt.root; make TARGET … Ausgaben des Kommandos … &prompt.root; exit Script done, … Sichern Sie die Ausgaben nicht in /tmp, da dieses Verzeichnis beim nächsten Boot aufgeräumt werden kann. Ein geeigneteres Verzeichnis ist /var/tmp, wie im vorigen Beispiel gezeigt, oder das Heimatverzeichnis von root. Übersetzen des Basissystems Wechseln Sie in das Verzeichnis, in dem die Quellen liegen (in der Voreinstellung ist das /usr/src): &prompt.root; cd /usr/src make Zum Neubau der Welt benutzen Sie &man.make.1;. Dieses Kommando liest ein Makefile, das Anweisungen enthält, wie die Programme, aus denen &os; besteht, zu bauen sind und in welcher Reihenfolge diese zu bauen sind. Ein typischer Aufruf von make sieht wie folgt aus: &prompt.root; make -x -DVARIABLE target In diesem Beispiel ist eine Option, die Sie an &man.make.1; weitergeben wollen. Eine Liste gültiger Optionen finden Sie in der &man.make.1; Manualpage. Das Verhalten eines Makefiles wird von Variablen bestimmt. Mit setzen Sie eine Variable. Diese Variablen sind dieselben, die auch in /etc/make.conf gesetzt werden, dies ist nur ein alternativer Weg, Variablen zu setzen. Um zu verhindern, dass die profiled Bibliotheken gebaut werden, rufen Sie make wie folgt auf: &prompt.root; make -DNO_PROFILE target Dieser Aufruf entspricht dem folgenden Eintrag in /etc/make.conf: NO_PROFILE= true # Avoid compiling profiled libraries Jedes Makefile definiert einige Ziele, die festlegen, was genau zu tun ist. Mit target wählen Sie eins dieser Ziele aus. Einige Ziele im Makefile sind nicht für den Endanwender gedacht, sondern unterteilen den Bauprozess in eine Reihe von Einzelschritten. Im Regelfall müssen Sie &man.make.1; keine Parameter mitgeben, so dass Ihre Kommandozeile wie folgt aussehen wird: &prompt.root; make target target steht dabei für die verschiedenen Ziele. Das erste Ziel sollte immer buildworld sein. Mit buildworld wird ein kompletter Baum unterhalb von /usr/obj gebaut, der mit installworld, einem weiteren Ziel, auf dem System installiert werden kann. Über seperate Optionen zu verfügen, ist aus mehreren Gründen nützlich. Erstens können Sie das System auf einem laufenden System bauen, da die Bauprozedur abgekapselt vom Rest des Systems ist. Das System lässt sich im Mehrbenutzermodus ohne negative Seiteneffekte bauen. Die Installation mit installworld sollte aber immer noch im Single-User-Modus erfolgen. Zweitens können Sie NFS benutzen, um mehrere Maschinen in Ihrem Netzwerk zu aktualisieren. Wenn Sie die Maschinen A, B und C aktualisieren wollen, lassen sie make buildworld und make installworld auf A laufen. Auf den Maschinen B und C können Sie die Verzeichnisse /usr/src und /usr/obj von A einhängen und brauchen dort nur noch make installworld auszuführen, um die Bauresultate zu installieren. Obwohl das Ziel world noch existiert, sollten Sie es wirklich nicht mehr benutzen. Um das System zu bauen, setzen Sie das folgende Kommando ab: &prompt.root; make buildworld Mit können Sie make anweisen, mehrere Prozesse zu starten. Besonders effektiv ist das auf Mehrprozessor-Systemen. Da aber der Übersetzungsprozess hauptsächlich von IO statt der CPU bestimmt wird, ist diese Option auch auf Einprozessor-Systemen nützlich. Auf einem typischen Einprozessor-System können Sie den folgenden Befehl absetzen: &prompt.root; make -j4 buildworld &man.make.1; wird dann bis zu vier Prozesse gleichzeitig laufen lassen. Erfahrungsberichte aus den Mailinglisten zeigen, dass dieser Aufruf typischerweise den besten Geschwindigkeitsgewinn bringt. Wenn Sie ein Mehrprozessor-System besitzen und SMP in Ihrem Kernel konfiguriert ist, probieren Sie Werte zwischen 6 und 10 aus. Laufzeiten Bau des Basissystems Laufzeiten Die Laufzeit eines Baus wird von vielen Faktoren beeinflusst, ein aktuelles System benötigt aber etwa zwei Stunden um &os.stable; zu bauen. Der Bau von &os.current; dauert etwas länger. Übersetzen und Installation des Kernels Kernel Übersetzen Um das Beste aus Ihrem System zu holen, sollten Sie einen neuen Kernel kompilieren. Praktisch gesehen ist das sogar notwendig, da sich einige Datenstrukturen geändert haben und Programme wie &man.ps.1; oder &man.top.1; nur mit einem Kernel zusammen arbeiten, der auch zu dem entsprechenden Quellcode passt. Am einfachsten und sichersten bauen Sie dazu den GENERIC Kernel. Obwohl der GENERIC Kernel vielleicht nicht alle Ihre Geräte unterstützt, sollte er alles enthalten, um das System in den Single-User-Modus zu booten. Dies ist auch ein guter Test, um zu sehen, dass das System ordnungsgemäß funktioniert. Nachdem Sie mit GENERIC gebootet und sichergestellt haben, dass Ihr System funktioniert, können Sie einen neuen Kernel mit Ihrer Konfigurationsdatei bauen. In aktuellen &os;-Versionen müssen Sie das Basissystem neu bauen, bevor Sie einen neuen Kernel erstellen. Wenn Sie einen angepassten Kernel erstellen wollen und bereits über eine Konfigurationsdatei verfügen, geben Sie diese, wie im folgenden Beispiel gezeigt, auf der Kommandozeile an: &prompt.root; cd /usr/src &prompt.root; make buildkernel KERNCONF=MYKERNEL &prompt.root; make installkernel KERNCONF=MYKERNEL Wenn kern.securelevel einen Wert größer als 1 besitzt und der Kernel mit noschg oder ähnlichen Optionen geschützt ist, müssen Sie installkernel im Einbenutzermodus ausführen. Wenn das nicht der Fall ist, sollten die beiden Kommandos problemlos im Mehrbenutzermodus laufen. Weitere Informationen über kern.securelevel finden Sie in &man.init.8; und &man.chflags.1; erläutert Optionen, die Sie auf Dateien setzen können. Booten Sie in den Single-User-Modus Single-User-Modus Um zu prüfen, ob der neue Kernel funktioniert, sollten Sie in den Single-User-Modus booten. Folgen Sie dazu der Anleitung aus . Installation des Systems Wenn Sie make buildworld benutzt haben, um das System zu bauen, sollten Sie jetzt installworld benutzen, um es zu installieren. Rufen Sie dazu das folgende Kommando auf: &prompt.root; cd /usr/src &prompt.root; make installworld Wenn Sie mit dem make buildworld Kommando Variablen verwenden haben, müssen Sie dieselben Variablen auch bei dem make installworld Kommando angeben. Auf die anderen Optionen trifft das nur bedingt zu: darf mit installworld nicht benutzt werden. Sie haben zum Bauen die folgende Kommandozeile verwendet: &prompt.root; make -DNO_PROFILE buildworld Bei der Installation setzen Sie dann das folgende Kommando ab: &prompt.root; make -DNO_PROFILE installworld Würden Sie die Variable bei der Installation weglassen, so würde das System versuchen, die profiled Bibliotheken, die aber gar nicht gebaut wurden, zu installieren. Aktualisieren der von <command>make installworld</command> ausgelassenen Dateien Neue oder geänderte Konfigurationsdateien aus einigen Verzeichnissen, besonders /etc, /var und /usr werden bei der Installationsprozedur nicht berücksichtigt. Sie können diese Dateien mit &man.mergemaster.8; aktualisieren. Alternativ können Sie das auch manuell durchführen, obwohl wir diesen Weg nicht empfehlen. Egal welchen Weg Sie beschreiten, sichern Sie vorher den Inhalt von /etc für den Fall, dass etwas schief geht. Tom Rhodes Beigetragen von <command>mergemaster</command> mergemaster Das Bourne-Shell Skript &man.mergemaster.8; hilft Ihnen dabei, die Unterschiede zwischen den Konfigurationsdateien in /etc und denen im Quellbaum unter /usr/src/etc zu finden. mergemaster ist der empfohlene Weg, Ihre Systemkonfiguration mit dem Quellbaum abzugleichen. Rufen Sie mergemaster einfach auf und schauen Sie zu. Ausgehend von / wird mergemaster einen virtuellen Root-Baum aufbauen und darin die neuen Konfigurationsdateien ablegen. Diese Dateien werden dann mit den auf Ihrem System installierten verglichen. Unterschiede zwischen den Dateien werden im &man.diff.1;-Format dargestellt. Neue oder geänderte Zeilen werden mit gekennzeichnet. Zeilen die gelöscht oder ersetzt werden, sind mit einem gekennzeichnet. Das Anzeigeformat wird in &man.diff.1; genauer erklärt. &man.mergemaster.8; zeigt Ihnen jede geänderte Datei an und Sie haben die Wahl, die neue Datei (in mergemaster wird sie temporäre Datei genannt) zu löschen, sie unverändert zu installieren, den Inhalt der neuen Datei mit dem Inhalt der alten Datei abzugleichen, oder die &man.diff.1; Ausgabe noch einmal zu sehen. Sie können die aktuelle Datei auch überspringen, sie wird dann noch einmal angezeigt, nachdem alle anderen Dateien abgearbeitet wurden. Sie erhalten Hilfe, wenn Sie bei der Eingabeaufforderung von mergemaster ein ? eingeben. Wenn Sie die temporäre Datei löschen, geht mergemaster davon aus, dass Sie Ihre aktuelle Datei behalten möchten. Wählen Sie die Option bitte nur dann, wenn Sie keinen Grund sehen, die aktuelle Datei zu ändern. Wenn Sie die temporäre Datei installieren, wird Ihre aktuelle Datei mit der neuen Datei überschrieben. Sie sollten alle unveränderten Konfigurationsdateien auf diese Weise aktualisieren. Wenn Sie sich entschließen den Inhalt beider Dateien abzugleichen, wird ein Texteditor aufgerufen, indem Sie beide Dateien nebeneinander betrachten können. Mit der Taste l übernehmen Sie die aktuelle Zeile der links dargestellten Datei, mit der Taste r übernehmen Sie die Zeile der rechts dargestellten Datei. Das Ergebnis ist eine Datei, die aus Teilen der beiden ursprünglichen Dateien besteht und installiert werden kann. Dieses Verfahren wird gewöhnlich bei veränderten Dateien genutzt. Haben Sie sich entschieden die Differenzen noch einmal anzuzeigen, zeigt Ihnen &man.mergemaster.8; dieselbe Ausgabe, die Sie gesehen haben, bevor die Eingabeaufforderung ausgegeben wurde. Wenn &man.mergemaster.8; alle Systemdateien abgearbeitet hat, werden weitere Optionen abgefragt. Sie werden unter Umständen gefragt, ob Sie die Passwort-Datei neu bauen lassen wollen. Am Ende haben Sie die Möglichkeit, den Rest der temporären Dateien zu löschen. Manueller Abgleich der Konfigurationsdateien Wenn Sie den Abgleich lieber selbst ausführen wollen, beachten Sie bitte, dass Sie nicht einfach die Dateien aus /usr/src/etc nach /etc kopieren können. Einige dieser Dateien müssen zuerst installiert werden, bevor sie benutzt werden können. Das liegt daran, dass /usr/src/etc keine exakte Kopie von /etc ist. Zudem gibt es Dateien, die sich in /etc befinden aber nicht in /usr/src/etc. Wenn Sie, wie empfohlen, mergemaster benutzen, können Sie direkt in den nächsten Abschnitt wechseln. Am einfachsten ist es, wenn Sie die neuen Dateien in ein temporäres Verzeichnis installieren und sie nacheinander auf Differenzen zu den bestehenden Dateien durchsehen. Sichern Sie die Inhalte von <filename>/etc</filename> Obwohl bei dieser Prozedur keine Dateien in /etc automatisch verändert werden, sollten Sie dessen Inhalt an einen sicheren Ort kopieren: &prompt.root; cp -Rp /etc /etc.old Mit wird rekursiv kopiert und erhält die Attribute der kopierten Dateien, wie Zugriffszeiten und Eigentümer. Sie müssen die neuen Dateien in einem temporären Verzeichnis installieren. /var/tmp/root ist eine gute Wahl für das temporäre Verzeichnis, in dem auch noch einige Unterverzeichnisse angelegt werden müssen. &prompt.root; mkdir /var/tmp/root &prompt.root; cd /usr/src/etc &prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distribution Die obigen Kommandos bauen die nötige Verzeichnisstruktur auf und installieren die neuen Dateien in diese Struktur. Unterhalb von /var/tmp/root wurden einige leere Verzeichnisse angelegt, die Sie am besten wie folgt entfernen: &prompt.root; cd /var/tmp/root &prompt.root; find -d . -type d | xargs rmdir 2>/dev/null Im obigen Beispiel wurde die Fehlerausgabe nach /dev/null umgeleitet, um die Warnungen über nicht leere Verzeichnisse zu unterdrücken. /var/tmp/root enthält nun alle Dateien, die unterhalb von / installiert werden müssen. Sie müssen nun jede dieser Dateien mit den schon existierenden Dateien vergleichen. Einige der installierten Dateien unter /var/tmp/root beginnen mit einem .. Als dieses Kapitel verfasst wurde, waren das nur die Startdateien für die Shells in /var/tmp/root/ und /var/tmp/root/root/. Abhängig davon, wann Sie dieses Handbuch lesen, können mehr Dateien dieser Art existieren. Verwenden Sie ls -a um sicherzustellen, dass Sie alle derartigen Dateien finden. Benutzen Sie &man.diff.1; um Unterschiede zwischen zwei Dateien festzustellen: &prompt.root; diff /etc/shells /var/tmp/root/etc/shells Das obige Kommando zeigt Ihnen die Unterschiede zwischen der installierten Version von /etc/shells und der neuen Version in /var/tmp/root/etc/shells. Entscheiden Sie anhand der Unterschiede, ob Sie beide Dateien abgleichen oder die neue Version über die alte kopieren wollen. Versehen Sie das temporäre Verzeichnis mit einem Zeitstempel Wenn Sie das System oft neu bauen, müssen Sie /etc genauso oft aktualisieren. Dies kann mit der Zeit sehr lästig werden. Sie können das Verfahren beschleunigen, wenn Sie sich eine Kopie der Dateien behalten, die Sie zuletzt nach /etc installiert haben. Das folgende Verfahren zeigt Ihnen, wie das geht. Folgen Sie der normalen Prozedur um das System zu bauen. Wenn Sie /etc und die anderen Verzeichnisse aktualisieren wollen, geben Sie dem temporären Verzeichnis einen Namen, der das aktuelle Datum enthält. Wenn Sie dies zum Beispiel am 14. Februar 1998 durchführten, hätten Sie die folgenden Kommandos abgesetzt: &prompt.root; mkdir /var/tmp/root-19980214 &prompt.root; cd /usr/src/etc &prompt.root; make DESTDIR=/var/tmp/root-19980214 \ distrib-dirs distribution Gleichen Sie die Änderungen entsprechend der Anleitung von oben ab. Wenn Sie fertig sind, entfernen Sie das Verzeichnis /var/tmp/root-19980214 nicht. Wenn Sie nun neue Quellen heruntergeladen und gebaut haben, folgen Sie bitte Schritt 1. Wenn Sie zwischen den Updates eine Woche gewartet haben, haben Sie nun ein Verzeichnis mit dem Namen /var/tmp/root-19980221. Sie können nun die Unterschiede, die sich in einer Woche ergeben haben, sehen, indem Sie &man.diff.1; rekursiv anwenden: &prompt.root; cd /var/tmp &prompt.root; diff -r root-19980214 root-19980221 Üblicherweise sind die Differenzen, die Sie jetzt sehen, kleiner als die Differenzen zwischen /var/tmp/root-19980221/etc und /etc. Da die angezeigten Differenzen kleiner sind, ist es jetzt einfacher den Abgleich der Dateien durchzuführen. Sie können nun das älteste der beiden /var/tmp/root-* Verzeichnisse entfernen: &prompt.root; rm -rf /var/tmp/root-19980214 Wiederholen Sie diesen Prozess jedes Mal wenn Sie Dateien in /etc abgleichen müssen. Mit &man.date.1; können Sie den Verzeichnisnamen automatisch erzeugen: &prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"` Das System neu starten Sie sind nun am Ende der Prozedur angelangt. Nachdem Sie sich davon überzeugt haben, dass Ihr System funktioniert, starten Sie Ihr System mit &man.shutdown.8; neu: &prompt.root; shutdown -r now Ende Herzlichen Glückwunsch! Sie haben gerade erfolgreich Ihr &os; System aktualisiert. Es ist übrigens leicht einen Teil des Systems wiederherzustellen, für den Fall, dass Ihnen ein kleiner Fehler unterlaufen ist. Wenn Sie beispielsweise während des Updates oder Abgleichs /etc/magic aus Versehen gelöscht haben, wird &man.file.1; nicht mehr funktionieren. In diesem Fall können Sie das Problem mit dem folgenden Kommando beheben: &prompt.root; cd /usr/src/usr.bin/file &prompt.root; make all install Fragen Muss ich wirklich immer alles neu bauen, wenn sich etwas geändert hat? Darauf gibt es keine einfache Antwort. Was zu tun ist, hängt von den Änderungen ab. Es lohnt wahrscheinlich nicht, alles neu zu bauen, wenn sich bei einem CVSup-Lauf nur die folgenden Dateien geändert haben: src/games/cribbage/instr.c src/games/sail/pl_main.c src/release/sysinstall/config.c src/release/sysinstall/media.c src/share/mk/bsd.port.mk In diesem Fall können Sie in die entsprechenden Unterverzeichnisse wechseln und dort make all install ausführen. Wenn sich allerdings etwas Wichtiges, wie src/lib/libc/stdlib, geändert hat, sollten Sie die Welt oder mindestens die statisch gelinkten Teile des Systems (sowie Ihre statisch gelinkten Ergänzungen) neu bauen. Letztendlich ist das Ihre Entscheidung. Sie sind vielleicht damit zufrieden, das System alle zwei Wochen neu zu bauen und in der Zwischenzeit die anfallenden Änderungen zu sammeln. Wenn Sie sich zutrauen, alle Abhängigkeiten zu erkennen, bauen Sie vielleicht auch nur die geänderten Sachen neu. Das hängt natürlich auch noch davon ab, wie oft Sie ein Update durchführen wollen und ob Sie &os.stable; oder &os.current; benutzen. Der Bau bricht mit vielen Signal 11-Fehlern (oder anderen Signalnummern) ab. Was ist da passiert? Signal 11 Normalerweise zeigen diese Meldungen Hardwarefehler an. Ein Neubau der Welt ist ein guter Belastungstest für Ihre Hardware und zeigt oft Probleme mit dem Speicher auf. Dies äußert sich darin, dass der Kompiler mit dem Erhalt von seltsamen Signalen abbricht. Es liegt garantiert ein Hardwarefehler vor, wenn ein neuer Übersetzungslauf an einer anderen Stelle abbricht. In diesem Fall können Sie nur einzelne Komponenten Ihres Systems tauschen, um zu bestimmen, welche Komponente den Fehler verursacht. Kann ich /usr/obj löschen, wenn ich fertig bin? Kurze Antwort: Ja. In /usr/obj werden alle Dateien abgelegt, die während der Übersetzungsphase erstellt wurden. Dieses Verzeichnis wird in einem der ersten Schritte der Bauprozedur entfernt. Es macht daher wenig Sinn, dieses Verzeichnis zu behalten und Sie setzen eine Menge Plattenplatz, momentan ungefähr 340 MB, frei, wenn Sie es löschen. Wenn Sie allerdings genau wissen, was Sie tun, können Sie diesen Schritt bei make buildworld auslassen. Nachfolgende Bauprozeduren werden dadurch erheblich schneller, da die meisten Quelldateien nicht mehr neu übersetzt werden. Dafür können aber subtile Abhängigkeitsprobleme entstehen, die dazu führen, dass der Bau auf merkwürdige Weise abbrechen kann. Dies führt häufig zu unnötigen Diskussionen auf den &os; Mailinglisten, wenn sich jemand über einen kaputten Bau beschwert, aber nicht sieht, dass er Probleme hat, weil er eine Abkürzung genommen hat. Kann ein abgebrochener Bau weitergeführt werden? Das hängt davon ab, wieweit der Bauprozess fortgeschritten ist. Üblicherweise werden essentielle Werkzeuge, wie &man.gcc.1; und &man.make.1;, und die Systembibliotheken während des Bauprozesses neu erstellt (dies ist aber keine allgemein gültige Regel). Die neu erstellen Werkzeuge und Bibliotheken werden dann benutzt, um sich selbst noch einmal zu bauen, und wieder installiert. Anschließend wird das Gesamtsystem mit den neu erstellten Systemdateien gebaut. Wenn Sie sich im letzten Schritt befinden und Sie wissen, dass Sie dort sind, weil Sie durch die Ausgaben, die Sie ja sichern, der Bauprozedur gesehen haben, können Sie mit ziemlicher Sicherheit den Bau weiterführen: … Fehler beheben … &prompt.root; cd /usr/src &prompt.root; make -DNO_CLEAN all Diese Variablen verhindern, dass make buildworld die vorher erstellten Dateien löscht. Das Sie sich im letzten Schritt der Bauprozedur befinden, erkennen Sie daran, dass Sie in der Ausgabe die folgenden Zeilen finden: -------------------------------------------------------------- Building everything.. -------------------------------------------------------------- Wenn Sie diese Meldung nicht finden, oder sich nicht sicher sind, dann ist es besser, noch einmal ganz von Vorne anzufangen. Wie kann ich den Bauprozesss beschleunigen? Bauen Sie im Single-User-Modus. Legen Sie /usr/src und /usr/obj in getrennte Dateisysteme auf unterschiedliche Festplatten. Benutzen Sie nach Möglichkeit auch getrennte Platten-Controller. Noch besser ist es, diese Dateisysteme auf mehrere Festplatten mit &man.ccd.4; zu verteilen. Bauen Sie die profiled-Bibliotheken, die Sie wahrscheinlich sowieso nicht brauchen, nicht. /etc/make.conf sollte dazu NO_PROFILE=true enthalten. Setzen Sie die CFLAGS in /etc/make.conf auf . Die Optimierungsstufe ist deutlich langsamer und die Performance-Unterschiede zwischen und sind vernachlässigbar klein. veranlasst den Kompiler Pipes anstelle von Dateien für die Kommunikation zu benutzen. Dies spart einige Plattenzugriffe, geht aber auf Kosten des Speichers. Benutzen Sie , um mehrere Prozesse parallel laufen zu lassen. Normalerweise beschleunigt dies den Bauprozess unabhängig davon, ob Sie ein Einprozessor oder Mehrprozessor System einsetzen. Sie können das Dateisystem /usr/src mit der Option einhängen. Dies verhindert, dass die Zugriffszeiten der Dateien aktualisiert werden (eine Information, die Sie vielleicht gar nicht brauchen). &prompt.root; mount -u -o noatime /usr/src Das Beispiel geht davon aus, dass sich /usr/src auf einem separaten Dateisystem befindet. Wenn das nicht der Fall ist, weil das Verzeichnis beispielsweise Teil des /usr Dateisystems ist, müssen Sie anstelle von /usr/src den Mountpoint des Dateisystems angeben. Das Dateisystem, in dem sich /usr/obj befindet, kann mit der Option eingehangen werden. Dies bewirkt, dass Schreibzugriffe auf die Platte asynchron stattfinden, das heißt ein Schreibzugriff ist sofort beendet, die Daten werden allerdings erst einige Sekunden später geschrieben. Dadurch können Schreibzugriffe zusammengefasst werden, was einen erheblichen Geschwindigkeitszuwachs mit sich bringen kann. Beachten Sie, dass dies Ihr Dateisystem anfälliger für Fehler macht. Im Fall eines Stromausfalls besteht eine erhöhte Wahrscheinlichkeit, dass das Dateisystem beim Start der Maschine zerstört ist. Wenn sich /usr/obj auf einem extra Dateisystem befindet, ist das kein Problem. Wenn sich allerdings auf diesem Dateisystem noch andere wertvolle Daten befinden, stellen Sie sicher, dass Sie aktuelle Sicherungen besitzen. &prompt.root; mount -u -o async /usr/obj Ersetzen Sie /usr/obj durch den Mountpoint des entsprechenden Dateisystems, wenn es sich nicht auf einem eigenen Dateisystem befindet. Was mache ich, wenn etwas nicht funktioniert? Stellen Sie sicher, dass sich in Ihrer Umgebung keine Reste eines vorherigen Baus befinden. Das geht ganz einfach: &prompt.root; chflags -R noschg /usr/obj/usr &prompt.root; rm -rf /usr/obj/usr &prompt.root; cd /usr/src &prompt.root; make cleandir &prompt.root; make cleandir Ja, make cleandir muss wirklich zweimal aufgerufen werden. Nachdem Sie aufgeräumt haben, starten Sie den Bauprozess wieder mit make buildworld. Wenn Sie immer noch Probleme haben, schicken Sie die Fehlermeldungen und die Ausgabe von uname -a an die Mailingliste &a.de.questions;. Bereiten Sie sich darauf vor, weitere Fragen zu Ihrer Umgebung zu beantworten. Mike Meyer Beigetragen von Installation mehrerer Maschinen Wenn Sie mehrere Maschinen besitzen, die Sie alle auf dem gleichen Stand halten wollen, ist es eine Verschwendung von Ressourcen, die Quellen auf jeder Maschine vorzuhalten und zu übersetzen. Die Lösung dazu ist, eine Maschine den Großteil der Arbeit durchführen zu lassen und den anderen Maschinen das Ergebnis mit NFS zur Verfügung zu stellen. Dieser Abschnitt zeigt Ihnen wie das geht. Voraussetzungen Stellen Sie zuerst eine Liste der Maschinen zusammen, die auf demselben Stand sein sollen. Wir nennen diese Maschinen die Baugruppe. Jede dieser Maschinen kann mit einem eigenen Kernel laufen, doch sind die Programme des Userlands auf allen Maschinen gleich. Wählen Sie aus der Baugruppe eine Maschine aus, auf der der Bau durchgeführt wird, den Bau-Master. Dies sollte eine Maschine sein, die über die nötigen Ressourcen für make buildworld und make installworld verfügt. Sie brauchen auch eine Testmaschine, auf der Sie die Updates testen, bevor Sie sie in Produktion installieren. Dies sollte eine Maschine, eventuell der Bau-Master, sein, die über einen längeren Zeitraum nicht zur Verfügung stehen kann. Alle Maschinen der Baugruppe müssen /usr/obj und /usr/src von derselben Maschine an gleichem Ort einhängen. Idealerweise befinden sich die beiden Verzeichnisse auf dem Bau-Master auf verschiedenen Festplatten, sie können allerdings auch auf dem Bau-Master über NFS zur Verfügung gestellt werden. Wenn Sie mehrere Baugruppen haben, sollte sich /usr/src auf einem Bau-Master befinden und über NFS für den Rest der Maschinen zur Verfügung gestellt werden. Stellen Sie sicher, dass /etc/make.conf und /etc/src.conf auf allen Maschinen einer Baugruppe mit der Datei des Bau-Masters übereinstimmt. Der Bau-Master muss jeden Teil des Systems bauen, den irgendeine Maschine der Baugruppe benötigt. Auf dem Bau-Master müssen in /etc/make.conf alle zu bauenden Kernel mit der Variablen KERNCONF bekannt gegeben werden. Geben Sie dabei den Kernel des Bau-Masters zuerst an. Für jeden zu bauenden Kernel muss auf dem Bau-Master die entsprechende Konfigurationsdatei unter /usr/src/sys/arch/conf abgelegt werden. Installation des Basissystems Nach diesen Vorbereitungen können Sie mit dem Bau beginnen. Bauen Sie auf dem Bau-Master, wie in beschrieben, den Kernel und die Welt, installieren Sie aber nichts. Wechseln Sie auf die Testmaschine und installieren Sie den gerade gebauten Kernel. Wenn diese Maschine /usr/src und /usr/obj über NFS bekommt, müssen Sie das Netzwerk im Single-User-Modus aktivieren und die beiden Dateisysteme einhängen. Am einfachsten ist dies, wenn Sie auf der Testmaschine ausgehend vom Mehrbenutzermodus mit shutdown now in den Single-User-Modus wechseln. Sie können dann mit der normalen Prozedur den neuen Kernel und das System installieren und anschließend mergemaster laufen lassen. Wenn Sie damit fertig sind, können Sie die Maschine wieder in den Mehrbenutzermodus booten. Nachdem Sie sichergestellt haben, dass die Testmaschine einwandfrei funktioniert, wiederholen Sie diese Prozedur für jede Maschine in der Baugruppe. Die Ports-Sammlung Dasselbe Verfahren können Sie auch für die Ports-Sammlung anwenden. Zuerst müssen alle Maschinen einer Baugruppe /usr/ports von derselben Maschine über NFS zur Verfügung gestellt bekommen. Setzen Sie dann ein Verzeichnis für die Quellen auf, das sich alle Maschinen teilen. Dieses Verzeichnis können Sie in /etc/make.conf mit der Variablen DISTDIR angeben. Das Verzeichnis sollte für den Benutzer beschreibbar sein, auf den der Benutzer root vom NFS Subsystem abgebildet wird. Jede Maschine sollte noch WRKDIRPREFIX auf ein lokales Bauverzeichnis setzen. Wenn Sie vorhaben, Pakete zu bauen und zu verteilen, sollten Sie PACKAGES auf ein Verzeichnis mit den gleichen Eigenschaften wie DISTDIR setzen. diff --git a/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml index e8468f3c03..a2f02fd5a7 100644 --- a/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml @@ -1,1696 +1,1696 @@ Jim Mock Erweitert und neu strukturiert von Jake Hamby Ursprünglich veröffentlicht von Robert Altschaffel Übersetzt von Konfiguration des &os;-Kernels Übersicht Kernel Erstellen eines angepassten Kernels Der Kernel ist das Herz des &os; Betriebssystems. Er ist verantwortlich für die Speicherverwaltung, das Durchsetzen von Sicherheitsdirektiven, Netzwerkfähigkeit, Festplattenzugriffen und vieles mehr. Obwohl &os; es immer mehr ermöglicht, dynamisch konfiguriert zu werden, ist es ab und an notwendig, den Kernel neu zu konfigurieren und zu kompilieren. Nachdem Sie dieses Kapitel gelesen haben, werden Sie Folgendes wissen: Wieso Sie Ihren Kernel neu konfigurieren sollten. Wie Sie eine Kernelkonfigurationsdatei erstellen oder verändern. Wie Sie mit der Konfigurationsdatei einen neuen Kernel kompilieren. Wie Sie den neuen Kernel installieren. Was zu tun ist, falls etwas schiefgeht. Alle Kommandos, aus den Beispielen dieses Kapitels, müssen mit root-Rechten ausgeführt werden. Wieso einen eigenen Kernel bauen? Traditionell besaß &os; einen monolithischen Kernel. Das bedeutet, dass der Kernel ein einziges großes Programm war, das eine bestimmte Auswahl an Hardware unterstützte. Also musste man immer, wenn man das Kernelverhalten verändern wollte, zum Beispiel wenn man neue Hardware hinzufügen wollte, einen neuen Kernel kompilieren, installieren und das System neu starten. Heutzutage vertritt &os; immer mehr die Idee eines modularen Kernels, bei dem bestimmte Funktionen, je nach Bedarf, als Module geladen werden können. Ein bekanntes Beispiel dafür sind die Module für die PCMCIA-Karten in Laptops, die zum Starten nicht zwingend benötigt und erst bei Bedarf geladen werden. Trotzdem ist es noch immer nötig, einige statische Kernelkonfigurationen durchzuführen. In einigen Fällen ist die Funktion zu systemnah, um durch ein Modul zu realisiert werden. In anderen Fällen hat eventuell noch niemand ein ladbares Kernelmodul für diese Funktion geschrieben. Das Erstellen eines angepaßten Kernels ist eines der wichtigsten Rituale für erfahrene BSD-Benutzer. Obwohl dieser Prozess recht viel Zeit in Anspruch nimmt, bringt er doch viele Vorteile für Ihr &os; System. Der GENERIC-Kernel muss eine Vielzahl unterschiedlicher Hardware unterstützen, im Gegensatz dazu unterstützt ein angepasster Kernel nur Ihre Hardware. Dies hat einige Vorteile: Schnellerer Bootvorgang. Da der Kernel nur nach der Hardware des Systems sucht, kann sich die Zeit für einen Systemstart erheblich verkürzen. Geringerer Speicherbedarf. Ein eigener Kernel benötigt in der Regel weniger Speicher als ein GENERIC-Kernel durch das Entfernen von Funktionen und Gerätetreibern. Das ist vorteilhaft, denn der Kernel verweilt immer im RAM und verhindert dadurch, dass dieser Speicher von Anwendungen genutzt wird. Insbesondere profitieren Systeme mit wenig RAM davon. Zusätzliche Hardwareunterstützung. Ein angepasster Kernel kann Unterstützung für Geräte wie Soundkarten bieten, die im GENERIC-Kernel nicht enthalten sind. Tom Rhodes Geschrieben von Informationen über die vorhandene Hardware beschaffen Bevor Sie mit der Kernelkonfiguration beginnen, sollten Sie wissen, über welche Hardware Ihr System verfügt. Verwenden Sie derzeit noch ein anderes Betriebssystem, ist es meist sehr einfach, eine Liste der installierten Hardware zu erzeugen. Verwenden Sie beispielsweise µsoft.windows;, können Sie dafür den Gerätemanager verwenden, den Sie in der Systemsteuerung finden. Einige Versionen von µsoft.windows; verfügen über ein System-Icon auf dem Desktop, über das Sie den Gerätemanager direkt aufrufen können. Haben Sie außer &os; kein weiteres Betriebssystem, müssen Sie diese Informationen manuell zusammentragen. Eine Möglichkeit, an Informationen über die vorhandene Hardware zu gelangen, ist der Einsatz von &man.dmesg.8; in Kombination mit &man.man.1;. Die meisten &os;-Gerätetreiber haben eine eigene Manualpage, die Informationen über die unterstützte Hardware enthält. Während des Systemstarts werden Informationen über die vorhandene Hardware ausgegeben. Die folgenden Zeilen zeigen beispielsweise an, dass der psm-Treiber eine angeschlossene Maus gefunden hat: psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: [ITHREAD] psm0: model Generic PS/2 mouse, device ID 0 Dieser Treiber muss in Ihrer Kernelkonfigurationsdatei vorhanden sein oder durch das Werkzeug &man.loader.conf.5; geladen werden. Manchmal zeigt dmesg während des Systemstarts nur Systemmeldungen, aber keine Informationen zur gefundenen Hardware an. In diesem Fall können Sie diese Informationen durch das Studium der Datei /var/run/dmesg.boot herausfinden. Eine weitere Möglichkeit bietet das Werkzeug &man.pciconf.8;, das ausführliche Informationen bereitstellt. Dazu ein Beispiel: ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00 vendor = 'Atheros Communications Inc.' device = 'AR5212 Atheros AR5212 802.11abg wireless' class = network subclass = ethernet Diese Zeilen, die Sie durch den Aufruf des Befehls pciconf erhalten, zeigen, dass der Treiber ath eine drahtlose Ethernetkarte gefunden hat. Durch Eingabe des Befehls man ath öffnet sich die Manualpage &man.ath.4;. Rufen Sie &man.man.1; mit der Option auf, können Sie die Datenbank der Manualpages auch durchsuchen. Für das angegebene Beispiel würde dieser Befehl beispielsweise so aussehen: &prompt.root; man -k Atheros Dadurch erhalten Sie eine Liste aller Manualpages, die das angegebene Suchkriterium enthalten: ath(4) - Atheros IEEE 802.11 wireless network driver ath_hal(4) - Atheros Hardware Access Layer (HAL) Mit diesen Informationen ausgestattet, sollte der Bau eines angepassten Kernel keine allzugroßen Probleme mehr bereiten. Kerneltreiber, Subsysteme und Module Kernel Treiber / Module / Subsysteme Bevor Sie einen angepassten Kernel erstellen, überlegen Sie sich bitte, warum Sie dies tun wollen. Wenn Sie lediglich eine bestimmte Hardwareunterstützung benötigen, existiert diese vielleicht schon als Kernelmodul. Kernelmodule existieren im Verzeichnis /boot/kernel und können dynamisch in den laufenden Kernel über &man.kldload.8; geladen werden. Die meisten, wenn nicht sogar alle, Kerneltreiber besitzen ein spezifisches Modul und eine Manualpage. Beispielsweise erwähnte der letzte Abschnitt den drahtlosen Ethernettreiber ath. Dieses Gerät hat die folgende Information in seiner Manualpage: Alternatively, to load the driver as a module at boot time, place the following line in &man.loader.conf.5: if_ath_load="YES" Wie dort angegeben, wird das Modul durch die Zeile if_ath_load="YES" in der Datei /boot/loader.conf dynamisch beim Systemstart geladen. Allerdings gibt es in manchen Fällen kein dazugehöriges Modul. Das gilt insbesondere für bestimmte Teilsysteme und sehr wichtige Treiber. Beispielsweise ist das Fast File System (FFS) eine notwendige Kerneloption, genauso wie die Netzwerkunterstützung (INET). Die einzige Möglichkeit, herauszufinden, ob ein Treiber benötigt ist, ist die Überprüfung des jeweiligen Moduls. Es ist erstaunlich einfach, einen defekten Kernel zu erhalten (beispielsweise durch das Entfernen der eingebauten Unterstützung für ein Gerät oder einer Kerneloption). Wenn beispielsweise der &man.ata.4;-Treiber aus der Kernelkonfigurationsdatei entfernt wird, kann ein System, das den ATA-Festplattentreiber benötigt, nicht mehr starten, ohne dass Sie das entsprechende Kernelmodul durch einen Eintrag in loader.conf aufnehmen. Wenn Sie nicht sicher sind, wie Sie vorgehen sollen, überprüfen Sie zuerst das Modul. Im Zweifelsfall belassen Sie die Unterstützung für ein bestimmtes Gerät besser im Kernel. Erstellen und Installation eines angepassten Kernels Kernel Erstellen und Installation Zuerst erläutern wir die Verzeichnisstruktur, in der der Kernel gebaut wird. Die im Folgenden genannten Verzeichnisse sind relativ zum Verzeichnis /usr/src/sys angegeben, das Sie auch über den Pfad /sys erreichen können. Es existieren mehrere Unterverzeichnisse, die bestimmte Teile des Kernels darstellen, aber die für uns wichtigsten sind arch/conf, in dem Sie die Konfigurationsdatei für den angepassten Kernel erstellen werden, und compile, in dem der Kernel gebaut wird. arch kann entweder i386, alpha, amd64, ia64, powerpc, sparc64 oder pc98 (eine in Japan beliebte Architektur) sein. Alles in diesen Verzeichnissen ist nur für die jeweilige Architektur relevant. Der Rest des Codes ist maschinenunabhängig und für alle Plattformen, auf die &os; portiert werden kann, gleich. Beachten Sie die Verzeichnisstruktur, die jedem unterstützten Gerät, jedem Dateisystem und jeder Option ein eigenes Verzeichnis zuordnet. Die Beispiele in diesem Kapitel verwenden ein i386-System. Wenn Sie ein anderes System benutzen, passen Sie bitte die Pfade entsprechend der Architektur des Systems an. Falls Sie kein /usr/src/sys Verzeichnis vorfinden, so sind die Kernelquellen nicht installiert. Der einfachste Weg, dies nachzuholen, ist sysinstall als root auszuführen. Dort wählen Sie Configure, dann Distributions, dann src, danach base und sys. Wenn Sie eine Aversion gegen sysinstall haben und eine offizielle &os; CD-ROM besitzen, können Sie die Kernelquellen auch von der Kommandozeile installieren: &prompt.root; mount /cdrom &prompt.root; mkdir -p /usr/src/sys &prompt.root; ln -s /usr/src/sys /sys &prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf - &prompt.root; cat /cdrom/src/sbase.[a-d]* | tar -xzvf - Als nächstes wechseln sie in das Verzeichnis arch/conf und kopieren die Konfigurationsdatei GENERIC in eine Datei, die den Namen Ihres Kernels trägt. Zum Beispiel: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; cp GENERIC MYKERNEL Traditionell ist der Name des Kernels immer in Großbuchstaben. Wenn Sie mehrere &os; mit unterschiedlicher Hardware warten, ist es nützlich, wenn Sie Konfigurationsdatei nach dem Hostnamen der Maschinen benennen. Im Beispiel verwenden wir den Namen MYKERNEL. Es ist nicht zu empfehlen die Konfigurationsdatei direkt unterhalb von /usr/src abzuspeichern. Wenn Sie Probleme haben, könnten Sie der Versuchung erliegen, /usr/src einfach zu löschen und wieder von vorne anzufangen. Wenn Sie so vorgehen, werden Sie kurz darauf merken, dass Sie soeben Ihre Kernelkonfigurationsdatei gelöscht haben. Editieren Sie immer eine Kopie von GENERIC. Änderungen an GENERIC können verloren gehen, wenn der Quellbaum aktualisiert wird. Sie sollten die Konfigurationsdatei an anderer Stelle aufheben und im Verzeichnis i386 einen Link auf die Datei erstellen. Beispiel: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; mkdir /root/kernels &prompt.root; cp GENERIC /root/kernels/MYKERNEL &prompt.root; ln -s /root/kernels/MYKERNEL Jetzt editieren Sie MYKERNEL mit einem Texteditor Ihres Vertrauens. Wenn Sie gerade neu anfangen, ist Ihnen vielleicht nur der vi Editor bekannt, der allerdings zu komplex ist, um hier erklärt zu werden. Er wird aber in vielen Büchern aus der Bibliographie gut erklärt. &os; bietet aber auch einen leichter zu benutzenden Editor, den ee an, den Sie, wenn Sie Anfänger sind, benutzen sollten. Sie können die Kommentare am Anfang der Konfigurationsdatei ändern, um die Änderungen gegenüber GENERIC zu dokumentieren. SunOS Falls Sie schon einmal einen Kernel unter &sunos; oder einem anderen BSD kompiliert haben, werden Sie diese Konfigurationsdatei bereits kennen. Wenn Sie mit einem anderen Betriebssystem wie DOS vertraut sind, könnte die GENERIC Konfigurationsdatei Sie verschrecken. In diesen Fall sollten Sie den Beschreibungen im Abschnitt über die Konfigurationsdatei langsam und vorsichtig folgen. Wenn Sie die &os; Quellen synchronisieren, sollten Sie immer, bevor Sie etwas verändern, /usr/src/UPDATING durchlesen. Diese Datei enthält alle wichtigen Informationen, die Sie beim Aktualisieren beachten müssen. Da /usr/src/UPDATING immer zu Ihrer Version der &os; Quellen passt, sind die Informationen dort genauer, als in diesem Handbuch. Nun müssen Sie die Kernelquellen kompilieren. Den Kernel bauen Wechseln Sie in das Verzeichnis /usr/src: &prompt.root; cd /usr/src Kompilieren Sie den neuen Kernel: &prompt.root; make buildkernel KERNCONF=MYKERNEL Installieren Sie den neuen Kernel: &prompt.root; make installkernel KERNCONF=MYKERNEL Sie benötigen den kompletten Quellcodebaum, um den Kernel zu bauen. In der Voreinstellung werden beim Bau eines angepassten Kernels stets alle Kernelmodule neu gebaut. Wollen Sie Ihren Kernel schneller bauen oder nur bestimmte Module bauen, sollten Sie /etc/make.conf anpassen, bevor Sie Ihren Kernel bauen: - MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs + WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs Wenn Sie diese Variable setzen, werden ausschließlich die hier angegebenen Module gebaut (und keine anderen). - WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs + WITHOUT_MODULES = linux acpi sound ntfs Durch das Setzen dieser Variable werden werden alle - Module bis auf die angegebenen gebaut. Weitere Variablen, - die beim Bau eines Kernels von Interesse sein könnten, + Module auf oberster Ebene bis auf die angegebenen gebaut. Weitere + Variablen, die beim Bau eines Kernels von Interesse sein könnten, finden Sie in &man.make.conf.5;. /boot/kernel.old Der neue Kernel wird im Verzeichnis /boot/kernel, genauer unter /boot/kernel/kernel abgelegt, während der alte Kernel nach /boot/kernel.old/kernel verschoben wird. Um den neuen Kernel zu benutzen, sollten Sie Ihren Rechner jetzt neu starten. Falls etwas schief geht, sehen Sie bitte in dem Abschnitt zur Fehlersuche am Ende dieses Kapitels nach. Dort sollten Sie auch unbedingt den Abschnitt lesen, der erklärt, was zu tun ist, wenn der neue Kernel nicht startet. Im Verzeichnis /boot werden andere Dateien, die zum Systemstart benötigt werden, wie der Boot-Loader (&man.loader.8;) und dessen Konfiguration, abgelegt. Module von Fremdherstellern oder angepasste Module werden in /boot/kernel abgelegt. Beachten Sie bitte, dass diese Module immer zu dem verwendeten Kernel passen müssen. Module, die nicht zu dem verwendeten Kernel passen, gefährden die Stabilität des Systems. Joel Dahl Für &os; 6.X aktualisiert von Die Kernelkonfigurationsdatei Kernel NOTES NOTES Kernel Konfigurationsdatei Das Format der Konfigurationsdatei ist recht einfach. Jede Zeile enthält ein Schlüsselwort und ein oder mehrere Argumente. Eine Zeile, die von einen # eingeleitet wird, gilt als Kommentar und wird ignoriert. Die folgenden Abschnitte beschreiben jedes Schlüsselwort in der Reihenfolge, in der es in GENERIC auftaucht. Eine ausführliche Liste aller Optionen mit detaillierten Erklärungen finden Sie in der Konfigurationsdatei NOTES, die sich in demselben Verzeichnis wie die Datei GENERIC befindet. Von der Architektur unabhängige Optionen sind in der Datei /usr/src/sys/conf/NOTES aufgeführt. Seit &os; 5.0 existiert eine neue include-Anweisung in der Kernelkonfigurationsdatei. Diese erlaubt das lokale Einfügen von anderen Konfigurationsdateien in die aktuelle, was es einfacher macht, kleinere Änderungen an einer existierenden Datei zu vollziehen. Wenn Sie beispielsweise einen GENERIC-Kernel mit nur einer kleinen Anzahl von zusätzlichen Optionen und Treibern benötigen, brauchen Sie mit den folgenden Zeilen nur ein kleines Delta im Vergleich zu GENERIC anpassen: include GENERIC ident MYKERNEL options IPFIREWALL options DUMMYNET options IPFIREWALL_DEFAULT_TO_ACCEPT options IPDIVERT Für viele Administratoren bietet dieses Modell entscheidende Vorteile über das bisherige Erstellen von Konfigurationsdateien von Grund auf: die lokalen Konfigurationdateien enthalten auch nur die lokalen Unterschiede zu einem GENERIC-Kernel und sobald Aktulaisierungen durchgeführt werden, können neue Eigenschaften, die zu GENERIC hinzugefügt werden, auch dem lokalen Kernel angehängt werden, es sei denn, es wird durch nooptions oder nodevice verhindert. Der übrige Teil dieses Kapitels behandelt die Inhalte einer typischen Konfigurationsdatei und die Rolle, die unterschiedliche Optionen und Geräte dabei spielen. Um einen Kernel mit allen möglichen Optionen zu bauen beispielsweise für Testzwecke), führen Sie als root die folgenden Befehle aus: &prompt.root; cd /usr/src/sys/i386/conf && make LINT Kernel Konfigurationsdatei Das folgende Beispiel zeigt eine GENERIC Konfigurationsdatei, die, wo notwendig, zusätzliche Kommentare enthält. Sie sollte der Datei /usr/src/sys/i386/conf/GENERIC auf Ihrem System sehr ähnlich sein. Kerneloptionen machine machine i386 Gibt die Architektur der Maschine an und muss entweder alpha, amd64, i386, ia64, pc98, powerpc oder sparc64 sein. Kerneloptionen cpu cpu I486_CPU cpu I586_CPU cpu I686_CPU Die vorigen Zeilen geben den Typ der CPU Ihres Systems an. Sie können mehrere CPU Typen angeben, wenn Sie sich zum Beispiel nicht sicher sind, ob Sie I586_CPU oder I686_CPU benutzen sollen. Für einen angepassten Kernel ist es aber am besten, wenn Sie nur die CPU angeben, die sich in der Maschine befindet. Der CPU-Typ wird in den Boot-Meldungen ausgegeben, die in der Datei /var/run/dmesg.boot gespeichert sind. Kerneloptionen ident ident GENERIC Gibt den Namen Ihres Kernels an. Hier sollten Sie den Namen einsetzen, den Sie Ihrer Konfigurationsdatei gegeben haben. In unserem Beispiel ist das MYKERNEL. Der Wert, den Sie ident zuweisen, wird beim Booten des neuen Kernels ausgegeben. Wenn Sie den Kernel von Ihrem normal verwendeten Kernel unterscheiden wollen, weil Sie zum Beispiel einen Kernel zum Testen bauen, ist es nützlich, hier einen anderen Namen anzugeben. #To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices. Unter &os; werden Geräte mit &man.device.hints.5; konfiguriert. In der Voreinstellung überprüft &man.loader.8; beim Systemstart die Datei /boot/device.hints. Die Option hints erlaubt es, die Gerätekonfiguration statisch in den Kernel einzubinden, sodass die Datei device.hints in /boot nicht benötigt wird. makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols Der normale Bauprozess von FreeBSD erstellt nur dann einen Kernel, der Debugging-Informationen enthält, wenn Sie die Option von &man.gcc.1; aktivieren. options SCHED_ULE # ULE scheduler Der voreingestellte Scheduler von &os;. Ändern Sie diesen Wert nicht! options PREEMPTION # Enable kernel thread preemption Erlaubt es Kernelthreads, vor Threads eigentlich höherer Prioritält ausgeführt zu werden. Die Interaktivitält des Systems wird dadurch erhölt. Interrupt-Threads werden dabei bevorzugt ausgeführt. options INET # InterNETworking Netzwerkunterstützung. Auch wenn Sie nicht planen, den Rechner mit einem Netzwerk zu verbinden, sollten Sie diese Option aktiviert lassen. Die meisten Programme sind mindestens auf die Loopback Unterstützung (Verbindungen mit sich selbst) angewiesen. Damit ist diese Option im Endeffekt notwendig. options INET6 # IPv6 communications protocols Aktiviert die Unterstützung für das IPv6 Protokoll. options FFS # Berkeley Fast Filesystem Das Dateisystem für Festplatten. Wenn Sie von einer Festplatte booten wollen, lassen Sie diese Option aktiviert. options SOFTUPDATES # Enable FFS Soft Updates support Mit dieser Option wird die Unterstützung für Soft Updates, die Schreibzugriffe beschleunigen, in den Kernel eingebunden. Auch wenn die Funktion im Kernel ist, muss sie für einzelne Dateisysteme explizit aktiviert werden. Überprüfen Sie mit &man.mount.8;, ob die Dateisysteme Soft Updates benutzen. Wenn die Option soft-updates nicht aktiviert ist, können Sie die Option nachträglich mit &man.tunefs.8; aktivieren. Für neue Dateisysteme können Sie Option beim Anlegen mit &man.newfs.8; aktivieren. options UFS_ACL # Support for access control lists Diese Option aktiviert die Unterstützung für Zugriffskontrolllisten (ACL). Die ACLs hängen von erweiterten Attributen und UFS2 ab, eine genaue Beschreibung finden Sie in . Die Zugriffskontrolllisten sind in der Voreinstellung aktiviert und sollten auch nicht deaktiviert werden, wenn Sie schon einmal auf einem Dateisystem verwendet wurden, da dies die Zugriffsrechte auf Dateien in unvorhersehbarer Art und Weise ändern kann. options UFS_DIRHASH # Improve performance on big directories Diese Option steigert die Geschwindigkeit von Plattenzugriffen auf großen Verzeichnissen. Dadurch verbraucht das System etwas mehr Speicher als vorher. Für stark beschäftigte Server oder Arbeitsplatzrechner sollten Sie diese Option aktiviert lassen. Auf kleineren Systemen, bei denen Speicher eine kostbare Ressource darstellt oder Systemen, auf denen die Geschwindigkeit der Plattenzugriffe nicht wichtig ist, wie Firewalls, können Sie diese Option abstellen. options MD_ROOT # MD is a potential root device Diese Option aktiviert die Unterstüztung für ein Root-Dateisystem auf einem speicherbasierten Laufwerk (RAM-Disk). Kerneloptionen NFS Kerneloptionen NFS_ROOT options NFSCLIENT # Network Filesystem Client options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT Das Network Filesystem. Wenn Sie keine Partitionen von einem &unix; File-Server über TCP/IP einhängen wollen, können Sie diese Zeile auskommentieren. Kerneloptionen MSDOSFS options MSDOSFS # MSDOS Filesystem Das &ms-dos; Dateisystem. Sie können diese Zeile auskommentieren, wenn Sie nicht vorhaben, eine DOS-Partition beim Booten einzuhängen. Das nötige Modul wird ansonsten automatisch geladen, wenn Sie das erste Mal eine DOS-Partition einhängen. Außerdem können Sie mit den ausgezeichneten emulators/mtools aus der Ports-Sammlung auf DOS-Floppies zugreifen, ohne diese an- und abhängen zu müssen (MSDOSFS wird in diesem Fall nicht benötigt). options CD9660 # ISO 9660 Filesystem Das ISO 9660 Dateisystem für CD-ROMs. Sie können diese Zeile auskommentieren, wenn Sie kein CD-ROM-Laufwerk besitzen oder nur ab und an CDs einhängen. Das Modul wird automatisch geladen, sobald Sie das erste Mal eine CD einhängen. Für Audio-CDs benötigen Sie dieses Dateisystem nicht. options PROCFS # Process filesystem (requires PSEUDOFS) Das Prozessdateisystem. Dies ist ein Pseudo-Dateisystem, das auf /proc eingehangen wird und es Programmen wie &man.ps.1; erlaubt, mehr Informationen über laufende Prozesse auszugeben. PROCFS sollte von &os; nicht mehr benötigt werden, da die meisten Debug- und Überwachungs-Werkzeuge nicht mehr darauf angewiesen sind. Daher wird das Prozessdateisystem auch nicht mehr automatisch in das System eingebunden. options PSEUDOFS # Pseudo-filesystem framework 6.X-Kernel benötigen zusätzlich zur Option PROCFS auch die Option PSEUDOFS. options GEOM_GPT # GUID Partition Tables. Diese Option ermöglicht eine große Anzahl Partitionen auf einem einzelnen Laufwerk. options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!] Stellt die Kompatibilität zu 4.3BSD sicher. Belassen Sie diese Option, da sich manche Programme recht sonderbar verhalten werden, wenn Sie diese auskommentieren. options COMPAT_FREEBSD4 # Compatible with FreeBSD4 Mit &os; 5.X stellt diese Option auf &i386;- und Alpha-Systemen sicher, dass Anwendungen, die auf älteren &os; Versionen übersetzt wurden und alte Systemaufrufe verwenden, noch lauffähig sind. Wir empfehlen, diese Option auf allen &i386;- und Alpha-Systemen zu verwenden, auf denen vielleicht noch ältere Anwendungen laufen sollen. Auf Plattformen, die erst ab &os; 5.0 unterstützt werden (wie ia64 und &sparc;), wird diese Option nicht benötigt. options COMPAT_FREEBSD5 # Compatible with &os;5 Diese Option wird ab &os; 6.X benötigt, um Programme, die unter &os; 5.X-Versionen mit &os; 5.X-Systemaufrufen kompiliert wurden, unter &os; 6.X ausführen zu können. options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI Dies weist den Kernel an, 5 Sekunden zu warten, bevor er anfängt nach SCSI-Geräten auf dem System zu suchen. Wenn Sie nur IDE-Geräte besitzen, können Sie die Anweisung ignorieren. Sie können versuchen, den Wert zu senken, um den Startvorgang zu beschleunigen. Wenn &os; dann Schwierigkeiten hat, Ihre SCSI-Geräte zu erkennen, sollten Sie den Wert natürlich wieder erhöhen. options KTRACE # ktrace(1) support Dies schaltet die Kernel-Prozessverfolgung (engl. kernel process tracing) ein, die sehr nützlich bei der Fehlersuche ist. options SYSVSHM # SYSV-style shared memory Diese Option aktiviert die Unterstützung für System V Shared-Memory. Die XSHM-Erweiterung von X benötigt diese Option und viele Graphik-Programme werden die Erweiterung automatisch benutzen und schneller laufen. Wenn Sie X benutzen, sollten Sie diese Option auf jeden Fall aktivieren. options SYSVMSG # SYSV-style message queues Unterstützung für System V Messages. Diese Option vergrößert den Kernel nur um einige hundert Bytes. options SYSVSEM # SYSV-style semaphores Unterstützung für System V Semaphoren. Dies wird selten gebraucht, vergrößert aber den Kernel nur um einige hundert Bytes. Die Option des Kommandos &man.ipcs.1; zeigt Programme an, die diese System V Erweiterungen benutzen. options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions Echtzeit-Erweiterungen, die 1993 zu &posix; hinzugefügt wurden. Bestimmte Programme wie &staroffice; benutzen diese Erweiterungen. options KBD_INSTALL_CDEV # install a CDEV entry in /dev Diese Option erstellt für die Tastatur einen Eintrag im Verzeichnis /dev. options ADAPTIVE_GIANT # Giant mutex is adaptive. Giant ist der Name einer Sperre (Mutex) die viele Kernel-Ressourcen schützt. Heutzutage ist Giant ein unannehmbarer Engpass, der die Leistung eines Systems beeinträchtigt. Daher wird Giant durch Sperren ersetzt, die einzelne Ressourcen schützen. Die Option ADAPTIVE_GIANT fügt Giant zu den Sperren hinzu, auf die gewartet werden kann. Ein Thread, der die Sperre Giant von einem anderen Thread benutzt vorfindet, kann nun weiterlaufen und auf die Sperre Giant warten. Früher wäre der Prozess in den schlafenden Zustand (sleep) gewechselt und hätte darauf warten müssen, dass er wieder laufen kann. Wenn Sie sich nicht sicher sind, belassen Sie diese Option. Beachten Sie, dass ab &os; 8.0-CURRENT und neuer alle Mutexe in der Voreinstellung adaptiv sein werden, es sei denn, Sie werden durch das Setzen der Option NO_ADAPTIVE_MUTEXES explizit als nichtadaptiv deklariert. Als Folge dessen ist Giant nun in in der Voreinstellung ebenfalls adaptiv, daher ist in diesen Versionen die Kerneloption ADAPTIVE_GIANT nicht mehr in der Kernelkonfigurationsdatei enthalten. Kerneloptionen SMP device apic # I/O APIC Das apic-Gerält ermöglicht die Benutzung des I/O APIC für die Interrupt-Auslieferung. Das apic-Gerält kann mit Kerneln für Einprozessorsysteme und Mehrprozessorsysteme benutzt werden. Kernel für Mehrprozessorsysteme benötigen diese Option zwingend. Die Unterstützung für Mehrprozessorsysteme aktivieren Sie mit der Option options SMP. Das apic-Gerät existiert nur unter der i386-Architektur, daher ist es sinnlos, diese Zeile unter einer anderen Architektur in Ihre Kernelkonfigurationsdatei aufzunehmen. device eisa Fügen Sie diese Zeile ein, wenn Sie ein EISA-Motherboard besitzen. Dies aktiviert die Erkennung und Konfiguration von allen Geräten auf dem EISA Bus. device pci Wenn Sie ein PCI-Motherboard besitzen, fügen Sie diese Zeile ein. Dies aktiviert die Erkennung von PCI-Karten und die PCI-ISA bridge. # Floppy drives device fdc Der Floppy-Controller. # ATA and ATAPI devices device ata Dieser Treiber unterstützt alle ATA und ATAPI Geräte. Eine device ata Zeile reicht aus und der Kernel wird auf modernen Maschinen alle PCI ATA/ATAPI Geräte entdecken. device atadisk # ATA disk drives Für ATA-Plattenlaufwerke brauchen Sie diese Zeile zusammen mit device ata. device ataraid # ATA RAID drives Für ATA-RAID brauchen Sie diese Zeile zusammen mit device ata. device atapicd # ATAPI CDROM drives Zusammen mit device ata wird dies für ATAPI CD-ROM Laufwerke benötigt. device atapifd # ATAPI floppy drives Zusammen mit device ata wird dies für ATAPI Floppy Laufwerke benötigt. device atapist # ATAPI tape drives Zusammen mit device ata wird dies für ATAPI Bandlaufwerke benötigt. options ATA_STATIC_ID # Static device numbering Erzwingt eine statische Gerätenummer für den Controller; ohne diese Option werden die Nummern dynamisch zugeteilt. # SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. device ahd # AHA39320/29320 and onboard AIC79xx devices options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic family #device ispfw # Firmware for QLogic HBAs- normally a module device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')) device trm # Tekram DC395U/UW/F DC315U adapters device adv # Advansys SCSI adapters device adw # Advansys wide SCSI adapters device aha # Adaptec 154x SCSI adapters device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI adapters device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50 SCSI-Controller. Kommentieren Sie alle Controller aus, die sich nicht in Ihrem System befinden. Wenn Sie ein IDE-System besitzen, können Sie alle Einträge entfernen. Die Zeilen mit den *_REG_PRETTY_PRINT-Einträgen aktivieren Debugging-Optionen für die jeweiligen Treiber. # SCSI peripherals device scbus # SCSI bus (required for SCSI) device ch # SCSI media changers device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE) SCSI Peripheriegeräte. Kommentieren Sie wieder alle Geräte aus, die Sie nicht besitzen. Besitzer von IDE-Systemen können alle Einträge entfernen. Der USB-&man.umass.4;-Treiber und einige andere Treiber benutzen das SCSI-Subsystem obwohl sie keine SCSI-Geräte sind. Belassen Sie die SCSI-Unterstützung im Kernel, wenn Sie solche Treiber verwenden. # RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options device hptmv # Highpoint RocketRAID 182x device rr232x # Highpoint RocketRAID 232x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID # RAID controllers device aac # Adaptec FSA RAID device aacp # SCSI passthrough for aac (requires CAM) device ida # Compaq Smart RAID device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 family device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID Unterstützte RAID Controller. Wenn Sie keinen der aufgeführten Controller besitzen, kommentieren Sie die Einträge aus oder entfernen sie. # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller Der Tastatur-Controller (atkbdc) ist für die Ein- und Ausgabe von AT-Tastaturen und PS/2 Zeigegeräten (z.B. einer Maus) verantwortlich. Dieser Controller wird vom Tastaturtreiber (atkbd) und dem PS/2 Gerätetreiber (psm) benötigt. device atkbd # AT keyboard Zusammen mit dem atkbdc Controller bietet der atkbd Treiber Zugriff auf AT-Tastaturen. device psm # PS/2 mouse Benutzen Sie dieses Gerät, wenn Sie eine Maus mit PS/2 Anschluss besitzen. device kbdmux # keyboard multiplexer Basisunterstützung für Tastaturmultiplexer. Verwenden Sie nur eine einzige Tastatur, können Sie diese Zeile aus Ihrer Kernelkonfigurationsdatei entfernen. device vga # VGA video card driver Der Grafikkartentreiber. device splash # Splash screen and screen saver support Zeigt einen Splash Screen beim Booten. Diese Zeile wird auch von den Bildschirmschonern benötigt. # syscons is the default console driver, resembling an SCO console device sc sc ist in der Voreinstellung der Treiber für die Konsole, die der SCO-Konsole ähnelt. Da die meisten bildschirmorientierten Programme auf die Konsole mit Hilfe einer Datenbank wie termcap zugreifen, sollte es keine Rolle spielen, ob Sie diesen Treiber oder vt, den VT220 kompatiblen Konsolentreiber einsetzen. Wenn Sie Probleme mit bildschirmorientierten Anwendungen unter dieser Konsole haben, setzen Sie beim Anmelden die Variable TERM auf den Wert VT220. # Enable this for the pcvt (VT220 compatible) console driver #device vt #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor Der VT220 kompatible Konsolentreiber ist kompatibel zu VT100/102. Auf einigen Laptops, die aufgrund der Hardware inkompatibel zum sc Treiber sind, funktioniert dieser Treiber gut. Beim Anmelden sollten Sie die Variable TERM auf den Wert vt100 setzen. Dieser Treiber kann sich als nützlich erweisen, wenn Sie sich über das Netzwerk auf vielen verschiedenen Maschinen anmelden, da dort oft Einträge in termcap oder terminfo für das sc Gerät fehlen. Dagegen sollte vt100 auf jeder Plattform unterstützt werden. device agp Fügen Sie diese Zeile ein, wenn Sie eine AGP-Karte besitzen. Damit werden Motherboards mit AGP und AGP GART unterstützt. APM # Power management support (see NOTES for more options) #device apm Unterstützung zur Energieverwaltung. Diese Option ist nützlich für Laptops, allerdings ist sie in GENERIC deaktiviert. # Add suspend/resume support for the i8254. device pmtimer Zeitgeber für Ereignisse der Energieverwaltung (APM und ACPI). # PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support device cbb # cardbus (yenta) bridge device pccard # PC Card (16-bit) bus device cardbus # CardBus (32-bit) bus PCMCIA Unterstützung. Wenn Sie einen Laptop benutzen, brauchen Sie diese Zeile. # Serial (COM) ports device sio # 8250, 16[45]50 based serial ports Die seriellen Schnittstellen, die in der &ms-dos;- und &windows;-Welt COM genannt werden. Wenn Sie ein internes Modem, das COM4 benutzt, besitzen und eine serielle Schnittstelle haben, die auf COM2 liegt, müssen Sie den IRQ des Modems auf 2 setzen (wegen undurchsichtigen technischen Gründen ist IRQ2 gleich IRQ9). Wenn Sie eine serielle Multiport-Karte besitzen, entnehmen Sie bitte die Werte, die Sie in die Datei /boot/device.hints einfügen müssen, der Hilfeseite &man.sio.4;. Einige Graphikkarten, besonders die auf S3-Chips basierten, benutzen IO-Adressen der Form 0x*2e8 und manche billige serielle Karten dekodieren den 16-Bit IO-Adressraum nicht sauber. Dies führt zu Konflikten und blockiert dann die COM4-Schnittstelle. Jeder seriellen Schnittstelle muss ein eigener IRQ zugewiesen werden (wenn Sie eine Multiport-Karte verwenden, bei der das Teilen von Interrupts unterstützt wird, muss das nicht der Fall sein), daher können in der Voreinstellung COM3 und COM4 nicht benutzt werden. # Parallel port device ppc Die parallele Schnittstelle auf dem ISA Bus. device ppbus # Parallel port bus (required) Unterstützung für den Bus auf der parallelen Schnittstelle. device lpt # Printer Unterstützung für Drucker über die parallele Schnittstelle. Sie brauchen jede der drei Zeilen, um die Unterstützung für einen Drucker an der parallelen Schnittstelle zu aktivieren. device plip # TCP/IP over parallel Der Treiber für das Netzwerkinterface über die parallele Schnittstelle. device ppi # Parallel port interface device Allgemeine I/O (geek port) und IEEE1284 I/O Unterstützung. #device vpo # Requires scbus and da Zip Laufwerk Dies aktiviert den Treiber für ein Iomega Zip Laufwerk. Zusätzlich benötigen Sie noch die Unterstützung für scbus und da. Die beste Performance erzielen Sie, wenn Sie die Schnittstelle im EPP 1.9 Modus betreiben. #device puc Aktivieren Sie diesen Treiber, wenn Sie eine serielle oder parallele PCI-Karte besitzen, die vom Treiber &man.puc.4; unterstützt wird. # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (Tulip) device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device txp # 3Com 3cR990 (Typhoon) device vx # 3Com 3c590, 3c595 (Vortex) Verschiedene Treiber für PCI-Netzwerkkarten. Geräte, die sich nicht in Ihrem System befinden, können Sie entfernen oder auskommentieren. # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! device miibus # MII bus support Einige PCI 10/100 Ethernet Netzwerkkarten, besonders die, die MII-fähige Transceiver verwenden oder Transceiver-Steuerungen implementieren, die ähnlich wie MII funktionieren, benötigen die Unterstützung für den MII-Bus. Die Zeile device miibus fügt dem Kernel die Unterstützung für das allgemeine miibus API und allen PHY-Treibern hinzu. device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) device lge # Level 1 LXT1001 gigabit ethernet device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device nge # NatSemi DP83820 gigabit ethernet device nve # nVidia nForce MCP on-board Ethernet Networking device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc') device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (Starfire) device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device stge # Sundance/Tamarack TC9021 gigabit Ethernet device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 EPIC) device vge # VIA VT612x gigabit ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (Boomerang, Cyclone) Treiber, die den MII Bus Controller Code benutzen. # ISA Ethernet NICs. pccard NICs included. device cs # Crystal Semiconductor CS89x0 NIC # 'device ed' requires 'device miibus' device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 and Pro/10+ device ep # Etherlink III based cards device fe # Fujitsu MB8696x based cards device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc. device lnc # NE2100, NE32-VL Lance Ethernet cards device sn # SMC's 9000 series of Ethernet chips device xe # Xircom pccard Ethernet # ISA devices that use the old ISA shims #device le Treiber für ISA Ethernet Karten. Schauen Sie in /usr/src/sys/i386/conf/NOTES nach, um zu sehen, welche Karte von welchem Treiber unterstützt wird. # Wireless NIC cards device wlan # 802.11 support Generische 802.11-Unterstützung. Diese Zeile wird unbedingt benötigt, wenn Sie WLAN nutzen wollen. device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support Krypto-Unterstützung für 802.11-Geräte. Sie benötigen diese Zeilen, wenn Sie Ihr drahtloses Netzwerk verschlüsseln und die 802.11-Sicherheitsprotokolle einsetzen wollen. device an # Aironet 4500/4800 802.11 wireless NICs device ath # Atheros pci/cardbus NIC's device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # SampleRate tx rate control for ath device awi # BayStack 660 and others device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. #device wl # Older non 802.11 Wavelan wireless NIC. Treiber für drahtlose Netzwerkkarten (WLAN). # Pseudo devices device loop # Network loopback Das TCP/IP Loopback Device. Wenn Sie eine Telnet oder FTP Verbindung zu localhost (alias 127.0.0.1) aufbauen, erstellen Sie eine Verbindung zu sich selbst durch dieses Device. Die Angabe dieser Option ist verpflichtend. device random # Entropy device Kryptographisch sicherer Zufallszahlengenerator. device ether # Ethernet support ether brauchen Sie nur, wenn Sie eine Ethernet-Karte besitzen. Der Treiber unterstützt das Ethernet-Protokoll. device sl # Kernel SLIP sl aktiviert die SLIP-Unterstützung. SLIP ist fast vollständig von PPP verdrängt worden, da letzteres leichter zu konfigurieren, besser geeignet für Modem zu Modem Kommunikation und mächtiger ist. device ppp # Kernel PPP Dies ist Kernel Unterstützung für PPP-Wählverbindungen. Es existiert auch eine PPP-Version im Userland, die den tun Treiber benutzt. Die Userland-Version ist flexibler und bietet mehr Option wie die Wahl auf Anforderung. device tun # Packet tunnel. Dies wird vom der Userland PPP benutzt. Die Zahl hinter tun gibt die Anzahl der unterstützten gleichzeitigen Verbindungen an. Weitere Informationen erhalten Sie im Abschnitt PPP dieses Handbuchs. device pty # Pseudo-ttys (telnet etc) Dies ist ein Pseudo-Terminal oder simulierter Login-Terminal. Er wird von einkommenden telnet und rlogin Verbindungen, xterm und anderen Anwendungen wie Emacs benutzt. device md # Memory disks Pseudo-Gerät für Speicher-Laufwerke. device gif # IPv6 and IPv4 tunneling Dieses Gerät tunnelt IPv6 über IPv4, IPv4 über IPv6, IPv4 über IPv4 oder IPv6 über IPv6. Das Gerät gif kann die Anzahl der benötigten Geräte automatisch bestimmen (auto-cloning). device faith # IPv6-to-IPv4 relaying (translation) Dieses Pseudo-Gerät fängt zu ihm gesendete Pakete ab und leitet Sie zu einem Dæmon weiter, der Verkehr zwischen IPv4 und IPv6 vermittelt. # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # Note that 'bpf' is required for DHCP. device bpf # Berkeley packet filter Das ist der Berkeley Paketfilter. Dieses Pseudo-Gerät kann Netzwerkkarten in den promiscuous Modus setzen und erlaubt es damit, Pakete auf einem Broadcast Netzwerk (z.B. einem Ethernet) einzufangen. Die Pakete können auf der Festplatte gespeichert und mit &man.tcpdump.1; untersucht werden. Das &man.bpf.4;-Gerät wird von &man.dhclient.8; genutzt, um die IP-Adresse des Default-Routers zu bekommen. Wenn Sie DHCP benutzen, lassen Sie diese Option bitte aktiviert. # USB support device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface device ehci # EHCI PCI->USB interface (USB 2.0) device usb # USB Bus (required) #device udbp # USB Double Bulk Pipe devices device ugen # Generic device uhid # Human Interface Devices device ukbd # Keyboard device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse device ural # Ralink Technology RT2500USB wireless NICs device urio # Diamond Rio 500 MP3 player device uscanner # Scanners # USB Ethernet, requires mii device aue # ADMtek USB Ethernet device axe # ASIX Electronics USB Ethernet device cdce # Generic USB over Ethernet device cue # CATC USB Ethernet device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet Unterstützung für verschiedene USB Geräte. # FireWire support device firewire # FireWire bus code device sbp # SCSI over FireWire (Requires scbus and da) device fwe # Ethernet over FireWire (non-standard!) Verschiedene Firewire-Geräte. Mehr Informationen und weitere von &os; unterstützte Geräte entnehmen Sie bitte /usr/src/sys/i386/conf/NOTES. Hohe Speicheranforderungen (<acronym>PAE</acronym>) Physical Address Extensions (PAE) hohe Speicheranforderungen Systeme mit hohen Speicheranforderungen benötigen mehr Speicher als den auf 4 Gigabyte beschränkten User- und Kernel-Adressraum (KVA). Mit dem &pentium; Pro und neueren CPUs hat Intel den Adressraum auf 36-Bit erweitert. Die Physical-Address-Extension (PAE) von &intel;s &pentium; Pro und neueren Prozessoren unterstützt bis zu 64 Gigabyte Speicher. &os; kann diesen Speicher mit der Option in der Kernelkonfiguration nutzen. Die Option gibt es in allen aktuellen &os;-Versionen. Wegen Beschräkungen der Intel-Speicherarchitektur wird keine Unterscheidung zwischen Speicher oberhalb oder unterhalb von 4 Gigabyte getroffen. Speicher über 4 Gigabyte wird einfach dem zur Verfügung stehenden Speicher zugeschlagen. Sie aktivieren PAE im Kernel, indem Sie die folgende Zeile in die Kernelkonfigurationsdatei einfügen: options PAE &os; unterstützt PAE nur auf IA-32 Prozessoren. Die PAE-Unterstützung wurde zudem noch nicht hinreichend getestet und befindet sich im Vergleich zu anderen Komponenten von &os; noch im Beta-Stadium. Die PAE-Unterstützung in &os; ist mit den nachstehenden Einschränkungen verbunden: Ein Prozess kann nicht mehr als 4 Gigabyte virtuellen Speicher benutzen. Gerätetreiber, die nicht die &man.bus.dma.9;-Schnittstelle benutzen, führen zusammen mit einem PAE-Kernel zu Datenverlusten. Diese Treiber sollen nicht mit einem PAE-Kernel verwendet werden. Daher gibt es unter &os; eine zusätzliche PAE-Kernelkonfigurationsdatei, die alle Treiber enthält, die mit einem PAE-Kernel funktionieren. Einige Systemvariablen werden abhängig von der Speichergröße eingestellt. In einem PAE-System mit viel Speicher können die Werte daher zu hoch eingestellt sein. Ein Beispiel ist die sysctl-Variable , die die maximale Anzahl von vnodes im Kernel bestimmt. Solche Variablen sollten auf einen angemessenen Wert eingestellt werden. Es kann erforderlich sein, den virtuellen Adressraum des Kernels (KVA) zu vergrößern oder, wie oben beschrieben, den Wert einer häufig gebrauchten Kernelvariablen zu verringern. Dies verhindert einen Überlauf des KVAs. Der Adressraum des Kernels kann mit der Kerneloption vergrößert werden. Hinweise zur Leistungssteigerung und Stabilität entnehmen Sie bitte der Hilfeseite &man.tuning.7;. Die PAE-Unterstützung von &os; wird in der Hilfeseite &man.pae.4; beschrieben. Wenn etwas schiefgeht Es gibt vier Hauptfehlerquellen beim Erstellen eines angepassten Kernels: config verursacht Fehler: Wenn &man.config.8; misslingt, liegen Fehler in der Kernelkonfigurationsdatei vor. Zum Glück gibt &man.config.8; die die Zeilennummer der Fehlerstelle an, sodass Sie den Fehler schnell finden können. Beispielsweise könnten Sie folgende Fehlermeldung sehen: config: line 17: syntax error Vergleichen Sie die angegebene Zeile mit GENERIC und stellen Sie sicher, dass das Schlüsselwort richtig geschrieben ist. make verursacht Fehler: Wenn make misslingt, liegen meistens Fehler in der Konfigurationsdatei vor, die aber nicht schwerwiegend genug für &man.config.8; waren. Überprüfen Sie wiederum Ihre Konfiguration und wenn Sie keinen Fehler entdecken können, schicken Sie eine E-Mail mit Ihrer Kernelkonfiguration an die Mailingliste &a.de.questions;. Sie sollten dann schnell Hilfe erhalten. Der Kernel bootet nicht: Wenn der Kernel nicht booten will, ist das noch lange kein Grund zur Panik. Denn &os; besitzt exzellente Mechanismen zur Wiederherstellung nach dem Einsatz inkompatibler Kernel. Den Kernel, mit dem Sie booten wollen, können Sie sich im &os; Boot-Loader aussuchen. Dazu wählen Sie im Bootmenü die Option Escape to a loader prompt. Danach geben Sie den Befehl unload kernel ein, um anschließend mit boot /boot/kernel.old den alten Kernel zu booten. Sie können hier natürlich auch den Dateinamen eines anderen Kernels, der sauber bootet angeben. Für alle Fälle sollten Sie immer einen Kernel, der garantiert bootet, bereit halten. Nun können Sie die Konfiguration noch einmal überprüfen und den Kernel neu kompilieren. Dazu ist /var/log/messages sehr nützlich, da hier sämtliche Kernelmeldungen von jedem erfolgreichen Bootvorgang gespeichert werden. &man.dmesg.8; gibt Ihnen die Kernelmeldungen vom letzten Bootvorgang aus. Für den Fall, dass Sie Probleme bei dem Kernelbau bekommen, heben Sie sich immer einen GENERIC oder einen anderen Kernel, der garantiert bootet, auf. Der Name dieses Kernels sollte so gewählt sein, dass er beim nächsten Bau nicht überschrieben wird. Sie können sich nicht auf kernel.old verlassen, da dieser Kernel durch den zuletzt installierten Kernel, der vielleicht schon kaputt war, während der Installation ersetzt wird. Kopieren Sie den funktionierenden Kernel so schnell wie möglich in das richtige Verzeichnis (/boot/kernel). Ansonsten funktionieren Kommandos wie &man.ps.1; nicht. Benennen Sie dazu einfach das Verzeichnis des funktionierenden Kernels um: &prompt.root; mv /boot/kernel /boot/kernel.bad &prompt.root; mv /boot/kernel.good /boot/kernel Der Kernel ist in Ordnung, aber ps geht nicht mehr: Wenn Sie eine andere Version des Kernels installiert haben als die, mit der Ihre Systemwerkzeuge gebaut wurden (beispielsweise einen -CURRENT-Kernel auf einem -RELEASE-System), werden Programme wie &man.ps.1; und &man.vmstat.8; nicht mehr funktionieren. Sie sollten nun das komplette System neu bauen und installieren. Achten Sie darauf, dass die Quellen, aus denen Sie das System bauen, zum installierten Kernel passen. Das ist ein Grund dafür, warum man nie einen Kernel, der nicht zur Systemversion passt, benutzen sollten. diff --git a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml index 5a5377a183..940b5a224f 100644 --- a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml @@ -1,1689 +1,1686 @@ Uwe Pierau Übersetzt von Installieren von Anwendungen: Pakete und Ports Übersicht Ports Pakete FreeBSD enthält sehr viele Systemwerkzeuge, die Teil des Basissystems sind. Allerdings sind Sie früher oder später auf Software Dritter angewiesen, damit Sie bestimmte Arbeiten durchführen können. Um diese Software zu installieren, stellt FreeBSD zwei sich ergänzende Methoden zur Verfügung: Die Ports-Sammlung (zur Installation aus dem Quellcode) sowie Pakete (auch als Packages bezeichnet, zur Installation von vorkompilierten binären Softwarepaketen). Sie können beide Methoden benutzen, um Ihre Lieblingsanwendungen von lokalen Medien oder über das Netzwerk zu installieren. Dieses Kapitel behandelt die folgenden Themen: Die Installation binärer Softwarepakete. Der Bau Software Dritter aus dem Quellcode mithilfe der Ports-Sammlung. Wie zuvor installierte Pakete oder Ports entfernt werden. Wie Sie die Voreinstellungen der Ports-Sammlung überschreiben. Die Suche nach geeigneter Software. Wie Sie Ihre Anwendungen aktualisieren. Installation von Software Wenn Sie schon einmal ein &unix; System benutzt haben, werden Sie wissen, dass zusätzliche Software meist wie folgt installiert wird: Download der Software, die als Quelltext oder im Binärformat vorliegen kann. Auspacken der Software, die typischerweise ein mit &man.compress.1;, &man.gzip.1; oder &man.bzip2.1; komprimiertes Tar-Archiv enthält. Durchsuchen der Dokumentation, die sich meist in Dateien wie INSTALL, README oder mehreren Dateien im Verzeichnis doc/ befindet, nach Anweisungen, wie die Software zu installieren ist. Kompilieren der Software wenn sie als Quelltext vorliegt. Dazu müssen Sie vielleicht das Makefile anpassen, oder configure laufen lassen, oder andere Arbeiten durchführen. Testen und installieren der Software. Das beschreibt aber nur den optimalen Fall. Wenn Sie Software installieren, die nicht speziell für FreeBSD geschrieben wurde, müssen Sie vielleicht sogar den Quelltext anpassen, damit die Software funktioniert. Wenn Sie unbedingt wollen, können Sie mit FreeBSD Software nach der althergebrachten Methode installieren. Mit Paketen oder Ports bietet Ihnen FreeBSD allerdings zwei Methoden an, die Ihnen sehr viel Zeit sparen können. Zurzeit werden über &os.numports; Anwendungen Dritter über diese Methoden zur Verfügung gestellt. Das FreeBSD-Paket einer Anwendung besteht aus einer einzigen Datei, die Sie sich herunterladen müssen. Das Paket enthält schon übersetzte Kommandos der Anwendung, sowie zusätzliche Konfigurationsdateien oder Dokumentation. Zur Handhabung der Pakete stellt FreeBSD-Kommandos wie &man.pkg.add.1;, &man.pkg.delete.1; oder &man.pkg.info.1; zur Verfügung. Mit diesem System können neue Anwendungen mit einem Kommando, pkg_add, installiert werden. Der FreeBSD-Port einer Anwendung ist eine Sammlung von Dateien, die das Kompilieren der Quelltexte einer Anwendung automatisieren. Die Dateien eines Ports führen für Sie alle oben aufgeführten Schritte zum Installieren einer Anwendung durch. Mit einigen wenigen Kommandos wird der Quellcode der Anwendung automatisch heruntergeladen, ausgepackt, gepatcht, übersetzt und installiert. Tatsächlich kann das Portsystem auch dazu benutzt werden, Pakete zu generieren, die Sie mit den gleich beschriebenen Kommandos, wie pkg_add, manipulieren können. Pakete und Ports beachten Abhängigkeiten zwischen Anwendungen. Angenommen, Sie wollen eine Anwendung installieren, die von einer Bibliothek abhängt und die Anwendung wie die Bibliothek sind als Paket oder Port für FreeBSD verfügbar. Wenn Sie pkg_add oder das Portsystem benutzen, um die Anwendung zu installieren, werden Sie bemerken, dass die Bibliothek zuerst installiert wird, wenn sie nicht schon vorher installiert war. Sie werden sich fragen, warum FreeBSD-Pakete und -Ports unterstützt, wo doch beide Methoden fast gleiches leisten. Beide Methoden haben ihre Stärken und welche Sie einsetzen, hängt letztlich von Ihren Vorlieben ab. Vorteile von Paketen Das komprimierte Paket einer Anwendung ist normalerweise kleiner als das komprimierte Archiv der Quelltexte. Pakete müssen nicht mehr kompiliert werden. Dies ist ein Vorteil, wenn Sie große Pakete, wie Mozilla, KDE oder GNOME auf langsamen Maschinen installieren. Wenn Sie Pakete verwenden, brauchen Sie nicht zu verstehen, wie Sie Software unter FreeBSD kompilieren. Vorteile von Ports Da die Pakete auf möglichst vielen System laufen sollen, werden Optionen beim Übersetzen zurückhaltend gesetzt. Wenn Sie eine Anwendung über die Ports installieren, können Sie die Angabe der Optionen optimieren. Zum Beispiel können Sie spezifischen Code für Pentium 4 oder Athlon Prozessoren erzeugen. Die Eigenschaften einiger Anwendungen werden über Optionen zum Zeitpunkt des Übersetzens festgelegt. Apache kann zum Beispiel über viele eingebaute Optionen konfiguriert werden. Wenn Sie das Portsystem benutzen, können Sie die Vorgaben für die Optionen überschreiben. Für einige Fälle existieren verschiedene Pakete einer Anwendung, die beim Übersetzen unterschiedlich konfiguriert wurden. Für Ghostscript gibt es ein ghostscript-Paket und ein ghostscript-nox11-Paket, die sich durch die X11 Unterstützung unterscheiden. Diese grobe Unterscheidung ist mit dem Paketsystem möglich, wird aber schnell unhandlich, wenn eine Anwendung mehr als ein oder zwei Optionen zum Zeitpunkt des Übersetzens besitzt. Die Lizenzbestimmungen mancher Software verbietet ein Verbreiten in binärer Form. Diese Software muss als Quelltext ausgeliefert werden. Einige Leute trauen binären Distributionen nicht. Wenn Sie den Quelltext besitzen, können Sie sich diesen (zumindest theoretisch) durchlesen und nach möglichen Problemen durchsuchen. Wenn Sie eigene Anpassungen besitzen, benötigen Sie den Quelltext, um diese anzuwenden. Manch einer besitzt gerne den Quelltext, um ihn zu lesen, wenn es einmal langweilig ist, ihn zu hacken, oder sich einfach ein paar Sachen abzugucken (natürlich nur, wenn es die Lizenzbestimmungen erlauben). Wenn Sie über aktualisierte Ports informiert sein wollen, lesen Sie bitte die Mailinglisten &a.ports; und &a.ports-bugs;. Bevor Sie eine Anwendung installieren, sollten Sie auf der Seite über mögliche Sicherheitsprobleme mit der Anwendung informieren. Die Anwendung ports-mgmt/portaudit prüft automatisch alle installierten Anwendungen auf bekannte Sicherheitslöcher. Vor dem Bau eines Ports findet ebenfalls eine Prüfung statt. Installierte Pakete prüfen Sie mit dem Kommando portaudit -F -a. Der Rest dieses Kapitels beschreibt, wie Sie Software Dritter mit Paketen oder Ports auf einem FreeBSD-System installieren und verwalten. Suchen einer Anwendung Bevor Sie eine Anwendung installieren, müssen Sie deren Art und Namen kennen. Die Anzahl der nach FreeBSD portierten Anwendungen steigt ständig. Zum Glück gibt es einige Wege, die richtige zu finden. Eine aktuelle Liste verfügbarer Anwendungen, die sich auch durchsuchen lässt, finden Sie unter http://www.FreeBSD.org/ports/. Die Anwendungen sind in Kategorien unterteilt und Sie können sich alle Anwendungen einer Kategorie anzeigen lassen. Wenn Sie den Namen der Anwendung kennen, können Sie natürlich auch direkt nach dem Namen suchen. FreshPorts FreshPorts, das von Dan Langille gepflegt wird, erreichen Sie unter . FreshPorts verfolgt Änderungen an Anwendungen aus den Ports. Mit FreshPorts können Sie ein oder mehrere Ports beobachten und sich eine E-Mail schicken lassen, wenn ein Port aktualisiert wird. FreshMeat Wenn Sie den Namen einer Anwendung nicht kennen, versuchen Sie eine Webseite wie FreshMeat (), um eine passende Anwendung zu finden. Schauen Sie dann auf der FreeBSD-Webseite nach, ob die Anwendung schon portiert wurde. Wenn Sie den Portnamen kennen und nur nach der Kategorie suchen wollen, verwenden Sie das Kommando &man.whereis.1;. Geben Sie einfach whereis Datei ein. Datei ist der Name des Programms, das Sie suchen: &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof Damit haben wir herausgefunden, dass sich lsof, ein Systemwerkzeug, im Verzeichnis /usr/ports/sysutils/lsof befindet. Auch mit einem einfachen &man.echo.1;-Befehl können Sie herausfinden, wo Sie einen bestimmten Port finden. Dazu ein Beispiel: &prompt.root; echo /usr/ports/*/*lsof* /usr/ports/sysutils/lsof Beachten Sie aber, dass dieser Befehl auch alle Dateien im Verzeichnis /usr/ports/distfiles + class="directory">/usr/ports/distfiles findet, auf die der angegebene Suchbegriff passt. Ein weiterer Weg, einen bestimmten Port zu finden, ist es, die eingebaute Suchfunktion der Ports-Sammlung zu benutzen. - Dazu muss Ihr Arbeitsverzeichnis - /usr/ports + Dazu muss Ihr Arbeitsverzeichnis /usr/ports sein. In diesem Verzeichnis rufen Sie - make search name=Anwendungsname + make search + name=Anwendungsname auf, wobei Anwendungsname der Name der gesuchten Anwendung ist. Wenn Sie zum Beispiel nach lsof suchen: &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps: Der Teil der Ausgabe der Sie interessiert ist die Zeile, die mit Path: 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. Erweiterte Suchen führen Sie mit dem Kommando - make search key=Text + make search + key=Text aus. Damit werden Portnamen, Kommentare, Beschreibungen und Abhängigkeiten nach Text durchsucht. Dies kann sehr nützlich sein, wenn Sie den Namen des Programms, nach dem Sie suchen, nicht kennen. In beiden Fällen wird Groß- und Kleinschreibung bei der Suche ignoriert. Die Suche nach LSOF wird dieselben Ergebnisse wie die Suche nach lsof liefern. Chern Lee Beigesteuert von Benutzen des Paketsystems + Es gibt viele unterschiedliche Werkzeuge um Pakete in + FreeBSD zu verwalten: + + + + Auf einem laufenden System kann sysinstall + benutzt werden, um Pakete zu installieren, zu löschen und + verfügbare und installierte anzuzeigen. Weitere Informationen + finden Sie unter . + + + Die Paketverwaltungswerkzeuge der Kommandozeile sind die + Themen von diesem Kapitel. + + + Installieren eines Pakets Pakete installieren pkg_add Mit &man.pkg.add.1; können Sie ein FreeBSD-Paket von einer lokalen Datei oder über das Netzwerk installieren. Download vor Installation eines Pakets &prompt.root; ftp -a ftp2.FreeBSD.org Connected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit &prompt.root; pkg_add lsof-4.56.4.tgz Wenn Sie die Pakete nicht lokal vorliegen haben (zum Beispiel auf den FreeBSD-CD-ROMs), ist es wahrscheinlich einfacher den Schalter von &man.pkg.add.1; zu verwenden. Das Werkzeug bestimmt dann automatisch das nötige Objektformat und die richtige Version des Pakets, lädt dieses dann von einem FTP-Server und installiert das Paket. pkg_add &prompt.root; pkg_add -r lsof Das obige Beispiel würde ohne weitere Interaktion das richtige Paket herunterladen und installieren. Pakete werden vom &os;-Hauptserver heruntergeladen. Wenn Sie anderen Server verwenden möchten, geben Sie den Server in der Umgebungsvariablen PACKAGESITE an. Die Dateien werden mit &man.fetch.3;, das Umgebungsvariablen wie FTP_PASSIVE_MODE, FTP_PROXY und FTP_PASSWORD berücksichtigt, heruntergeladen. Wenn Sie durch eine Firewall geschützt werden, müssen Sie vielleicht eine oder mehrere dieser Umgebungsvariablen setzen oder einen FTP oder HTTP Proxy verwenden. Eine Liste der unterstützten Umgebungsvariablen finden Sie in &man.fetch.3;. Beachten Sie, dass im obigen Beispiel lsof anstelle von lsof-4.56.4 verwendet wird. Wenn Sie &man.pkg.add.1; zum Herunterladen eines Pakets verwenden, darf die Versionsnummer des Pakets nicht angegeben werden, da automatisch die neuste Version der Anwendung geholt wird. Unter &os.current; oder &os.stable; holt &man.pkg.add.1; die neuste Version einer Anwendung, unter einer Release holt &man.pkg.add.1; die Version der Anwendung, die im Release enthalten ist. Sie können dies ändern, indem Sie die Umgebungsvariable PACKAGESITE überschreiben. Wenn Sie bespielsweise &os; 5.4-RELEASE installiert haben, versucht &man.pkg.add.1; in der Voreinstellung die Pakete von ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/ zu laden. Wollen Sie &man.pkg.add.1; dazu zwingen, nur &os; 5-STABLE-Pakete herunterzuladen, setzen Sie die Umgebungsvariable PACKAGESITE auf ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/. Pakete werden im .tgz- und .tbz-Format ausgeliefert. Sie finden Sie unter oder auf der FreeBSD-CD-ROM-Distribution. Jede CD der FreeBSD Distribution (oder des PowerPaks) enthält Pakete im Verzeichnis /packages. Die Struktur des Paketbaums entspricht dem /usr/ports Baum. Jede Kategorie besitzt ein eigenes Verzeichnis und alle Pakete befinden sich im Verzeichnis All. Die Verzeichnisstruktur des Paketbaums ist ein Abbild der Ports, da beide Systeme eng zusammenarbeiten. Verwalten von Paketen Pakete verwalten &man.pkg.info.1; zeigt alle installierten Pakete und deren Beschreibung an. pkg_info &prompt.root; pkg_info cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ... &man.pkg.version.1; vergleicht die Version installierter Pakete mit der Version aus der Ports-Sammlung. pkg_version &prompt.root; pkg_version cvsup = docbook = ... Die Symbole in der zweiten Spalte zeigen das Alter des Pakets im Vergleich zu der lokalen Version aus der Ports-Sammlung an. Symbol Bedeutung = Die Version des installierten Paketes stimmt mit der Version aus der lokalen Ports-Sammlung überein. < Die installierte Version ist älter als die der verfügbaren Version aus der Ports-Sammlung. > Die installierte Version ist neuer als die aus der Ports-Sammlung (Eventuell ist die lokale Ports-Sammlung veraltet). ? Das installierte Paket konnte in der Ports-Sammlung nicht gefunden werden. Das kann dadurch hervorgerufen werden, dass ein installierter Port aus der Ports-Sammlung entfernt wurde oder einen neuen Namen erhalten hat. * In der Ports-Sammlung befinden sich mehrere Versionen der Anwendung. ! Das installierte Paket ist zwar im Index enthalten, aus irgendeinem Grund war pkg_version aber dennoch nicht in der Lage, die Versionsnummer des installierten Pakets mit der Versionsnummer des entsprechenden Eintrags im Index zu vergleichen. Entfernen eines Pakets pkg_delete Pakete entfernen Um ein zuvor installiertes Paket zu entfernen, benutzen Sie das Werkzeug &man.pkg.delete.1;. &prompt.root; pkg_delete xchat-1.7.1 Beachten Sie, dass &man.pkg.delete.1; die vollständige Bezeichnung des Pakets benötigt (also Paketname und Versionsnummer). Die Eingabe von xchat (anstelle von xchat-1.7.1) ist daher nicht ausreichend. Zwar können Sie die Versionsnummer eines installierten Pakets mit &man.pkg.version.1; herausfinden, es ist aber auch möglich, ein Paket zu deinstallieren, ohne die exakte Versionsnummer zu kennen, wenn Sie Wildcards einsetzen: &prompt.root; pkg_delete xchat\* In diesem Beispiel werden alle Pakete gelöscht, deren Name mit xchat beginnt. Verschiedenes Informationen über alle installierte Pakete werden in /var/db/pkg abgelegt. Das Verzeichnis enthält Dateien, in denen sich die Beschreibungen der Pakete und Listen von Dateien, die zu einem Paket gehören, befinden. Benutzen der Ports-Sammlung Die folgenden Abschnitte stellen die grundlegenden Anweisungen vor, um Anwendungen aus der Ports-Sammlung auf Ihren Rechner zu installieren oder zu löschen. &man.ports.7; enthält eine Auflistung aller verfügbaren make-Targets und Umgebungsvariablen. Installation der Ports-Sammlung Bevor Sie einen Port installieren können, müssen Sie zuerst die Ports-Sammlung installieren, die aus Makefiles, Patches und Beschreibungen besteht. Die Ports-Sammlung wird für gewöhnlich unter /usr/ports installiert. Bei der FreeBSD-Installation hatten Sie in sysinstall die Möglichkeit, die Ports-Sammlung zu installieren. Wenn Sie die Sammlung damals nicht installiert haben, können Sie das mit den folgenden Anweisungen nachholen: Installieren mit <application>CVSup</application> Dies ist eine schnelle Methode, um die Ports-Sammlung zu installieren und zu aktualisieren. CVSup wird im Abschnitt Benutzen von CVSup des Handbuchs beschrieben. Die seit &os; 6.2 im Basissystem enthaltene Variante des CVSup-Protokolls heißt csup. Verwenden Sie hingegen noch eine ältere &os;-Version, können Sie csup über den Port net/csup installieren. Achten Sie darauf, dass das Verzeichnis /usr/ports leer ist, bevor Sie + class="directory">/usr/ports leer ist, bevor Sie csup das erste Mal ausführen! Haben Sie die Ports-Sammlung zuvor schon aus einer anderen Quelle installiert, wird csup bereits aus dem Repository entfernte Patches nicht aus der lokalen Kopie der Ports-Sammlung löschen. Rufen Sie csup auf: &prompt.root; csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile Ersetzen Sie cvsup.FreeBSD.org durch einen CVSup-Server in Ihrer Nähe. Eine vollständige Liste der CVSup-Spiegel finden Sie im Abschnitt CVSup-Server des Handbuchs. Sie sollten sich eine an Ihre Bedürfnisse angepasste ports-supfile erstellen, um so beispielsweise zu vermeiden, dass Sie bei jedem Aufruf von CVSup wieder die Parameterliste übergeben müssen. Dazu kopieren Sie zuerst als root die Datei /usr/share/examples/cvsup/ports-supfile nach /root oder in Ihr Heimatverzeichnis. Danach müssen Sie die Datei ports-supfile anpassen. Dazu ersetzen Sie cvsup.FreeBSD.org durch einen CVSup-Server in Ihrer Nähe. Eine vollständige Liste der CVSup-Spiegel finden Sie im Abschnitt CVSup-Server des Handbuchs. Nun können Sie csup mit folgender Syntax starten: &prompt.root; csup -L 2 /root/ports-supfile Mit &man.csup.1; können Sie später auch die Ports-Sammlung aktualisieren. Die installierten Ports werden mit diesem Kommando allerdings nicht aktualisiert. Installieren mit Portsnap Bei Portsnap handelt es sich - um ein alternatives System zur Distribution der Ports-Sammlung, - das seit &os; 6.0 im Basissystem enthalten ist. Verwenden - Sie eine ältere &os;-Version, können Sie zur - Installation das Paket ports-mgmt/portsnap verwenden: - - &prompt.root; pkg_add -r portsnap - - Eine detaillierte Beschreibung von + um ein alternatives System zur Distribution der Ports-Sammlung. + Eine detaillierte Beschreibung von Portsnap finden Sie im Abschnitt - Using Portsnap des - Handbuchs. - - - Ab &os; 6.1-RELEASE oder bei einem aktuellen - Portsnap-Paket oder -Port ist - dieser Schritt nicht nötig, da in diesen Fällen - das Verzeichnis /usr/ports automatisch beim - ersten Aufruf von &man.portsnap.8; angelegt wird. Verwenden - Sie hingegen eine ältere Version von - Portsnap, müssen Sie dieses - Verzeichnis manuell anlegen, falls dieses auf Ihrem System - noch nicht existiert: - - &prompt.root; mkdir /usr/ports - + Portsnap: Ein Werkzeug + zur Aktualisierung der Ports-Sammlung des Handbuchs. Laden Sie einen komprimierten Snapshot der Ports-Sammlung in das Verzeichnis /var/db/portsnap herunter. Danach + class="directory">/var/db/portsnap herunter. Danach können Sie die Internetverbindung trennen, wenn Sie dies wünschen. &prompt.root; portsnap fetch Wenn Sie Portsnap das erste Mal verwenden, müssen Sie den Snapshot nach - /usr/ports + /usr/ports extrahieren: &prompt.root; portsnap extract Ist die Ports-Sammlung bereits installiert, und Sie wollen diese nur aktualisieren, führen Sie stattdessen folgenden Befehl aus: &prompt.root; portsnap update Installieren mit <application>sysinstall</application> Nicht zuletzt ist es auch möglich, die Ports-Sammlung über sysinstall zu installieren. Beachten Sie dabei aber, dass bei dieser Methode nicht die aktuellste Version der Ports-Sammlung, sondern die Version, die zum Zeitpunkt der Veröffentlichung der installierten &os;-Version aktuell war, installiert wird. Haben Sie Zugriff auf das Internet, so sollten Sie daher stets eine der weiter oben beschriebenen Methoden verwenden, um die Ports-Sammlung zu installieren. Führen Sie als root - sysinstall (vor &os; 5.2 - /stand/sysinstall) aus: + sysinstall aus: - &prompt.root; /stand/sysinstall + &prompt.root; sysinstall Wählen Sie den Punkt Configure aus und drücken Sie Enter. Wählen Sie dann Distributions aus und drücken Sie Enter. In diesem Menü wählen Sie ports aus und drücken die Leertaste. Danach wählen Sie Exit aus und drücken Enter. Legen Sie nun ein geeignetes Installationsmedium, wie CD-ROM oder FTP, fest. Wählen Sie nun Exit aus und drücken Enter. Verlassen Sie sysinstall mit X. Ports installieren Ports installieren Was ist mit einem Gerüst im Zusammenhang mit der Ports-Sammlung gemeint? In aller Kürze: ein Gerüst eines Ports ist ein minimaler Satz von Dateien, mit denen das FreeBSD-System eine Anwendung sauber übersetzen und installieren kann. Ein jeder Port beinhaltet: Eine Datei Makefile. Das Makefile enthält verschiedene Anweisungen, die spezifizieren, wie eine Anwendung kompiliert wird und wo sie auf Ihrem System installiert werden sollte. Eine Datei distinfo. Diese enthält Informationen, welche Dateien heruntergeladen werden müssen sowie deren MD5-Prüfsummen (die Sie mit &man.md5.1; sowie &man.sha256.1; überprüfen können, um sicher zu gehen, dass diese Dateien während des Herunterladens nicht beschädigt wurden). Ein files Verzeichnis. Hierin liegen Patches, welche das Übersetzen und Installieren der Anwendung ermöglichen. Patches sind im Wesentlichen kleine Dateien, die Änderungen an speziellen Dateien spezifizieren. Sie liegen als reiner Text vor und sagen ungefähr: Lösche Zeile 10 oder Ändere Zeile 26 zu .... Patches sind auch bekannt unter dem Namen diffs, weil Sie mit dem Programm &man.diff.1; erstellt werden. Dieses Verzeichnis kann auch noch andere Dateien enthalten, welche zum Bauen des Ports benutzt werden. Eine Datei pkg-descr. Eine ausführlichere, oft mehrzeilige Beschreibung der Anwendung. Eine Datei pkg-plist. Das ist eine Liste aller Dateien, die durch diesen Port installiert werden. Außerdem sind hier Informationen enthalten, die zum Entfernen des Ports benötigt werden. Einige Ports besitzen noch andere Dateien, wie pkg-message, die vom Portsystem benutzt werden, um spezielle Situationen zu handhaben. Wenn Sie mehr über diese Dateien oder das Port-System erfahren sollen, lesen Sie bitte das FreeBSD Porter's Handbook. Ein Port enthält lediglich Anweisungen, wie der Quelltext zu bauen ist, nicht aber den eigentlichen Quelltext. Den Quelltext erhalten Sie von einer CD-ROM oder aus dem Internet. Quelltexte werden in einem Format nach Wahl des jeweiligen Software-Autors ausgeliefert. Häufig ist dies ein gezipptes Tar-Archiv, aber es kann auch mit einem anderen Tool komprimiert oder gar nicht komprimiert sein. Der Quelltext, in welcher Form er auch immer vorliegen mag, wird Distfile genannt. Die zwei Methoden, mit denen ein Port installiert wird, werden unten besprochen. Zum Installieren von Ports müssen Sie als Benutzer root angemeldet sein. Stellen Sie sicher, dass die Ports-Sammlung aktuell ist, bevor Sie einen Port installieren. Informieren Sie sich vorher zusätzlich unter über mögliche Sicherheitsprobleme des zu installierenden Ports. Vor der Installation kann portaudit eine neue Anwendung automatisch auf Sicherheitslöcher prüfen. Das Werkzeug befindet sich in der Ports-Sammlung (ports-mgmt/portaudit). Vor der Installation einer neuen Anwendung sollten Sie mit portaudit -F die Sicherheitsdatenbank aktualisieren. Die täglich laufende Sicherheitsprüfung des Systems aktualisiert die Datenbank und prüft installierte Anwendungen auf vorhandene Sicherheitslöcher. Weiteres erfahren Sie in den Hilfeseiten &man.portaudit.1; und &man.periodic.8;. Die Ports-Sammlung geht davon, dass Ihr System über eine funktionierende Internetverbindung verfügt. Ist dies nicht der Fall, müssen Sie eine Kopie des zu installierenden Distfiles manuell nach /usr/ports/distfiles kopieren. Dazu wechseln Sie als erstes in das Verzeichnis des Ports, den Sie installieren wollen: &prompt.root; cd /usr/ports/sysutils/lsof Im Verzeichnis lsof kann man das Gerüst erkennen. Der nächste Schritt ist das Übersetzen (auch Bauen genannt) des Ports durch die Eingabe des Befehls make: &prompt.root; make >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. ===> Extracting for lsof-4.57 ... [Ausgabe des Auspackens weggelassen] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure-Ausgabe weggelassen] ... ===> Building for lsof-4.57 ... [Ausgabe der Übersetzung weggelassen] ... &prompt.root; Ist die Übersetzungsprozedur beendet, landen Sie wiederum in der Kommandozeile und können das Programm im nächsten Schritt installieren. Dazu verwenden Sie - den Befehl make install: + den Befehl make + install: &prompt.root; make install ===> Installing for lsof-4.57 ... [Ausgabe der Installation weggelassen] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Nachdem die Installation abgeschlossen ist, können Sie die gerade installierte Anwendung starten. Da lsof eine Anwendung ist, die mit erhöhten Rechten läuft, wird eine Sicherheitswarnung angezeigt. Sie sollten alle Warnungen während des Baus und der Installation eines Ports beachten. Es ist eine gute Idee, das Unterverzeichnis work nach erfolgter Installation + class="directory">work nach erfolgter Installation wieder zu löschen. Einerseits gewinnen Sie dadurch Speicherplatz, andererseits könnte es sonst zu Problemen bei der Aktualisierung des Ports auf eine neuere Version kommen. &prompt.root; make clean ===> Cleaning for lsof-4.57 &prompt.root; Sie können zwei Schritte sparen, wenn Sie gleich - make install clean anstelle von - make, make install, - und make clean eingeben. + make install clean + anstelle von make, make + install und make + clean eingeben. Um die Suche nach Kommandos zu beschleunigen, speichern einige Shells eine Liste der verfügbaren Kommandos in den durch die Umgebungsvariable PATH gegebenen Verzeichnissen. Nach der Installation eines Ports müssen Sie in einer solchen Shell vielleicht das Kommando rehash absetzen, um die neu installierten Kommandos benutzen zu können. Das Kommando rehash gibt es in Shells wie der tcsh. Unter Shells wie der sh benutzen Sie das Kommando hash -r. Weiteres entnehmen Sie bitte der Dokumentation Ihrer Shell. Einige von Dritten angebotenen DVD-ROM-Produkte wie das FreeBSD Toolkit von der FreeBSD Mall enthalten auch Distfiles (komprimierte Quellcodepakete). Diese lassen sich über die Ports-Sammlung installieren. Dazu hängen Sie die DVD-ROM unter /cdrom in den Verzeichnisbaum ein. Wenn Sie einen anderen Mountpunkt verwenden, sollten Sie die make-Variable CD_MOUNTPTS setzen, damit die auf der DVD-ROM enthaltenen Distfiles automatisch verwendet werden. Beachten Sie bitte, dass die Lizenzen einiger Ports die Einbeziehung auf der CD-ROM verbieten. Das kann verschiedene Gründe haben. Beispielsweise eine Registrierung vor dem Herunterladen erforderlich oder die Weiterverteilung ist verboten. Wenn Sie einen Port installieren wollen, der nicht auf der CD-ROM enthalten ist, müssen Sie online sein. Die Ports-Sammlung benutzt zum Herunterladen von Dateien &man.fetch.3;, das Umgebungsvariablen wie FTP_PASSIVE_MODE, FTP_PROXY und FTP_PASSWORD berücksichtigt. Wenn Sie durch eine Firewall geschützt werden, müssen Sie vielleicht eine oder mehrere dieser Umgebungsvariablen setzen, oder einen FTP oder HTTP Proxy verwenden. Eine Liste der unterstützten Umgebungsvariablen finden Sie in &man.fetch.3;. Benutzer ohne eine ständige Internet-Verbindung werden das Kommando make fetch zu schätzen wissen. Das Kommando lädt alle benötigten Dateien eines Ports herunter. Sie können das Kommando im Verzeichnis /usr/ports laufen lassen. In diesem Fall werden alle Dateien - heruntergeladen. Es ist auch möglich, - make fetch nur in einem Teil + heruntergeladen. Es ist auch möglich, make + fetch nur in einem Teil des Baums, wie /usr/ports/net, aufzurufen. Die Dateien von allen abhängigen Ports werden mit diesem Kommando allerdings nicht heruntergeladen. Wenn Sie diese Dateien ebenfalls herunterladen wollen, ersetzen Sie im Kommando fetch durch fetch-recursive. Abhängig davon, in welchem Verzeichnis Sie make aufrufen, können Sie analog zu make fetch die Ports einer Kategorie oder alle Ports bauen. Beachten Sie allerdings, dass manche Ports nicht zusammen installiert werden können. Weiterhin gibt es Fälle, in denen zwei Ports unterschiedliche Inhalte in derselben Datei speichern wollen. Manchmal ist es erforderlich, die benötigten Dateien von einem anderen Ort als den im Port vorgesehenen herunterzuladen. Der Ort wird durch die Variable MASTER_SITES vorgegeben, die Sie wie folgt überschreiben können: &prompt.root; cd /usr/ports/directory &prompt.root; make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch Im Beispiel wurde MASTER_SITES mit dem Wert ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ überschrieben. Einige Ports besitzen Optionen, mit denen Sie zusätzliche Funktionen oder Sicherheitsoptionen einstellen können (oder manchmal auch müssen). Zusätzliche Optionen können beispielsweise für www/mozilla, security/gpgme und mail/sylpheed-claws angegeben werden. Wenn ein Port über zusätzliche Optionen verfügt, werden diese beim Bau des Ports auf der Konsole ausgegeben. Vorgabe-Verzeichnisse ändern Manchmal ist es nützlich (oder erforderlich), in anderen Verzeichnissen zu arbeiten. Die Verzeichnisse können Sie mit den Variablen WRKDIRPREFIX und PREFIX einstellen. Die Variable WRKDIRPREFIX gibt das Bauverzeichnis an: &prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install Dieses Kommando baut den Port in /usr/home/example/ports und installiert ihn unter /usr/local. Die Variable PREFIX legt das Installations-Verzeichnis fest: &prompt.root; make PREFIX=/usr/home/example/local install In diesem Beispiel wird der Port unter /usr/ports gebaut und nach /usr/home/example/local installiert. Sie können beide Variablen auch zusammen benutzen: &prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install Die Kommandozeile ist zu lang, um sie hier komplett wiederzugeben, aber Sie sollten die zugrunde liegende Idee erkennen. Probleme mit <command>imake</command> imake Einige Ports, welche &man.imake.1; (Teil des X-Window-Systems) benutzen, funktionieren nicht gut mit PREFIX und bestehen darauf, unter /usr/X11R6 installiert zu werden. In ähnlicher Weise verhalten sich einige Perl-Ports, die PREFIX ignorieren und sich in den Perl-Verzeichnisbaum installieren. Zu erreichen, dass solche Ports PREFIX beachten, ist schwierig oder sogar unmöglich. Ports rekonfigurieren Beim Bau einiger Ports erhalten Sie ein ncurses-basiertes Menü, über dessen Optionen Sie den Bau dieser Ports beeinflussen können. Es gibt diverse Möglichkeiten, dieses Menü nach dem Bau eines Ports erneut aufzurufen, um beispielsweise Optionen zu entfernen, hinzuzufügen oder anzupassen. Sie können beispielsweise in das Verzeichnis des Ports wechseln und dort den Befehl make config eingeben, wodurch das Menü mit den ursprünglichen gewählten Optionen erneut aufgerufen wird. Eine andere - Möglichkeit bietet der Befehl - make showconfig, - mit dem Sie eine Liste aller Konfigurationsoptionen dieses - Ports aufrufen. Eine weitere Alternative bietet der Befehl - make rmconfig, - der die von Ihnen ursprünglich gewählten Optionen - zurücksetzt und es Ihnen dadurch ermöglicht, die - Konfiguration erneut zu beginnen. Die eben erwähnten - Optionen (und viele andere) werden ausführlich in - der Manualpage &man.ports.7; beschrieben. + Möglichkeit bietet der Befehl make + showconfig, mit dem Sie eine Liste aller + Konfigurationsoptionen dieses Ports aufrufen. Eine weitere + Alternative bietet der Befehl make + rmconfig, der die von Ihnen + ursprünglich gewählten Optionen zurücksetzt und es + Ihnen dadurch ermöglicht, die Konfiguration erneut zu beginnen. + Die eben erwähnten Optionen (und viele andere) werden + ausführlich in der Manualpage &man.ports.7; beschrieben. Entfernen installierter Ports Ports entfernen Da Sie nun wissen, wie man einen Port installiert, wollen Sie sicher auch wissen, wie man ein über einen Port installiertes Programm wieder deinstallieren kann. Ports werden analog zu Paketen mit &man.pkg.delete.1; deinstalliert (Lesen Sie sich den Abschnitt Benutzen des Paketsystems des Handbuchs durch, wenn Sie weitere Informationen benötigen.). Für das vorhin installierte Programm lsof würden Sie dazu wie folgt vorgehen: &prompt.root; pkg_delete lsof-4.57 Ports aktualisieren Ports aktualisieren Als erstes sollten sie sich alle installierten Ports anzeigen lassen, von denen eine aktuellere Version in der Ports-Sammlung existiert. Dazu verwenden Sie den Befehl &man.pkg.version.1;: &prompt.root; pkg_version -v <filename>/usr/ports/UPDATING</filename> Nachdem Sie die Ports-Sammlung auf den neusten Stand gebracht haben, lesen Sie bitte zuerst die Datei /usr/ports/UPDATING, bevor Sie einen Port aktualisieren. In dieser Datei werden Probleme und zusätzlich durchzuführende Schritte bei der Aktualisierung einzelner Ports beschrieben. Dazu gehören solche Dinge wie geänderte Dateiformate, verschobene Konfigurationsdateien, aber auch Inkompatibilitäten zu einer Vorgängerversion. Sollte UPDATING etwas hier Gesagtem widersprechen, so gilt das in UPDATING Gesagte. Ports mit Portupgrade aktualisieren portupgrade portupgrade wurde entwickelt, um die Aktualisierung von Ports zu vereinfachen. Sie können portupgrade über den Port - ports-mgmt/portupgrade - installieren: + ports-mgmt/portupgrade wie + jeden anderen Port mit make install + clean installieren: - &prompt.root; cd /usr/ports/ports-mgmt/portupgrade/ + &prompt.root; cd /usr/ports/ports-mgmt/portupgrade/ &prompt.root; make install clean Durchsuchen Sie regelmäßig (am besten vor jeder Aktualisierung) die Liste der installierten Ports mit pkgdb -F und beheben Sie alle gefundenen Probleme. Wenn Sie portupgrade -a eingeben, beginnt portupgrade automatisch mit der Aktualisierung aller veralteter Ports Ihres Systems. Verwenden Sie den Schalter , wenn Sie individuell entscheiden wollen, ob ein Port aktualisiert werden soll: &prompt.root; portupgrade -ai Wenn Sie nur eine einzelne Anwendung anstelle aller Anwendungen aktualisieren wollen, verwenden Sie das Kommando portupgrade pkgname. Geben Sie den Schalter an, wenn portupgrade zuvor alle Ports aktualisieren soll, die von dem gegebenen Paket abhängen. Der Schalter verwendet zur Installation Pakete anstelle von Ports. Mit dieser Option durchsucht portupgrade die in der Umgebungsvariablen PKG_PATH aufgeführten Verzeichnisse nach Paketen. Sind lokal keine Pakete vorhanden, versucht portupgrade die Pakete über das Netz herunterzuladen. Gibt es die Pakete weder lokal noch auf entfernten Rechnern, werden die Ports verwendet. Um dies zu verhindern, benutzen Sie die Option . &prompt.root; portupgrade -PP gnome2 Wenn Sie nur die Quelldateien des Ports (oder die Pakete mit ) herunterladen möchten, ohne die Anwendung zu bauen oder zu installieren, geben Sie die Option an. Weitere Möglichkeiten lesen Sie bitte in der Hilfeseite &man.portupgrade.1; nach. Ports mit Portmanager aktualisieren portmanager Portmanager ist ein weiteres Werkzeug, das die Aktualisierung installierter Ports erleichtert. Es kann über den Port ports-mgmt/portmanager installiert werden: - &prompt.root; cd /usr/ports/ports-mgmt/portmanager + &prompt.root; cd /usr/ports/ports-mgmt/portmanager &prompt.root; make install clean Alle installierten Ports können danach durch folgende Eingabe aktualisiert werden: &prompt.root; portmanager -u Wenn Sie zusätzlich die Optionen an Portmanager übergeben, werden Sie bei jedem Schritt um eine Bestätigung gefragt. Portmanager ist außerdem in der Lage, neue Ports auf Ihrem System zu installieren. Im Gegensatz zum bekannten make install clean aktualisiert es aber vor dem Bau und der Installation eines Ports alle abhängigen Ports. &prompt.root; portmanager x11/gnome2 Treten bei den Abhängigkeiten des zu installierenden Ports Probleme auf, ist Portmanager in der Lage, alle Abhängigkeiten in der korrekten Reihenfolge neu zu bauen. Nachdem dieser Schritt abgeschlossen ist, wird der problematische Port ebenfalls neu gebaut. &prompt.root; portmanager graphics/gimp -f Weitere Informationen finden Sie in der Manualpage &man.portmanager.1;. Ports mit Portmaster aktualisieren portmaster Bei Portmaster handelt es sich um ein weiteres Werkzeug zum Aktualisieren von Ports. Portmaster nutzt nur Werkzeuge, die bereits im Basissystem vorhanden sind (ist also nicht von weiteren Ports abhängig). Es verwendet Informationen in /var/db/pkg/, um festzustellen, welche Ports aktualisiert werden sollen. Sie können dieses Program über den Port ports-mgmt/portmaster installieren: - &prompt.root; cd /usr/ports/ports-mgmt/portmaster + &prompt.root; cd /usr/ports/ports-mgmt/portmaster &prompt.root; make install clean Portmaster teilt Ports in vier Kategorien ein: Root ports (no dependencies, not depended on) Trunk ports (no dependencies, are depended on) Branch ports (have dependencies, are depended on) Leaf ports (have dependencies, not depended on) Um eine Liste aller installierter Ports anzuzeigen (und nach neueren Versionen zu suchen), verwenden Sie die Option : &prompt.root; portmaster -L ===>>> Root ports (No dependencies, not depended on) ===>>> ispell-3.2.06_18 ===>>> screen-4.0.3 ===>>> New version available: screen-4.0.3_1 ===>>> tcpflow-0.21_1 ===>>> 7 root ports ... ===>>> Branch ports (Have dependencies, are depended on) ===>>> apache-2.2.3 ===>>> New version available: apache-2.2.8 ... ===>>> Leaf ports (Have dependencies, not depended on) ===>>> automake-1.9.6_2 ===>>> bash-3.1.17 ===>>> New version available: bash-3.2.33 ... ===>>> 32 leaf ports ===>>> 137 total installed ports ===>>> 83 have new versions available Um alle derzeit installierten Ports zu aktualisieren, verwenden Sie einfach den folgenden Befehl: &prompt.root; portmaster -a In der Voreinstellung erzeugt Portmaster eine Sicherheitskopie, bevor ein installierter Port gelöscht wird. Ist die Installation der neuen Version erfolgreich, wird dieses Backup wieder gelöscht. Wollen Sie das Backup lieber manuell löschen, verwenden Sie die Option beim Aufruf von Portmaster. Durch die Verwendung der Option wird Portmaster im interaktiven Modus gestartet und fragt bei jedem zu aktualisierenden Port nach, wie Sie vorgehen wollen. Treten während der Aktualisierung Fehler auf, können Sie die Option verwenden, um alle Ports zu aktualisieren beziehungsweise neu zu bauen: &prompt.root; portmaster -af Portmaster ist auch in der Lage, neue Ports zu installieren, wobei zuvor alle abhängigen Ports aktualisiert werden: &prompt.root; portmaster shells/bash Weiterführende Informationen finden Sie in der Manualpage &man.portmaster.8;. Platzbedarf von Ports Ports Plattenplatz Die Ports-Sammlung kann sehr viel Plattenplatz verschlingen. Führen Sie nach dem Bau und der Installation eines Ports make - clean aus, um die + clean aus, um die Arbeitsverzeichnisse zu löschen. Dieser Befehl entfernt das Verzeichnis work des gebauten Ports. Wollen Sie die gesamte Ports-Sammlung aufräumen, verwenden Sie folgenden Befehl: &prompt.root; portsclean -C Im Laufe der Zeit werden sich zahlreiche Distfiles im Verzeichnis distfiles ansammeln. Sie können diese entweder händisch löschen, oder Sie verwenden den folgenden Befehl, um alle Distfiles zu löschen, die nicht länger benötigt werden: &prompt.root; portsclean -D Falls Sie nur alle Distfiles löschen wollen, die von keinem derzeit installierten Port referenziert werden: &prompt.root; portsclean -DD Das Werkzeug portsclean wird automatisch bei der Installation von portupgrade mit installiert. Denken Sie daran, installierte Ports wieder zu entfernen, wenn Sie diese nicht mehr benötigen. Um diese Arbeit zu erleichtern, können Sie den Port ports-mgmt/pkg_cutleaves installieren. Nach der Installation Nach der Installation einer neuen Anwendung wollen Sie wahrscheinlich die mitgelieferte Dokumentation lesen und die Konfigurationsdateien der Anwendung anpassen. Wenn die Anwendung ein Dæmon ist, sollten Sie sicherstellen, dass die Anwendung beim Booten startet. Die einzelnen Schritte sind natürlich von Anwendung zu Anwendung verschieden. Wenn Sie sich allerdings nach der Installation einer Anwendung die Frage Was nun? stellen, helfen die folgenden Hinweise vielleicht weiter. Finden Sie mit &man.pkg.info.1; heraus, welche Dateien die Anwendung wo installiert hat. Wenn Sie beispielsweise gerade die Version 1.0.0 von FooPackage installiert haben, zeigt Ihnen das folgende Kommando alle installierten Dateien des Pakets: &prompt.root; pkg_info -L foopackage-1.0.0 | less Achten Sie besonders auf die Manualpages, die Sie in man/ Verzeichnissen finden und auf Konfigurationsdateien, die in etc/ abgelegt werden. Manche Pakete enthalten in doc/ zusätzliche Dokumentation. Wenn Sie sich nicht sicher sind, welche Version einer Anwendung Sie gerade installiert haben, können Sie mit dem folgenden Kommando nach der Anwendung suchen: &prompt.root; pkg_info | grep -i foopackage Das Kommando zeigt alle installierten Pakete, deren Paketname foopackage enthält. Ersetzen Sie foopackage durch den Namen der Anwendung, die Sie suchen. Nachdem Sie die Manualpages der Anwendung gefunden haben, lesen Sie diese bitte mit &man.man.1;. Schauen Sie sich auch die Beispiele für Konfigurationsdateien und die zusätzliche Dokumentation, wenn es welche gibt, an. Wenn es für die Anwendung eine Webseite gibt, suchen Sie dort nach zusätzlicher Dokumentation wie FAQs (häufig gestellte Fragen). Wenn Sie die Adresse der Webseite nicht kennen, versuchen Sie das folgende Kommando: &prompt.root; pkg_info foopackage-1.0.0 Die Ausgabe enthält oft eine Zeile, die mit WWW: beginnt und die URL der Webseite enthält. Ports, die während des Systemstarts gestartet werden sollen, installieren meist ein Beispielskript im Verzeichnis /usr/local/etc/rc.d. Überprüfen Sie dieses Skript. Wenn nötig, passen Sie das Skript an und benennen Sie es um. Weitere Informationen finden Sie in . Kaputte Ports Stolpern Sie einmal über einen Port, der bei Ihnen nicht funktioniert, könnten Sie zum Beispiel Folgendes tun: Stellen Sie fest, ob die Datenbank mit den Problemberichten bereits einen Lösungsvorschlag enthält. Ist dies der Fall, können Sie die vorgeschlagene Lösung testen. Bitten Sie den Betreuer des Ports um Hilfe. Geben - Sie dazu make maintainer ein oder lesen Sie das - Makefile 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 + Sie dazu make maintainer + ein oder lesen Sie das Makefile 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 $FreeBSD: aus dem - Makefile) - und die Ausgabe bis zur Fehlermeldung mitzuschicken. + Makefile) und die Ausgabe bis zur Fehlermeldung + mitzuschicken. Einige Ports werden nicht von einer Einzelperson, sondern von einer Mailingliste betreut. Viele (aber nicht alle) dieser Adressen haben die Form freebsd-NameDerListe@FreeBSD.org. Denken Sie daran, wenn Sie Ihre Fragen formulieren. Dies gilt insbesondere für Ports, die als als Betreuer den Eintrag freebsd-ports@FreeBSD.org aufweisen. + role="nolink">ports@FreeBSD.org aufweisen. Derartige Ports haben überhaupt keinen Betreuer. Korrekturen und Unterstützung kommen daher nur von Personen, die diese Mailingliste abonniert haben. Gerade in diesem Bereich werden jederzeit zusätzliche freiwillige Helfer benötigt! Erhalten Sie auf Ihre Anfrage keine Antwort, können Sie über &man.send-pr.1; einen Problembericht erstellen. Bevor Sie einen solchen Bericht erstellen, sollten Sie den Artikel Writing FreeBSD Problem Reports lesen. Reparieren Sie ihn! Das FreeBSD Porter's Handbook enthält eine detaillierte Beschreibung des Portsystems. Damit sind Sie in der Lage, einen gelegentlich kaputten Port zu reparieren oder einen eigenen Port zu erstellen. Holen Sie sich das Paket von einem FTP-Server in Ihrer Nähe. Die Basis-Sammlung aller Pakete liegt auf ftp.de.FreeBSD.org im Verzeichnis packages. Aber versuchen Sie zuerst einen Spiegel in Ihrer Nä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. diff --git a/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml b/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml index 72eca863c8..be63d45d24 100644 --- a/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml @@ -1,1744 +1,1836 @@ Ken Tom Erweitert um X.Orgs X11-Server von Marc Fonvieille Martin Heinen Übersetzt von Das X-Window-System Übersicht Mit X11 steht unter &os; eine leistungsfähige frei verfügbare grafische Benutzeroberfläche zur Verfügung, die sowohl in &xorg; und &xfree86; (sowie in weiteren, hier nicht diskutierten Varianten) implementiert wurde. Bis einschließlich &os; 5.2.1-RELEASE wurde standardmäßig &xfree86;, der X11-Server von The &xfree86; Project, Inc., installiert. Seit &os; 5.3-RELEASE ist &xorg; von der X.Org Foundation der voreingestellte X11-Server, der unter einer Lizenz ähnlich der von &os; steht. Zusätzlich sind einige kommerzielle X-Server für &os; verfügbar. Dieses Kapitel behandelt die Installation und Konfiguration von X11; der Schwerpunkt liegt auf &xorg; &xorg.version;. Informationen zur Konfiguration von &xfree86; (beispielsweise auf älteren Versionen von &os;, unter denen &xfree86; noch der Standard-X-Server war) sowie von äteren &xorg;-Versionen finden Sie weiterhin in den archivierten Versionen des &os;-Handbuchs unter . Auskunft über von X11 unterstützte Video-Hardware gibt die Webseite &xorg;. Nachdem Sie dieses Kapitel gelesen haben, werden Sie die Komponenten des X-Window-Systems und ihr Zusammenspiel kennen. Wissen, wie X11 installiert und konfiguriert wird. Wissen, wie Sie verschiedene Window-Manager installieren und benutzen. Wissen, wie &truetype;-Schriftarten mit X11 benutzt werden. Wissen, wie Sie die grafische Anmeldung (XDM) einrichten. Bevor Sie dieses Kapitel lesen, sollten Sie wissen, wie Sie Software Dritter installieren (). X-Grundlagen Anwendern anderer grafischer Benutzeroberflächen, wie µsoft.windows; oder &macos;, kommt X beim ersten Mal oft befremdlich vor. Man braucht kein weitreichendes Verständnis der X-Komponenten und Ihres Zusammenspiels, um X anzuwenden. Um die Stärken von X auszunutzen, sollten Sie allerdings die Grundlagen verstehen. Warum heißt es X? X ist nicht die erste grafische Benutzeroberfläche, die für &unix; geschrieben wurde. Die Entwickler von X arbeiteten vorher an einem anderen System, das W (von engl. window: Fenster) hieß. X ist schlicht der nächste Buchstabe im Alphabet. X wird X, X-Window-System oder X11 genannt. Sagen Sie bitte nicht X-Windows: das kommt bei einigen Leuten schlecht an (die Hilfeseite &man.X.7; führt dies näher aus). Das Client/Server-Modell von X X wurde von Anfang an netzwerktransparent entworfen und verwendet ein Client-Server-Modell. In diesem Modell läuft der Server auf dem Rechner, an dem die Tastatur, der Bildschirm und die Maus angeschlossen ist. Der Server ist für Dinge wie die Verwaltung des Bildschirms und die Verarbeitung von Tastatur- und Maus-Eingaben sowie anderer Ein- und Ausgabegeräte (beispielsweise könnte ein Tablet zur Eingabe oder ein Videoprojektor zur Ausgabe verwendet werden) verantwortlich. Jede X-Anwendung, beispielsweise ein XTerm oder &netscape; ist ein Client. Der Client sendet dem Server Nachrichten wie Zeichne an diesen Koordinaten ein Fenster und der Server sendet dem Client Nachrichten der Art Der Benutzer hat gerade den Ok-Knopf gedrückt. In kleinen Umgebungen laufen der X-Server und die X-Clients auf demselben Rechner. Es ist aber durchaus möglich, den X-Server auf einem weniger leistungsfähigen Arbeitsplatzrechner laufen zu lassen und die X-Anwendungen (die Clients) auf dem leistungsfähigen und teuren Server der Arbeitsgruppe zu betreiben. In diesem Fall kommunizieren der X-Server und die X-Clients über das Netz. Dieses Modell verwirrt viele Leute, die erwarten, dass der X-Server der dicke Rechner im Maschinenraum und der X-Client ihr Arbeitsplatzrechner ist. Merken Sie sich einfach, dass der X-Server der Rechner mit dem Bildschirm und der Maus ist und die X-Clients Programme sind, die in den Fenstern laufen. Das X-Protokoll ist unabhängig vom verwendeten Betriebssystem und Rechnertyp. Ein X-Server kann durchaus auch unter µsoft.windows; oder Apples &macos; betrieben werden, wie viele kostenlose und kommerzielle Anwendungen zeigen. Der Window-Manager Die X-Philosophie Werkzeuge statt Richtlinien ist wie die UNIX-Philosophie. Es wird nicht vorgeschrieben, wie eine Aufgabe zu lösen ist, stattdessen erhält der Benutzer Werkzeuge, über die er frei verfügen kann. Dies geht so weit, dass X nicht bestimmt, wie Fenster auf dem Bildschirm auszusehen haben, wie sie mit der Maus zu verschieben sind, welche Tastenkombination benutzt werden muss, um zwischen den Fenstern zu wechseln (z.B. Alt Tab unter µsoft.windows;), oder ob die Fensterrahmen Schaltflächen zum Schließen haben. X gibt die Verantwortung für all diese Sachen an eine Anwendung ab, die Window-Manager genannt wird. Unter X gibt es zahlreiche Window-Manager: AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, Window Maker um nur einige zu nennen. Jeder dieser Window-Manager sieht anders aus: Manche stellen virtuelle Bildschirme zur Verfügung, in anderen lassen sich die Tastenkombinationen zur Verwaltung des Bildschirms anpassen, einige besitzen eine Startleiste oder etwas Ähnliches und in manchen lässt sich das Aussehen und Verhalten über die Anwendung von Themes beliebig einstellen. Die eben genannten Window-Manager und viele weitere finden Sie in der Kategorie x11-wm der Ports-Sammlung. Die grafischen Benutzeroberflächen KDE und GNOME besitzen eigene Window-Manager, die in den grafischen Arbeitsplatz integriert sind. Die Window-Manager werden unterschiedlich konfiguriert. Einige erwarten eine manuell erstellte Konfigurationsdatei, andere bieten grafische Werkzeuge für die meisten Konfigurationsarbeiten an. Die Konfigurationsdatei von Sawfish ist sogar in einem Lisp-Dialekt geschrieben. Fokus Der Window-Manager ist für die Methode, mit der ein Fenster den Fokus bekommt, verantwortlich. Jedes System, das Fenster verwendet, muss entscheiden, wie ein Fenster aktiviert wird, damit es Eingaben empfangen kann. Das aktive Fenster sollte zudem sichtbar gekennzeichnet werden. Eine geläufige Methode, den Fokus zu wechseln, wird click-to-focus genannt. Die Methode wird in µsoft.windows; benutzt: Ein Fenster wird aktiv, wenn es mit der Maus angeklickt wird. X legt nicht fest, wie der Fokus einzustellen ist, stattdessen bestimmt der Window-Manager welches Fenster den Fokus zu einem gegebenen Zeitpunkt erhält. Alle Window-Manager stellen die Methode click-to-focus bereit, die meisten stellen auch noch andere Methoden bereit. Verbreitete Methoden, den Fokus einzustellen, sind: focus-follows-mouse Den Fokus hat das Fenster, unter dem sich der Mauszeiger befindet. Das muss nicht unbedingt das Fenster, sein, das sich vorne befindet. Wird der Mauszeiger in ein anderes Fenster bewegt, so erhält dieses Fenster den Fokus, ohne das es angeklickt werden muss. sloppy-focus Diese Methode erweitert die Methode focus-follows-mouse. Wenn die Maus mit focus-follows-mouse aus dem Fenster auf die Oberfläche bewegt wird, verliert das aktive Fenster den Fokus. Da dann kein Fenster mehr den Fokus hat, gehen alle Eingaben verloren. Die Methode sloppy-focus wechselt den Fokus nur, wenn sich der Mauszeiger in ein neues Fenster bewegt und nicht, wenn er das aktive Fenster verlässt. click-to-focus Das aktive Fenster wird durch einen Mausklick festgelegt (dabei kann das Fenster vor alle anderen Fenster gesetzt werden). Alle Eingaben werden dann, unabhängig von der Position des Mauszeigers, dem aktiven Fenster zugeordnet. Viele Window-Manager unterstützen noch andere Methoden, so wie Abwandlungen der hier vorgestellten Methoden. Schauen Sie sich dazu bitte die Hilfeseiten Ihres Window-Managers an. Widgets Die X-Philosophie dehnt sich auch auf die Widgets aus, die von den Anwendungen benutzt werden. Ein Widget bezeichnet Objekte, die manipuliert werden können, wie buttons (Schaltflächen), check buttons (Mehrfachauswahlknopf), radio buttons (Einfachauswahlknopf), Icons und Auswahllisten. Unter µsoft.windows; werden Widgets Controls genannt. µsoft.windows; und Apples &macos; geben strenge Richtlinien für Widgets vor: Von den Entwicklern wird erwartet, dass Sie Anwendungen mit einheitlichem Aussehen und einheitlicher Bedienung (look and feel) entwickeln. X gibt weder einen Stil noch Widgets vor, die benutzt werden müssen. Erwarten Sie daher nicht, dass alle X-Anwendungen gleich aussehen oder sich gleich bedienen lassen. Es gibt mehrere verbreitete Widget-Sammlungen, beispielsweise die Athena-Widgets vom MIT, &motif; (abgeschrägte Ecken und drei Grautöne, danach wurden die Widgets von µsoft.windows; entworfen) oder OpenLook. Die meisten neuen X-Anwendungen benutzen heute modern aussehende Widgets, wie Qt, das von KDE benutzt wird oder GTK+, das von GNOME benutzt wird. Damit wird eine gewisse Einheitlichkeit in Bedienung und Aussehen erreicht, die sicher neuen Benutzern die Arbeit erleichtert. X11 installieren &xorg; ist der Standard-X-Server unter &os;. &xorg; ist der von der X.Org Foundation herausgegebene X-Server des Open-Source X Window Systems. &xorg; beruht auf &xfree86 4.4RC2 und X11R6.6. Derzeit ist die Version &xorg.version; von &xorg; in der Ports-Sammlung vorhanden. Die nachstehenden Kommandos bauen und installieren &xorg; aus der Ports-Sammlung: &prompt.root; cd /usr/ports/x11/xorg &prompt.root; make install clean Der komplette Bau von &xorg; benötigt mindestens 4 GB freien Plattenplatz. Mit &man.pkg.add.1; können Sie X11 direkt von fertigen Paketen installieren. Wenn &man.pkg.add.1; die Pakete herunterlädt, lassen Sie die Versionsnummer aus. &man.pkg.add.1; holt automatisch die aktuelle Version eines Pakets. Das &xorg;-Paket holen und installieren Sie wie folgt: &prompt.root; pkg_add -r xorg Die obigen Beispiele installieren die vollständige X11-Distribution, die unter anderem Server, Clients und Fonts enthält. Für die einzelnen Teile der Distribution gibt es ebenfalls separate Pakete. Der Rest dieses Kapitels erklärt, wie Sie X11 konfigurieren und sich eine Arbeitsumgebung einrichten. Christopher Shumway Beigetragen von X11 konfigurieren &xorg; X11 Vorarbeiten Bevor Sie X11 konfigurieren, benötigen Sie folgende Informationen: die Spezifikationen des Monitors den Chipset des Grafikadapters die Speichergröße des Grafikadapters Synchronisationsfrequenz horizontale Synchronisationsfrequenz vertikale Aus den Spezifikationen des Monitors ermittelt X11 die Auflösung und die Wiederholrate für den Betrieb des X-Servers. Die Spezifikationen entnehmen Sie der Dokumentation des Monitors oder der Webseite des Herstellers. Sie benötigen die horizontale und die vertikale Synchronisationsfrequenz. Der Chipsatz der Grafikkarte bestimmt den Treiber, den X11 verwendet. Die meisten Chipsätze werden automatisch erkannt, Sie brauchen die Information jedoch, wenn die Erkennung fehlschlägt. Die Speichergröße der Grafikkarte bestimmt die maximal mögliche Auflösung und Farbtiefe. X11 konfigurieren - Ab Version 7.3 funktioniert - &xorg; häufig auch, ohne - dass Sie eine eigene Konfigurationsdatei anlegen - müssen. Sie müssen dann nur den folgenden - Befehl eingeben: + Ab Version 7.4 kann + &xorg; HAL verwenden, + um Tastaturen und Mäuse automatisch zu erkennen. Die Ports + sysutils/hal und devel/dbus werden als Abhängigkeiten + von x11/xorg installiert, + müssen aber durch die folgenden Einträge in + /etc/rc.conf aktiviert werden: + + hald_enable="YES" +dbus_enable="YES" + + Diese Dienste sollten (entweder manuell oder durch einen Neustart) + gestartet werden, bevor mit der weiteren Konfiguration von + &xorg; begonnen wird. + + Die automatische Konfiguration kann mit bestimmter Hardware + fehlschlagen oder gewisse Dinge nicht so einrichten, wie + gewünscht. In diesen Fällen ist eine manuelle + Konfiguration notwendig. + + + Grafische Oberflächen wie GNOME, + KDE oder Xfce + besitzen eigene Werkzeuge, die es dem Benutzer erlauben, auf einfache + Art und Weise die Bildschirmparameter wie die Auflösung zu + ändern. Falls die Standardkonfiguration für Sie nicht + akzeptabel ist und die Installation einer grafischen Oberfläche + geplant ist, fahren Sie damit fort und benutzen Sie dann das + entsprechende Werkzeug für die Bildschirmeinstellungen. + - &prompt.user; startx - - Funktioniert dies auf Ihrem System nicht (oder - wollen Sie nicht mit den Standardeinstellungen - arbeiten), müssen Sie X11 weiterhin manuell - konfigurieren. Dazu erstellen Sie als erstes - eine Vorgabe für die Konfigurationsdatei. - Setzen Sie dazu als root - den folgenden Befehl ab: + Die X11 Konfiguration spielt sich in mehreren Schritten ab. Dazu + erstellen Sie als erstes eine Vorgabe für die Konfigurationsdatei. + Setzen Sie dazu als root den folgenden Befehl + ab: &prompt.root; Xorg -configure Die Vorgabe-Konfiguration wird dann unter dem Namen xorg.conf.new im Verzeichnis /root gespeichert (das verwendete Verzeichnis wird durch die Umgebungsvariable $HOME bestimmt und hängt davon ab, wie Sie zu root gewechselt sind). X11 hat in diesem Schritt versucht, die Grafik-Hardware des Systems zu erkennen und eine Konfigurationsdatei ausgeschrieben, die zur Hardware passende Treiber lädt. Im nächsten Schritt wird geprüft, ob &xorg; die Grafik-Hardware - des Systems verwenden kann. Setzen Sie dazu den - folgenden Befehl ab: + des Systems verwenden kann. Für + &xorg;-Versionen bis 7.3, setzen Sie dazu + den folgenden Befehl ab: &prompt.root; Xorg -config xorg.conf.new + Mit &xorg; 7.4 und höher + produziert dieser Test einen schwarzen Bildschirm, der es unter + Umständen schwierig macht zu erkennen, ob X11 korrekt + funktioniert. Das alte Verhalten ist immer noch durch die + -Option verfügbar: + + &prompt.root; Xorg -config xorg.conf.new -retro + Wenn jetzt ein graues Raster und der X-Mauszeiger erscheinen, - war die Konfiguration erfolgreich. Beenden Sie den Test indem Sie + war die Konfiguration erfolgreich. Beenden Sie den Test, indem Sie + auf die virtuelle Konsole wechseln, die Sie verwendet haben, um + den Test zu starten, durch gleichzeitiges drücken von Ctrl Alt - Backspace - drücken. + Fn + (F1 für die erste virtuelle + Konsole) und drücken anschliessend + + Ctrl + C + . + + + Bis zu Version 7.3 von &xorg; konnte + die Tastenkombination + + Ctrl + Alt + Backspace + + verwendet werden, um &xorg; zu beenden. + Um diese in Version 7.4 und danach zu aktivieren, fügen geben + Sie entweder den folgenden Befehl von einem X-Terminalemulator + ein: + + &prompt.user; setxkbmap -option terminate:ctrl_alt_bksp + + oder erstellen Sie eine Tastaturkonfigurationsdatei für + hald, x11-input.fdi + genannt, und legen Sie diese im Verzeichnis /usr/local/etc/hal/fdi/policy ab. Diese + Datei sollte die folgenden Zeilen enthalten: + + <?xml version="1.0" encoding="ISO-8859-1"?> +<deviceinfo version="0.2"> + <device> + <match key="info.capabilities" contains="input.keyboard"> + <merge key="input.x11_XkbOptions" type="string">terminate:ctrl_alt_bksp</merge> + </match> + </device> +</deviceinfo> + Sie müssen anschliessend ihren Computer neu starten, um + hald zu zwingen, diese Datei + einzulesen. + + Die folgende Zeile muss ebenfalls zu + xorg.conf.new hinzugefügt werden, + entweder in den Abschnitt ServerLayout oder + ServerFlags: + + Option "DontZap" "off" + + + Wenn die Maus nicht funktioniert, prüfen Sie, ob die Maus + konfiguriert wurde. Die Mauskonfiguration wird in im &os;-Installationskapitel beschrieben. + Zusätzlich werden ab Version 7.4 die + InputDevice-Abschnitte in + xorg.conf ignoriert, um stattdessen die + automatisch erkannten Geräte zu verwenden. Um das alte + Verhalten wiederherzustellen, fügen Sie die folgende Zeile zum + ServerLayout- oder dem + ServerFlags-Abschnitt dieser Datei hinzu: + + Option "AutoAddDevices" "false" + + Eingabegeräte können dann wie in den vorherigen + Versionen konfiguriert werden, zusammen mit anderen benötigen + Optionen (z.B. wechseln des Tastaturlayouts). - Wenn die Maus nicht funktioniert, prüfen Sie, - ob die Maus konfiguriert wurde. Die Mauskonfiguration - wird in beschrieben. + Wie zuvor erwähnt, wird seit Version 7.4 + standardmässig der hald-Dienst + automatisch Ihre Tastatur erkennen. Es kann passieren, dass ihr + Tastaturlayout oder das Modell nicht korrekt erkannt wird. + Grafische Oberflächen wie GNOME, + KDE oder Xfce + stellen Werkzeuge für die Konfiguration der Tastatur + bereit. Es ist allerdings auch möglich, die + Tastatureigenschaften direkt zu setzen, entweder mit Hilfe von + &man.setxkbmap.1; oder mit einer Konfigurationsregel von + hald. + + Wenn Sie zum Beispiel eine PC 102-Tasten Tastatur mit + französischem Layout verwenden möchten, mössen Sie + eine Tastaturkonfigurationsdatei für + hald, genannt + x11-input.fdi, im Verzeichnis /usr/local/etc/hal/fdi/policy ablegen. + Diese Datei sollte die folgenden Zeilen enthalten: + + <?xml version="1.0" encoding="ISO-8859-1"?> +<deviceinfo version="0.2"> + <device> + <match key="info.capabilities" contains="input.keyboard"> + <merge key="input.x11_options.XkbModel" type="string">pc102</merge> + <merge key="input.x11_options.XkbLayout" type="string">fr</merge> + </match> + </device> +</deviceinfo> + + Wenn diese Datei bereits existiert, kopieren Sie nur die Zeilen + in diese Datei, welche die Tastaturkonfiguration betreffen. + + Sie mössen Ihren Computer neu starten, um + hald zu zwingen, diese Datei + einzulesen. + + Es ist möglich, die gleiche Konfiguration von einem + X-Terminal oder einem Skript über den folgenden Befehl + heraus zu tätigen: + + &prompt.user; setxkbmap -model pc102 -layout fr + + Die Datei + /usr/local/share/X11/xkb/rules/base.lst + listet die verschiedenen Tastatur- und Layoutoptionen auf, die + Ihnen zur Verfügung stehen. X11 anpassen Als Nächstes passen Sie xorg.conf.new an. Öffnen Sie die Datei in einem Editor, wie &man.emacs.1; oder &man.ee.1; und fügen Sie die Synchronisationsfrequenzen des Monitors ein. Die Frequenzen werden im Abschnitt "Monitor" eingetragen: Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" HorizSync 30-107 VertRefresh 48-120 EndSection Unter Umständen fehlen die Schlüsselwörter HorizSync und VertRefresh, die Sie dann nachtragen müssen. Geben Sie, wie im Beispiel gezeigt, die horizontale Synchronisationsfrequenz hinter HorizSync und die vertikale Synchronisationsfrequenz hinter VertRefresh an. X unterstützt die Energiesparfunktionen (DPMS, Energy Star) Ihres Monitors. Mit &man.xset.1; können Sie Zeitschranken für die DPMS-Modi standby, suspend, off vorgeben, oder diese zwingend aktivieren. Die DPMS-Funktionen können Sie mit der nachstehenden Zeile im "Monitor"-Abschnitt aktivieren: Option "DPMS" xorg.conf Die gewünschte Auflösung und Farbtiefe stellen Sie im Abschnitt "Screen" ein: Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1024x768" EndSubSection EndSection Mit DefaultDepth wird die Farbtiefe des X-Servers vorgegeben. Mit der Option -depth von &man.Xorg.1; lässt sich die vorgegebene Farbtiefe überschreiben. Modes gibt die Auflösung für die angegebene Farbtiefe an. Die Farbtiefe im Beispiel beträgt 24 Bits pro Pixel, die zugehörige Auflösung ist 1024x768 Pixel. Beachten Sie, dass in der Voreinstellung nur Standard-VESA-Modi der Grafikkarte angegeben werden können. Sichern Sie die Konfigurationsdatei und testen Sie die Konfiguration wie oben beschrieben. Bei der Fehlersuche sind Ihnen die Protokolle des X11-Servers behilflich. In den Protokollen wird die gefundene Graphik-Hardware protokolliert. Die Protokolle von &xorg; heißen /var/log/Xorg.0.log. Die Dateinamen enthalten eine laufende Nummer, der Name variiert daher von Xorg.0.log zu Xorg.8.log. Wenn alles funktioniert hat, installieren Sie die Datei an einen Ort, an dem &man.Xorg.1; sie findet. Normalerweise wird die Konfigurationsdatei unter /etc/X11/xorg.conf oder /usr/local/etc/X11/xorg.conf gespeichert: &prompt.root; cp xorg.conf.new /etc/X11/xorg.conf Damit ist die X11-Konfiguration beendet und &xorg; kann nun mithilfe von &man.startx.1; gestartet werden. Alternativ können Sie X11 auch mit &man.xdm.1; starten. - - - Sie können X11 auch mit dem graphischen - Werkzeug &man.xorgcfg.1; konfigurieren. - Mit diesem Werkzeug können Sie Treiber auswählen - und Einstellungen vornehmen. Das Werkzeug kann auch - auf der Konsole benutzt werden, starten Sie es einfach - mit xorgcfg -textmode. Weiteres - erfahren Sie in den Hilfeseiten &man.xorgcfg.1;. - - Weiterhin gibt es noch das Werkzeug - &man.xorgconfig.1;. Dieses Konsolenwerkzeug - ist zwar schwerer zu handhaben, funktioniert - aber auch in Situationen, in denen die anderen Werkzeuge - nicht funktionieren. - Spezielle Konfigurationen Konfiguration des &intel; i810 Graphics Chipsets Intel i810 Chipset Der &intel; i810-Chipset benötigt den Treiber agpgart, die AGP-Schnittstelle von X11. Weitere Informationen finden sich in &man.agp.4;. Ab jetzt kann die Hardware wie jede andere Grafikkarte auch konfiguriert werden. Der Treiber &man.agp.4; kann nicht nachträglich mit &man.kldload.8; in einen laufenden Kernel geladen werden. Er muss entweder fest im Kernel eingebunden sein oder beim Systemstart über /boot/loader.conf geladen werden. Einen Widescreen-Monitor einsetzen Widescreen-Monitor, Konfiguration Dieser Abschnitt geht über die normalen Konfigurationsarbeiten hinaus und setzt einiges an Vorwissen voraus. Selbst wenn die Standardwerkzeuge zur X-Konfiguration bei diesen Geräten nicht zum Erfolg führen, sollten sich in den Logdateien genug Informationen finden, mit denen Sie letztlich doch einen funktionierenden X-Server konfigurieren können. Alles, was Sie dazu noch benötigen, ist ein Texteditor. Aktuelle Widescreen-Formate (wie WSXGA, WSXGA+, WUXGA, WXGA, WXGA+, und andere mehr) unterstützen Seitenverhältnisse wie 16:10 oder 10:9, die unter X Probleme verursachen können. Bei einem Seitenverhältnis von 16:10 sind beispielsweise folgende Auflösungen möglich: 2560x1600 1920x1200 1680x1050 1440x900 1280x800 Diese Konfiguration könnte so einfach sein wie das zusätzliche Anlegen eines Eintrags einer dieser Auflösungen als ein möglicher Mode in Section "Screen": Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1680x1050" EndSubSection EndSection &xorg; ist normalerweise intelligent genug, um die Informationen zu den erlaubten Auflösungen über I2C/DDC zu beziehen, und weiß daher, welche Auflösungen und Frequenzen Ihr Widescreen-Monitor unterstützt. Wenn diese ModeLines in den Treiberdateien nicht vorhanden sind, kann es sein, dass Sie &xorg; beim Finden der korrekten Werte unterstützen müssen. Dazu extrahieren Sie die benötigten Informationen aus der Datei /var/log/Xorg.0.log und erzeugen daraus eine funktionierende ModeLine. Dazu suchen Sie in dieser Datei nach Zeilen ähnlich den folgenden: (II) MGA(0): Supported additional Video Mode: (II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm (II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0 (II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0 (II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz Diese Informationen werden auch als EDID-Informationen bezeichnet. Um daraus eine funktionierende ModeLine zu erzeugen, müssen Sie lediglich die Zahlen in die korrekte Reihenfolge bringen: ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings> Die korrekte ModeLine in Section "Monitor" würde für dieses Beispiel folgendermaßen aussehen: Section "Monitor" Identifier "Monitor1" VendorName "Bigname" ModelName "BestModel" ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089 Option "DPMS" EndSection Nachdem diese Äderungen durchgeführt sind, sollte X auch auf Ihrem neuen Widescreen-Monitor starten. Murray Stokely Beigetragen von Schriftarten in X11 benutzen Type 1 Schriftarten Die Schriftarten, die mit X11 geliefert werden, eignen sich ganz und gar nicht für Desktop-Publishing-Anwendungen. Große Schriftarten zeigen bei Präsentationen deutliche Treppenstufen und die kleinen Schriftarten in &netscape; sind fast unleserlich. Es gibt allerdings mehrere hochwertige Type 1 Schriftarten (&postscript;), die mit X11 benutzt werden können. Beispielsweise enthalten die URW-Schriftarten (x11-fonts/urwfonts) hochwertige Versionen gängiger Type 1 Schriftarten (zum Beispiel Times Roman, Helvetica, Palatino). Die Sammlung Freefonts (x11-fonts/freefonts) enthält noch mehr Schriftarten, doch sind diese für den Einsatz in Grafik-Programmen wie The Gimp gedacht. Es fehlen auch einige Schriftarten, sodass sich die Sammlung nicht für den alltäglichen Gebrauch eignet. Weiterhin kann X11 leicht so konfiguriert werden, dass es &truetype;-Schriftarten verwendet. Mehr dazu erfahren Sie in der Hilfeseite &man.X.7; und im Abschnitt &truetype; Schriftarten. Die Type 1 Schriftarten lassen sich aus der Ports-Sammlung wie folgt installieren: &prompt.root; cd /usr/ports/x11-fonts/urwfonts &prompt.root; make install clean Analog lassen sich Freefont und andere Sammlungen installieren. Die neuen Schriftarten müssen Sie in die Konfigurationsdatei des X-Servers im Verzeichnis /etc/X11 eintragen. Die Konfigurationsdatei von &xorg; heißt xorg.conf. Fügen Sie die folgende Zeile hinzu: FontPath "/usr/local/lib/X11/fonts/URW/" Sie können aber auch in der X-Sitzung das folgende Kommando absetzen: &prompt.user; xset fp+ /usr/local/lib/X11/fonts/URW &prompt.user; xset fp rehash Dann kennt der X-Server die neuen Schriftarten nur bis zum Ende der Sitzung. Wenn die Änderung dauerhaft sein soll, müssen Sie die Kommandos in ~/.xinitrc eintragen, wenn Sie X mit startx starten, oder in ~/.xsession, wenn Sie XDM benutzen. Sie können die Schriftarten auch in die neue Datei /usr/local/etc/fonts/local.conf, die im Abschnitt Anti-aliasing beschrieben wird, eintragen. &truetype;-Schriftarten TrueType-Schriftarten Schriftarten TrueType &xorg; kann &truetype;-Schriftarten mithilfe von zwei Modulen darstellen. Im folgenden Beispiel wird das Freetype-Modul benutzt, da es besser mit anderen Werkzeugen, die &truetype;-Schriftarten darstellen, übereinstimmt. Das Freetype-Modul aktivieren Sie im Abschnitt "Module" von /etc/X11/xorg.conf durch Einfügen der Zeile: Load "freetype" Erstellen Sie ein Verzeichnis für die &truetype;-Schriftarten (z.B. /usr/local/lib/X11/fonts/TrueType) und kopieren Sie alle Schriftarten dorthin. Die Schriftarten müssen im &unix;/&ms-dos;/&windows;-Format vorliegen, Schriftarten von einem &macintosh; können Sie nicht direkt übernehmen. Die Schriftarten müssen noch im Katalog fonts.dir erfasst werden. Den Katalog erzeugen Sie mit dem Kommando ttmkfdir aus dem Port x11-fonts/ttmkfdir: &prompt.root; cd /usr/local/lib/X11/fonts/TrueType &prompt.root; ttmkfdir -o fonts.dir Geben Sie dem System das &truetype;-Verzeichnis, wie im Abschnitt Type 1 Schriftarten beschrieben, bekannt: &prompt.user; xset fp+ /usr/local/lib/X11/fonts/TrueType &prompt.user; xset fp rehash Oder fügen Sie eine FontPath-Zeile in die Datei xorg.conf ein. Das war's. Jetzt sollten &netscape;, Gimp, &staroffice; und alle anderen X-Anwendungen die &truetype;-Schriftarten benutzen. Extrem kleine Schriftarten (Webseiten, die mit hoher Auflösung betrachtet werden) und sehr große Schriftarten (in &staroffice;) sollten jetzt viel besser aussehen. Joe Marcus Clarke Aktualisiert von Anti-aliasing Anti-aliasing Schriftarten Anti-aliasing - X11 beherrscht das - Anti-aliasing-Verfahren seit - &xfree86; 4.0.2. - Die Konfiguration der Schriftarten war vor - &xfree86; 4.3.0 ziemlich - schwierig. Ab &xfree86; 4.3.0 - stehen alle Schriftarten - in /usr/local/lib/X11/fonts/ und - ~/.fonts/ automatisch für das - Anti-aliasing-Verfahren mit - Anwendungen, die Xft unterstützen, zur Verfügung. - Es gibt schon viele Anwendungen, die Xft unterstützen, - zum Beispiel: Qt 2.3 und höhere Versionen - (das KDE-Toolkit), GTK+ 2.0 - und höhere Versionen (das - GNOME-Toolkit) sowie - Mozilla 1.2 und höhere Versionen. + Alle Schriftarten in X11, die in den Verzeichnissen + /usr/local/lib/X11/fonts/ und + ~/.fonts/ gefunden werden, werden automatisch + für Anti-aliasing an Anwendungen zur Verfügung gestellt, + die Xft beherrschen. Die meisten aktuellen Anwendungen beherrschen + Xft, dazu gehören auch KDE, + GNOME und + Firefox. In der Datei /usr/local/etc/fonts/local.conf werden die Schriftarten, die mit dem Anti-aliasing-Verfahren benutzt werden sollen und die Eigenschaften des Verfahrens festgelegt. In diesem Abschnitt wird nur die grundlegende Konfiguration von Xft beschrieben. Weitere Details entnehmen Sie bitte der Hilfeseite &man.fonts-conf.5;. XML Die Datei local.conf ist ein XML-Dokument. Achten Sie beim Editieren der Datei daher auf die richtige Groß- und Kleinschreibung und darauf, dass alle Tags geschlossen sind. Die Datei beginnt mit der üblichen XML-Deklaration gefolgt von einer DOCTYPE-Definition und dem <fontconfig>-Tag: <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> Wie vorher erwähnt, stehen schon alle Schriftarten in /usr/local/lib/X11/fonts/ und ~/.fonts/ für Anwendungen, die Xft unterstützen, zur Verfügung. Wenn Sie ein Verzeichnis außerhalb dieser beiden Bäume benutzen wollen, fügen Sie eine Zeile wie die nachstehende zu /usr/local/etc/fonts/local.conf hinzu: <dir>/path/to/my/fonts</dir> Wenn Sie neue Schriftarten hinzugefügt haben, müssen Sie den Schriftarten-Cache neu aufbauen: &prompt.root; fc-cache -f Das Anti-aliasing-Verfahren zeichnet Ränder leicht unscharf, dadurch werden kleine Schriften besser lesbar und der Treppenstufen-Effekt bei wird großen Schriften vermieden. Auf normale Schriftgrößen sollte das Verfahren aber nicht angewendet werden, da dies die Augen zu sehr anstrengt. Um kleinere Schriftgrößen als 14 Punkt von dem Verfahren auszunehmen, fügen Sie in local.conf die nachstehenden Zeilen ein: <match target="font"> <test name="size" compare="less"> <double>14</double> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match> <match target="font"> <test name="pixelsize" compare="less" qual="any"> <double>14</double> </test> <edit mode="assign" name="antialias"> <bool>false</bool> </edit> </match> Schriftarten Abstände Das Anti-aliasing-Verfahren kann die Abstände einiger Fixschriften falsch darstellen, dies fällt besonders unter KDE auf. Sie können das Problem umgehen, indem Sie die Abstände dieser Schriften auf den Wert 100 festsetzen. Fügen Sie die nachstehenden Zeilen hinzu: <match target="pattern" name="family"> <test qual="any" name="family"> <string>fixed</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match> <match target="pattern" name="family"> <test qual="any" name="family"> <string>console</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match> Damit werden die Namen der gebräuchlichen Fixschriften auf "mono" abgebildet. Für diese Schriften setzen Sie dann den Abstand fest: <match target="pattern" name="family"> <test qual="any" name="family"> <string>mono</string> </test> <edit name="spacing" mode="assign"> <int>100</int> </edit> </match> Bestimmte Schriftarten, wie Helvetica, können Probleme mit dem Anti-Aliasing-Verfahren verursachen. In der Regel erscheinen diese Schriftarten dann vertikal - halbiert. Im schlimmsten Fall stürzen Anwendungen, - wie Mozilla, als Folge davon ab. - Sie vermeiden dies, indem Sie betroffene Schriftarten in + halbiert. Im schlimmsten Fall stürzen Anwendungen als Folge + davon ab. Sie vermeiden dies, indem Sie betroffene Schriftarten in local.conf von dem Verfahren ausnehmen: <match target="pattern" name="family"> <test qual="any" name="family"> <string>Helvetica</string> </test> <edit name="family" mode="assign"> <string>sans-serif</string> </edit> </match> Wenn Sie local.conf editiert haben, stellen Sie bitte sicher, dass die Datei mit dem Tag </fontconfig> endet. Ist das nicht der Fall, werden die Änderungen nicht berücksichtigt. - Die mit X11 gelieferten - Schriftarten eignen sich nicht besonders für das - Anti-Aliasing-Verfahren. Der Port x11-fonts/bitstream-vera - enthält viel besser geeignete Schriftarten. Wenn sie - noch nicht existiert, legt der Port die Datei - /usr/local/etc/fonts/local.conf - an. Ansonsten erzeugt der Port die Datei - /usr/local/etc/fonts/local.conf-vera, - deren Inhalt Sie in - /usr/local/etc/fonts/local.conf - aufnehmen müssen. Danach werden die - X11-Schriftarten Serif, Sans Serif und Monospaced - durch die entsprechenden Bitstream-Schriftarten ersetzt. - Benutzer können eigene Einstellungen in der Datei ~/.fonts.conf vornehmen. Achten Sie auch hier auf die richtige XML-Syntax. LCD Schriftarten auf einem LCD Mit einem LCD können Sie sub-pixel sampling anstelle von Anti-aliasing einsetzen. Dieses Verfahren behandelt die horizontal getrennten Rot-, Grün- und Blau-Komponenten eines Pixels gesondert und verbessert damit (teilweise sehr wirksam) die horizontale Auflösung. Die nachstehende Zeile in local.conf aktiviert diese Funktion: <match target="font"> <test qual="all" name="rgba"> <const>unknown</const> </test> <edit name="rgba" mode="assign"> <const>rgb</const> </edit> </match> - Abhängig von der Organisation Ihres Bildschirms - müssen Sie anstelle von - verwenden. Experimentieren Sie und - schauen Sie, was besser aussieht. - - - Mozilla - ohne Anti-Aliasing - - - Der nächste Start des X-Servers aktiviert das - Anti-aliasing-Verfahren. Beachten Sie, dass die Anwendungen dieses - Verfahren auch benutzen müssen. Zurzeit wird das Verfahren - von Qt und damit von KDE benutzt. - GTK+ und GNOME können das Verfahren mit dem - Font-capplet benutzen (Details entnehmen - Sie bitte ). Ab - der Version 1.2 benutzt Mozilla - automatisch das Anti-Aliasing Verfahren. Dies können - Sie verhindern, wenn Sie beim Übersetzen von - Mozilla die Option - -DWITHOUT_XFT angeben. + Abhängig von der Art Ihres Bildschirms + müssen Sie anstelle von rgb eines + der folgenden verwenden: bgr, + vrgb oder vbgr. + Experimentieren Sie und vergleichen, was besser aussieht. + Seth Kingsley Beigetragen von Der X-Display-Manager Einführung X-Display-Manager Der X-Display-Manager (XDM), eine optionale Komponente des X-Window-Systems, verwaltet Sitzungen. Er kann mit vielen Komponenten, wie minimal ausgestatteten X-Terminals, Arbeitsplatz-Rechnern und leistungsfähigen Netzwerkservern, nutzbringend eingesetzt werden. Da das X-Window-System netzwerktransparent ist, gibt es zahlreiche Möglichkeiten, X-Clients und X-Server auf unterschiedlichen Rechnern im Netz laufen zu lassen. XDM stellt eine grafische Anmeldemaske zur Verfügung, in der Sie den Rechner, auf dem eine Sitzung laufen soll, auswählen können und in der Sie die nötigen Autorisierungs-Informationen, wie Benutzername und Passwort, eingeben können. Die Funktion des X-Display-Managers lässt sich mit der von &man.getty.8; (siehe ) vergleichen. Er meldet den Benutzer am ausgesuchten System an, startet ein Programm (meist einen Window-Manager) und wartet darauf, dass dieses Programm beendet wird, das heißt der Benutzer die Sitzung beendet hat. Nachdem die Sitzung beendet ist, zeigt XDM den grafischen Anmeldebildschirm für den nächsten Benutzer an. XDM einrichten - Der XDM-Dæmon befindet sich in + Um XDM verwenden zu können, + installieren Sie den Port x11/xdm + (dieser wird standardmässig nicht in aktuellen + &xorg;-Versionen mitinstalliert). + Der XDM-Dæmon befindet sich dann in /usr/local/bin/xdm und kann jederzeit von root gestartet werden. Er verwaltet dann den X-Bildschirm des lokalen Rechners. XDM lässt sich bequem mit einem Eintrag in /etc/ttys (siehe ) bei jedem Start des Rechners aktivieren. In /etc/ttys sollte schon der nachstehende Eintrag vorhanden sein: ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure In der Voreinstellung ist dieser Eintrag nicht aktiv. Um den Eintrag zu aktivieren, ändern Sie den Wert in Feld 5 von off zu on und starten Sie &man.init.8; entsprechend der Anleitung in neu. Das erste Feld gibt den Namen des Terminals an, auf dem das Programm läuft. Im Beispiel wird ttyv8 verwendet, das heißt XDM läuft auf dem neunten virtuellen Terminal. XDM konfigurieren Das Verhalten und Aussehen von XDM steuern Sie mit Konfigurationsdateien, die im Verzeichnis /usr/local/lib/X11/xdm stehen. Üblicherweise finden Sie dort die folgenden Dateien vor: Datei Beschreibung Xaccess Regelsatz, der zur Autorisierung von Clients benutzt wird. Xresources Vorgabewerte für X-Ressourcen. Xservers Liste mit lokalen und entfernten Bildschirmen, die verwaltet werden. Xsession Vorgabe für das Startskript der Sitzung. Xsetup_* Skript, das dazu dient, Anwendungen vor der Anmeldung zu starten. xdm-config Konfiguration für alle auf der Maschine verwalteten Bildschirme. xdm-errors Fehlermeldungen des Servers. xdm-pid Die Prozess-ID des gerade laufenden XDM-Prozesses. Im Verzeichnis /usr/local/lib/X11/xdm befinden sich auch noch Skripten und Programme, die zum Einrichten der XDM-Oberfläche dienen. Der Zweck dieser Dateien und der Umgang mit ihnen wird in der Hilfeseite &man.xdm.1; erklärt. Wir gehen im Folgenden nur kurz auf ein paar der Dateien ein. Die vorgegebene Einstellung zeigt ein rechteckiges Anmeldefenster, in dem der Rechnername in großer Schrift steht. Darunter befinden sich die Eingabeaufforderungen Login: und Password:. Mit dieser Maske können Sie anfangen, wenn Sie das Erscheinungsbild von XDM verändern wollen. Xaccess Verbindungen zu XDM werden über das X Display Manager Connection Protocol (XDMCP) hergestellt. XDMCP-Verbindungen von entfernten Maschinen werden über den Regelsatz in Xaccess kontrolliert. Diese Datei wird allerdings ignoriert, wenn in xdm-config keine Verbindungen entfernter Maschinen erlaubt sind (dies ist auch die Voreinstellung). Xresources In dieser Datei kann das Erscheinungsbild der Bildschirmauswahl und der Anmeldemasken festgelegt werden. Das Format entspricht den Dateien im Verzeichnis app-defaults, die in der X11-Dokumentation beschrieben sind. Xservers Diese Datei enthält eine Liste entfernter Maschinen, die in der Bildschirmauswahl angeboten werden. Xsession Dieses Skript wird vom XDM aufgerufen, nachdem sich ein Benutzer erfolgreich angemeldet hat. Üblicherweise besitzt jeder Benutzer eine angepasste Version dieses Skripts in ~/.xsession, das dann anstelle von Xsession ausgeführt wird. Xsetup_* Diese Skripten werden automatisch ausgeführt bevor die Bildschirmauswahl oder die Anmeldemasken angezeigt werden. Für jeden lokalen Bildschirm gibt es ein Skript, dessen Namen aus Xsetup_ gefolgt von der Bildschirmnummer gebildet wird (zum Beispiel Xsetup_0). Normalerweise werden damit ein oder zwei Programme, wie xconsole, im Hintergrund gestartet. xdm-config Diese Datei enthält Einstellungen, die für jeden verwalteten Bildschirm zutreffen. Das Format entspricht dem der Dateien aus app-defaults. xdm-errors Die Ausgaben jedes X-Servers, den XDM versucht zu starten, werden in dieser Datei gesammelt. Wenn ein von XDM verwalteter Bildschirm aus unbekannten Gründen hängen bleibt, sollten Sie in dieser Datei nach Fehlermeldungen suchen. Für jede Sitzung werden die Meldungen auch in die Datei ~/.xsession-errors des Benutzers geschrieben. Einrichten eines Bildschirm-Servers auf dem Netzwerk Damit sich Clients mit dem Bildschirm-Server verbinden - können, muss der Zugriffsregelsatz editiert werden und der + können, muss der Zugriffsregelsatz editiert und der Listener aktiviert werden. Die Vorgabewerte sind sehr restriktiv eingestellt. Damit XDM Verbindungen annimmt, kommentieren Sie eine Zeile in der xdm-config Datei aus: ! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with xdm DisplayManager.requestPort: 0 Starten Sie danach XDM neu. Beachten Sie, dass Kommentare in den Ressourcen-Konfigurationsdateien mit einem ! anstelle des sonst üblichen Zeichens # beginnen. Wenn Sie strengere Zugriffskontrollen einrichten wollen, sehen Sie sich die Beispiele in Xaccess und die Hilfeseite &man.xdm.1; an. XDM ersetzen Es gibt mehrere Anwendungen, die XDM ersetzen können, zum Beispiel kdm, der Teil von KDE ist und später in diesem Kapitel besprochen wird. kdm ist ansprechender gestaltet und bietet neben einigen Schnörkeln die Möglichkeit, den zu verwendenden Window-Manager bei der Anmeldung auszuwählen. Valentino Vaschetto Beigetragen von Grafische Oberflächen Dieser Abschnitt beschreibt verschiedene grafische Oberflächen, die es für X unter FreeBSD gibt. Eine Oberfläche (desktop environment) kann alles von einem einfachen Window-Manager bis hin zu kompletten Anwendungen wie KDE oder GNOME sein. GNOME Über GNOME GNOME GNOME ist eine benutzerfreundliche Oberfläche, mit der Rechner leicht benutzt und konfiguriert werden können. GNOME besitzt eine Leiste, mit der Anwendungen gestartet werden und die Statusinformationen anzeigen kann. Programme und Daten können auf der Oberfläche abgelegt werden und Standardwerkzeuge stehen zur Verfügung. Es gibt Konventionen, die es Anwendungen leicht machen, zusammenzuarbeiten und ein konsistentes Erscheinungsbild garantieren. Benutzer anderer Betriebssysteme oder anderer Arbeitsumgebungen sollten mit der leistungsfähigen grafischen Oberfläche von GNOME sehr gut zurechtkommen. Auf der Webseite FreeBSD GNOME Project finden Sie weitere Informationen über GNOME auf FreeBSD. Zusätzlich finden Sie dort umfassende FAQs zur Installation, Konfiguration und zum Betrieb von GNOME. GNOME installieren Am einfachsten installieren Sie GNOME als Paket oder über die Ports-Sammlung. Wenn Sie das GNOME-Paket über das Netz installieren wollen, setzen Sie den nachstehenden Befehl ab: &prompt.root; pkg_add -r gnome2 Wenn Sie den Quellcode von GNOME übersetzen wollen, benutzen Sie die Ports-Sammlung: &prompt.root; cd /usr/ports/x11/gnome2 &prompt.root; make install clean Nachdem GNOME installiert ist, muss der X-Server GNOME anstelle eines Window-Managers starten. Der einfachste Weg, GNOME zu starten, ist GDM, der GNOME Display Manager. GDM, das als Teil des GNOME-Desktops installiert (aber in der Voreinstellung deaktiviert) wird, kann durch das Einfügen von gdm_enable="YES" in /etc/rc.conf beim Systemstart aktiviert werden. Nach einem Systemneustart wird GNOME nach dem Anmelden automatisch gestartet. + + Um zusätzlich alle + GNOME-Dienste beim Start von + GDM zu aktivieren, fügen Sie die + Zeile gnome_enable="YES" zu der Datei + /etc/rc.conf hinzu. GNOME kann auch von der Kommandozeile gestartet werden, wenn Sie eine entsprechend konfigurierte .xinitrc in Ihrem Heimatverzeichnis besitzen. Existiert eine solche Version, ersetzen Sie den Aufruf des Window-Managers durch /usr/local/bin/gnome-session. Wenn .xinitrc nicht gesondert angepasst wurde, reicht es, den nachstehenden Befehl abzusetzen: &prompt.user; echo "/usr/local/bin/gnome-session" > ~/.xinitrc Rufen Sie danach startx auf, um die GNOME Oberfläche zu starten. Wenn Sie einen älteren Display-Manager wie XDM verwenden, müssen Sie anders vorgehen. Legen Sie eine ausführbare .xsession an, die das Kommando zum Start von GNOME enthält. Ersetzen Sie dazu den Start des Window-Managers durch /usr/local/bin/gnome-session: &prompt.user; echo "#!/bin/sh" > ~/.xsession &prompt.user; echo "/usr/local/bin/gnome-session" >> ~/.xsession &prompt.user; chmod +x ~/.xsession Sie können den Display-Manager auch so konfigurieren, dass der Window-Manager beim Anmelden gewählt werden kann. Im Abschnitt Details zu KDE wird das für kdm, den Display-Manager von KDE erklärt. - - - Anti-aliasing-Verfahren mit GNOME - - - GNOME - Anti-Aliasing-Verfahren - - - Die RENDER-Erweiterung von X11 - setzt das Anti-Aliasing-Verfahren um. - GTK+ 2.0 (das GNOME-Toolkit) und spätere Versionen - benutzen dieses Verfahren. Die Konfiguration des - Verfahrens ist in beschrieben. - Aktivieren Sie Anti-Aliasing im Menü - - Applications - Desktop Preferences - Font - . Dort wählen - Sie dann eine der Möglichkeiten - Best shapes, - Best contrast oder - Subpixel smoothing (LCDs). - Für GTK+-Anwendungen, die nicht Teil von - GNOME sind, setzen Sie - die Umgebungsvariable GDK_USE_XFT - vor dem Start der Anwendung auf den Wert - 1. - KDE Über KDE KDE KDE ist eine moderne, leicht zu benutzende Oberfläche, die unter anderem Folgendes bietet: eine schöne und moderne Oberfläche, eine Oberfläche, die völlig netzwerktransparent ist, ein integriertes Hilfesystem, das bequem und konsistent Hilfestellungen bezüglich der Bedienung der KDE-Oberfläche und ihrer Anwendungen gibt, ein konstantes Erscheinungsbild (look and feel) aller KDE-Anwendungen, einheitliche Menüs, Werkzeugleisten, Tastenkombinationen und Farbschemata, Internationalisierung: KDE ist in mehr als 40 Sprachen erhältlich, durch Dialoge gesteuerte zentrale Konfiguration der Oberfläche, viele nützliche KDE-Anwendungen. In KDE ist mit Konqueror auch ein Webbrowser enthalten, der sich durchaus mit anderen Webbrowsern auf &unix;-Systemen messen kann. Weitere Informationen über KDE erhalten Sie auf den KDE-Webseiten. Auf der Webseite KDE on FreeBSD finden Sie weitere FreeBSD-spezifische Informationen über KDE. + + Es sind zwei Versionen von KDE + unter &os; verfügbar. + Version 3 ist schon seit einiger Zeit erhältlich und ist + sehr ausgereift. Version 4, die nächste Generation, ist + ebenfalls über die Ports-Sammlung verfügbar. Beide + Versionen können sogar gleichzeitig installiert werden. KDE installieren Am einfachsten installieren Sie KDE, - wie jede andere grafische Oberfläche auch als Paket + wie jede andere grafische Oberfläche auch, als Paket oder über die Ports-Sammlung. - Um KDE über das Netz zu + Um KDE3 über das Netz zu installieren, setzen Sie den nachstehenden Befehl ab: &prompt.root; pkg_add -r kde + Um KDE4 über das Netzwerk + zu installieren, geben Sie folgendes ein: + + &prompt.root; pkg_add -r kde4 + &man.pkg.add.1; installiert automatisch die neuste Version einer Anwendung. Benutzen Sie die Ports-Sammlung, wenn Sie den Quellcode von - KDE übersetzen wollen: + KDE3 übersetzen wollen: &prompt.root; cd /usr/ports/x11/kde3 &prompt.root; make install clean + Um KDE4 aus dem Quellcode zu + übersetzen, geben Sie folgendes ein: + + &prompt.root; cd /usr/ports/x11/kde4 +&prompt.root; make install clean + Nachdem KDE installiert ist, muss der X-Server KDE anstelle eines Window-Managers starten. Legen Sie dazu die Datei .xinitrc an: + Für KDE3: + &prompt.user; echo "exec startkde" > ~/.xinitrc + + Für KDE4: + + &prompt.user; echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrc Wenn das X-Window-System danach mit startx gestartet wird, erscheint die KDE-Oberfläche. Wird ein Display-Manager wie XDM benutzt, muss .xsession angepasst werden. Eine Anleitung für kdm folgt gleich in diesem Kapitel. Details zu KDE Wenn KDE erst einmal installiert ist, erschließen sich die meisten Sachen durch das Hilfesystem oder durch Ausprobieren. Benutzer von Windows oder &macos; werden sich sehr schnell zurecht finden. Die beste Referenz für KDE ist die Online-Dokumentation. KDE besitzt einen eigenen Webbrowser, sehr viele nützliche Anwendungen und ausführliche Dokumentation. Der Rest dieses Abschnitts beschäftigt sich daher mit Dingen, die schlecht durch einfaches Ausprobieren erlernbar sind. Der KDE-Display-Manager KDE Display-Manager Der Administrator eines Mehrbenutzersystems will den Benutzern vielleicht eine grafische Anmeldung wie mit XDM ermöglichen. KDE besitzt einen eigenen Display-Manager, der schöner aussieht und auch über mehr Optionen verfügt. Insbesondere können sich die Benutzer die Oberfläche für die Sitzung (beispielsweise KDE oder GNOME) aussuchen. Um kdm zu aktivieren, müssen Sie den Eintrag ttyv8 in der Datei /etc/ttys anpassen. Die von Ihnen angepasste Zeile sollte ähnlich der folgenden aussehen: + Für KDE3: + ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure + + Für KDE4: + + ttyv8 "/usr/local/kde4/bin/kdm -nodaemon" xterm on secure - XFce + Xfce - Über XFce + Über Xfce - XFce ist eine grafische + Xfce ist eine grafische Oberfläche, die auf den GTK+-Bibliotheken, die auch von GNOME benutzt werden, beruht. Die Oberfläche ist allerdings weniger aufwändig und für diejenigen gedacht, die eine schlichte und effiziente Oberfläche wollen, die dennoch einfach zu benutzen und zu konfigurieren ist. Die Oberfläche sieht ähnlich wie CDE aus, das in kommerziellen &unix; Systemen verwendet wird. Einige Merkmale - von XFce sind: + von Xfce sind: eine schlichte einfach zu benutzende Oberfläche, vollständig mit Mausoperationen konfigurierbar, Unterstützung von drag and drop, ähnliche Hauptleiste wie CDE, die Menüs enthält und über die Anwendungen gestartet werden können, integrierter Window-Manager, Datei-Manager und Sound-Manager, GNOME-compliance-Modul, mit Themes anpassbar (da GTK+ benutzt wird), schnell, leicht und effizient: ideal für ältere oder langsamere Maschinen oder Maschinen mit wenig Speicher. Weitere Information über - XFce erhalten Sie auf der - XFce-Webseite. + Xfce erhalten Sie auf der + Xfce-Webseite. - XFce installieren + Xfce installieren - Das XFce-Paket installieren Sie + Das Xfce-Paket installieren Sie mit dem nachstehenden Kommando: &prompt.root; pkg_add -r xfce4 Mit der Ports-Sammlung können Sie auch den Quellcode übersetzen: &prompt.root; cd /usr/ports/x11-wm/xfce4 &prompt.root; make install clean Damit beim nächsten Start des X-Servers - XFce benutzt wird, setzen Sie das + Xfce benutzt wird, setzen Sie das folgende Kommando ab: &prompt.user; echo "/usr/local/bin/startxfce4" > ~/.xinitrc Wenn Sie einen Display-Manager benutzen, erstellen Sie die Datei .xsession, wie im GNOME Abschnitt beschrieben. Verwenden Sie jetzt allerdings das Kommando /usr/local/bin/startxfce4. Sie können auch den Display-Manager wie im kdm Abschnitt beschrieben, so konfigurieren, dass die Oberfläche für die Sitzung ausgewählt werden kann. diff --git a/de_DE.ISO8859-1/flyer/flyer.tex b/de_DE.ISO8859-1/flyer/flyer.tex index 39bedabbdc..0e98780347 100644 --- a/de_DE.ISO8859-1/flyer/flyer.tex +++ b/de_DE.ISO8859-1/flyer/flyer.tex @@ -1,218 +1,218 @@ -% Copyright (c) 2004-2008 Marc Fonvieille +% Copyright (c) 2004-2010 Marc Fonvieille % All rights reserved. % % Redistribution and use in source and binary forms, with or without % modification, are permitted provided that the following conditions % are met: % 1. Redistributions of source code must retain the above copyright % notice, this list of conditions and the following disclaimer. % 2. Redistributions in binary form must reproduce the above copyright % notice, this list of conditions and the following disclaimer in the % documentation and/or other materials provided with the distribution. % % THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND % ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE % IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE % ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE % FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL % DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS % OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) % HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT % LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY % OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF % SUCH DAMAGE. % % $FreeBSD$ -% $FreeBSDde: de-docproj/flyer/flyer.tex,v 1.9 2008/01/13 23:17:45 miwi Exp $ -% basiert auf: 1.16 +% $FreeBSDde: de-docproj/flyer/flyer.tex,v 1.10 2010/01/23 20:27:46 bcr Exp $ +% basiert auf: 1.17 % % FreeBSD Flyer % Use make FORMAT (with FORMAT: pdf, ps or dvi) to build the flyer. % Two layouts are available: one using Beastie the other one using the % FreeBSD Logo. The layout selection is done below via the value of % the \logo variable. By default the Beastie layout is enabled. % \documentclass[11pt]{article} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} % Use the right language \usepackage[german]{babel} \usepackage{pslatex} \usepackage{graphicx} \usepackage{fancybox} \usepackage{url} % Use the right papersize, do not forget to change also the Makefile \usepackage[verbose,a4paper,noheadfoot,margin=1cm]{geometry} \usepackage{ifthen} % Use of the Logo (set the \logo variable below to true) or Beastie % (\logo variable set to false). \newcommand{\logo}{false} % Colors settings \usepackage{color} \ifthenelse{\equal{\logo}{true}}{ \definecolor{bkgrdtitle}{rgb}{.69,0,0} \definecolor{redtitle}{rgb}{.65,.16,.22} \definecolor{ovalboxcolor}{rgb}{.69,0,0} } { \definecolor{bkgrdtitle}{rgb}{1,.84,.22} \definecolor{redtitle}{rgb}{.65,.16,.22} \definecolor{ovalboxcolor}{rgb}{.65,.16,.22} } % Some macros \ifthenelse{\equal{\logo}{true}}{ \newcommand{\titledframe}[3]{% \boxput*(0,1){\colorbox{bkgrdtitle}{\color{white} \large{\textbf{\textsf{#1}}}}} {\setlength {\fboxsep}{12pt} \color{ovalboxcolor}\Ovalbox {\color{black}\begin{minipage}{#3}#2\end{minipage}}} }} { \newcommand{\titledframe}[3]{% \boxput*(0,1){\colorbox{bkgrdtitle}{\color{black} \large{\textbf{\textsf{#1}}}}} {\setlength {\fboxsep}{12pt} \color{ovalboxcolor}\Ovalbox {\color{black}\begin{minipage}{#3}#2\end{minipage}}} }} \newcommand{\reg}{$^{\mbox{\tiny \textregistered}}$} \newcommand{\tm}{$^{\mbox{\tiny TM}}$} \newenvironment{itemizeflyer}% { \begin{list}% {\textendash}% { \setlength{\leftmargin}{5pt}% \setlength{\itemsep}{0pt}% \setlength{\parskip}{0pt}% \setlength{\parsep}{0pt}}} { \end{list}} \pagestyle{empty} \begin{document} \begin{center} \ifthenelse{\equal{\logo}{true}}{ \includegraphics[scale=0.4]{logo-full.eps} \vspace{1mm} } { \fontsize{40}{36}\selectfont {\color{redtitle} \textrm{\textbf{FreeBSD}}}\medskip} \end{center} %\vspace{2mm} % Main part \begin{center} \ifthenelse{\equal{\logo}{true}}{ \newcommand{\size}{17.3cm} } {\newcommand{\size}{12.7cm}} \titledframe{Was ist FreeBSD?}{ FreeBSD ist ein modernes Betriebssystem für x86-kompatible (einschließlich Pentium\reg und Athlon\tm), amd64-kompatible (einschließlich Opteron\tm, Athlon\tm 64 und EM64T), UltraSPARC\reg-, IA-64- (Intel\reg Itanium\reg Prozessor-Familie), PC-98- sowie ARM-Architekturen. FreeBSD stammt von BSD, dem UNIX\reg-Betriebssystem der University of California, Berkeley, ab. }{\size} \ifthenelse{\equal{\logo}{false}}{ \begin{minipage}{4cm} \includegraphics[scale=0.3]{../../share/images/flyer/beastie.eps} \end{minipage} } \ifthenelse{\equal{\logo}{true}}{ \vspace{5mm}}{\vspace{3mm}} \titledframe{Herausragende Funktionen}{ In den Bereichen Netzwerk, Leistungsfähigkeit, Sicherheit und Kompatibilität besitzt FreeBSD heute schon Funktionen, die in anderen Betriebssystemen, selbst in den besten kommerziellen, fehlen. }{5cm} \titledframe{\textsf{\textbf{Leistungsfähige Internet-Dienste}}}{ FreeBSD enthält eine von vielen Leuten als Referenzimplementierung betrachtete TCP/IP-Software, den 4.4BSD TCP/IP-Protokoll-Stack. Es ist daher ideal für Netzwerkanwendungen und das Internet. FreeBSD ist bestens geeignet für Internet- oder Intranet-Server. Auch unter höchsten Lasten arbeiten die Netzwerkdienste zuverlässig. Der effiziente Umgang mit dem Speicher garantiert schnelle Antwortzeiten für tausende gleichzeitig laufende Benutzerprozesse. }{11.12cm} \vspace{5mm} \titledframe{Wählen Sie aus einer Vielzahl von Anwendungen!}{ -FreeBSD wird mit mehr als 17.000 installationsfertigen Softwarepaketen +FreeBSD wird mit mehr als 21.000 installationsfertigen Softwarepaketen ausgeliefert, unter anderem: Apache, Samba, MySQL\reg, OpenOffice.org, KDE, GNOME, MPlayer, etc. \medskip FreeBSD bietet die Ports-Sammlung, ein System, das Quellcode aus dem Internet oder von einer CD-ROM herunterlädt und daraus Binärdateien kompiliert, inklusive dem Bau und der Installation von abhängigen Paketen. Alle Operationen sind dabei für den Benutzer transparent. \medskip Die meisten GNU/Linux-Applikationen sind auch unter FreeBSD lauffähig. So laufen etwa Acrobat Reader\reg, Oracle\reg, SAP/R3\reg, Mathematica\reg, Quake3, etc. ohne merkliche Geschwindigkeitsverluste. }{17.3cm} \vspace{5mm} \titledframe{FreeBSD ist einfach zu installieren}{ FreeBSD kann von verschiedenen Medien, wie CD-ROM, DVD-ROM, Disketten, Bandlaufwerken, MS-DOS\reg Partitionen, oder auch über eine Netzwerkverbindung (per anonymem FTP oder NFS) installiert werden. }{17.3cm} \vspace{5mm} \titledframe{FreeBSD ist frei}{ FreeBSD ist kostenlos verfügbar und wird mit vollständigem Quellcode ausgeliefert. Der Großteil dieses Quellcodes steht unter der BSD-Lizenz. Im Gegensatz zur GPL-Lizenz des Linux Kernels erlaubt es die BSD-Lizenz, veränderte Versionen des Originalquellcodes als Binärdateien zu verbreiten, ohne den Quellcode mitliefern zu müssen. Dies führt dazu, dass Firmen den FreeBSD-Quellcode als Basis für ihre Produkte nutzen. Oft fließen dabei Teile des weiterentwickelten Codes zurück an die Gemeinschaft. }{17.3cm} \vspace{5mm} \titledframe{Für nahezu jede Aufgabe geeignet}{ FreeBSD ist für eine große Anzahl von Desktop-, Server-, Embedded- und Applianceanwendungen gut geeignet. Heutzutage ist FreeBSD nicht nur ein Betriebssystem für Server, sondern bietet sich auch für Endnutzer, vor allem Umsteiger von Windows\reg und GNU/Linux, an. }{17.3cm} \vspace{5mm} \titledframe{Kontakt}{ \begin{itemizeflyer} \item Webseite: \url{http://www.FreeBSD.org/de/} \item FreeBSD-Handbuch: \url{http://www.FreeBSD.org/de/handbook/} \end {itemizeflyer} }{17.3cm} \end{center} % % Copyrights \begin{center} -\tiny \copyright 2004-2008 The FreeBSD Project\\ +\tiny \copyright 2004-2010 The FreeBSD Project\\ \ifthenelse{\equal{\logo}{true}}{ FreeBSD und das FreeBSD-Logo sind registrierte Markenzeichen der FreeBSD Foundation.\\} {FreeBSD ist ein registriertes Markenzeichen der FreeBSD Foundation.\\} Alle anderen Firmen- und Produktnamen können Markenzeichen der jeweiligen Firmen sein.\\ \ifthenelse{\equal{\logo}{false}}{ BSD Daemon, \copyright 1988 von Marshall Kirk McKusick. Alle Rechte vorbehalten.}{} \end{center} \end{document} diff --git a/de_DE.ISO8859-1/share/sgml/trademarks.sgml b/de_DE.ISO8859-1/share/sgml/trademarks.sgml index 5aef110aca..2e4c241f9f 100644 --- a/de_DE.ISO8859-1/share/sgml/trademarks.sgml +++ b/de_DE.ISO8859-1/share/sgml/trademarks.sgml @@ -1,45 +1,45 @@ FreeBSD ist ein eingetragenes Warenzeichen von der FreeBSD Foundation. UNIX ist ein eingetragenes Warenzeichen von The Open Group in den Vereinigten Staaten und in anderen Ländern. - Sun, Sun Microsystems, SunOS, Solaris, und Java + Sun, Sun Microsystems, SunOS, Solaris, Java, JDK und OpenJDK sind Warenzeichen oder eingetragene Warenzeichen von Sun Microsystems, Inc. in den Vereinigten Staaten und in anderen Ländern. Apple und QuickTime sind Warenzeichen oder eingetragene Warenzeichen von Apple Computer, Inc. in den Vereinigten Staaten und in anderen Ländern. Macromedia und Flash sind Warenzeichen oder eingetragene Warenzeichen von Macromedia, Inc. in den Vereinigten Staaten und/oder in anderen Ländern. Microsoft, Windows, und Windows Media sind Warenzeichen oder eingetragene Warenzeichen der Microsoft Corporation in den Vereinigten Staaten und/oder in anderen Ländern. PartitionMagic ist ein eingetragenes Warenzeichen von PowerQuest Corporation in den Vereinigten Staaten und/oder in anderen Ländern. Viele Produktbezeichnungen von Herstellern und Verkäufern sind Warenzeichen. Soweit dem FreeBSD Project das Warenzeichen bekannt ist, werden die in diesem Buch vorkommenden Bezeichnungen mit dem Symbol ™ gekennzeichnet.