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-HenningKampBeigesteuert von AxelGrunerÜbersetzt von Vorgaben und Richtlinien für das
QuelltextverzeichnisDieses Kapitel dokumentiert verschiedene Vorgaben und
Richtlinien für das FreeBSD-Quelltextverzeichnis.MAINTAINER eines MakefilesPorts-MaintainerWenn 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-HenningKampBeigesteuert von DavidO'BrienBeigesteuerte SoftwareBeigesteuerte SoftwareEinige 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 1997Belastende DateienEs 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-TeamDas Core-Team
+ url="&url.base;/administration.html#t-core">Core-Team
entscheidet, ob der Code von
make world gebaut wird oder nicht.Release-EngineerDer Release-Engineer
+ url="&url.base;/administration.html#t-re">Release-Engineer
entscheidet, ob es in das Release
aufgenommen wird oder nicht.SatoshiAsamiBeigesteuert von PeterWemmDavidO'BrienShared-LibrariesSollten 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;-HandbuchThe FreeBSD German Documentation ProjectFebruar 1999199519961997199819992000200120022003200420052006200720082009
+ 2010The 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 SchritteDieser Teil des &os;-Handbuchs richtet sich an Benutzer
und Administratoren für die &os; neu ist. Diese
Kapitelgeben 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 undfü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 FunktionenNach 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.SystemadministrationDie 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übertragungPPP und PPP over EthernetElectronic-MailDen Betrieb von NetzwerkdienstenFirewallsWeiterführende NetzwerkthemenDiese 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 @@
JimMockUmstrukturiert und aktualisiert von JordanHubbardIm Original von Poul-HenningKampJohnPolstraNikClaytonMartinHeinenÜ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 Siewissen, 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 SieIhr Netzwerk richtig konfiguriert haben
() undwissen, 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.TomRhodesGeschrieben von ColinPercivalBasierend auf bereitgestellten Mitschriften von BenedictReuschlingÜbersetzt von &os;-UpdateUpdating and Upgradingfreebsd-updateupdating-upgradingDas 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 KonfigurationsdateiManche 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 kernelDieser 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.
IgnorePathsFü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 /.profileAktualisieren 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-updateIn 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 noWenn 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.SicherheitsaktualisierungenSicherheitsaktualisierungen 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 installWenn 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 cronDieser 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 rollbackSobald 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 UnterversionenDieser 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 -afDies 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 GENERICErsetzen 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/bootDamit 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 upgradeNachdem 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)? yAn 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 installDer 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 GENERICBevor 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 nowSobald 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 installAbhä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 -afSobald 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 installWenn 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 SystemzustandsDas 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.idsObwohl 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.confDiese 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.TomRhodesGeschrieben von ColinPercivalBasierend auf bereitgestellten Mitschriften von BenedictReuschlingÜbersetzt von Portsnap: Ein Werkzeug zur Aktualisierung der Ports-SammlungUpdating and UpgradingPortsnapUpdating and UpgradingDas 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 updateDer 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 updateBenedictReuschlingÜbersetzt von Aktualisieren der DokumentationssammlungUpdating and UpgradingDocumentationUpdating and UpgradingNeben 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 aktualisierenDie 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
installierenDie &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 aktualisierenDas 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 updateEin 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-supfileDas 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 DokumentationsquellenDas 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_LANGEine Liste von Sprachen und Kodierungen, die gebaut und
installiert werden sollen, z.B.
en_US.ISO8859-1, um nur die englische
Dokumentation zu erhalten.FORMATSEin einzelnes Format oder eine Liste von Ausgabeformaten, das
gebaut werden soll. Momentan werden html,
html-split, txt,
ps, pdf,
und rtf unterstützt.SUPHOSTDer Hostname des CVSup-Servers,
der verwendet werden soll, um Aktualisierungen zu holen.DOCDIRWohin 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 installierenWenn 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 cleanWenn 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 cleanWenn 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 cleanDie 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 cleanMarcFonvieilleBasierend auf der Arbeit von Verwendung von Dokumentations-PortsUpdating and Upgradingdocumentation packageUpdating and UpgradingIm 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-PortsDie 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 cleanAuf 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 OptionenEs gibt viele Optionen, um das Standarderhalten der
Dokumentations-Ports zu verändern. Im Folgenden sind nur ein
paar davon aufgeführt:WITH_HTMLErlaubt 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_PDFErlaubt 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.DOCBASEWohin 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 cleanVerwendung von Dokumentations-PaketenDas 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-docPakete 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 aktualisierenUm 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-docPavLucistnikBased on information provided by Using DocsnapUpdating and UpgradingDocsnapUpdating and UpgradingDocsnap 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 rsyncDocsnap 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/docThere 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/docIf 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-STABLEFreeBSD 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; nicht 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;-CURRENTbenutzenEs 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:cvsupcron-CURRENTmit CVSup
synchronisierenBenutzen 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_Ydurch diese ersetzen:*default release=cvs tag=.Lesen Sie den Abschnitt über CVS Tags im Handbuch, um eine
genaue Beschreibung von verwendbaren Tags zu
erhalten.-CURRENTmit CTM synchronisierenCTM
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übersetzenSehen 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;-STABLEbenutzenLesen 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:cvsupcron-STABLEmit CVSup
synchronisierenBenutzen 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.-STABLEmit CTM synchronisierenBenutzen 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übersetzenBevor 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 QuellenSie 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.CVSanonymousAnonymous 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.CTMIm 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 bauenBau des BasissystemsWenn 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 MailinglisteMailinglisteDie &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 make worldÄ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 aktualisierenUm 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
buildworldDieser 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
buildkernelStatt 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
installkernelPlatziert 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
installworldKopiert das Basissystem aus /usr/obj. Sie haben jetzt den
neuen Kernel und das neue Basissystem auf der Festplatte.mergemasterSie 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 nowEs 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; rebootLesen Sie bitte weiterDie 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 /usr/src/UPDATINGBevor 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
/etc/make.confmake.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 /etcDas 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 -pWenn 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 -printDas 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-ModusSingle-User-ModusSie 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.MehrbenutzermodusEine 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 nowAlternativ 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 -aDie 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 -iDies stellt sicher, dass Ihre Zeitzone richtig
eingestellt ist. Ohne dieses Kommando werden Sie
vielleicht später Probleme bekommen.Entfernen Sie /usr/objDie 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 BasissystemsSichern der AusgabenFü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 BasissystemsWechseln Sie in das Verzeichnis, in dem die Quellen liegen
(in der Voreinstellung ist das
/usr/src):&prompt.root; cd /usr/srcmakeZum 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 -DVARIABLEtargetIn 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 targetDieser Aufruf entspricht dem folgenden Eintrag in
/etc/make.conf:NO_PROFILE= true # Avoid compiling profiled librariesJedes 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 targettarget 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 buildworldMit 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.LaufzeitenBau des BasissystemsLaufzeitenDie 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 KernelsKernelÜbersetzenUm 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=MYKERNELWenn 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-ModusSingle-User-ModusUm zu prüfen, ob der neue Kernel funktioniert, sollten Sie
in den Single-User-Modus booten. Folgen Sie dazu der Anleitung aus
.Installation des SystemsWenn 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 installworldWenn 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 buildworldBei der Installation setzen Sie dann das folgende Kommando
ab:&prompt.root; make -DNO_PROFILE installworldWü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 make installworld
ausgelassenen DateienNeue 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.TomRhodesBeigetragen von mergemastermergemasterDas 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 KonfigurationsdateienWenn 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 /etcObwohl 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.oldMit 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 distributionDie 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/nullIm 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/shellsDas 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
ZeitstempelWenn 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 distributionGleichen Sie die Änderungen entsprechend der
Anleitung von oben ab.Wenn Sie fertig sind, entfernen Sie das Verzeichnis
/var/tmp/root-19980214nicht.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-19980214Wiederholen 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 startenSie 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 nowEndeHerzlichen 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 installFragenMuss 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.csrc/games/sail/pl_main.csrc/release/sysinstall/config.csrc/release/sysinstall/media.csrc/share/mk/bsd.port.mkIn 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 11Normalerweise 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 allDiese 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/srcDas 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/objErsetzen 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 cleandirJa, 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.MikeMeyerBeigetragen von Installation mehrerer MaschinenWenn 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.VoraussetzungenStellen 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 BasissystemsNach 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-SammlungDasselbe 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 @@
JimMockErweitert und neu strukturiert von JakeHambyUrsprünglich veröffentlicht von RobertAltschaffelÜbersetzt von Konfiguration des &os;-KernelsÜbersichtKernelErstellen eines angepassten KernelsDer 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.TomRhodesGeschrieben von Informationen über die vorhandene Hardware
beschaffenBevor 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 0Dieser 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 = ethernetDiese 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 AtherosDadurch 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 ModuleKernelTreiber / Module / SubsystemeBevor 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
KernelsKernelErstellen und InstallationZuerst 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 MYKERNELTraditionell 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/MYKERNELJetzt 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.SunOSFalls 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 bauenWechseln Sie in das Verzeichnis /usr/src:&prompt.root; cd /usr/srcKompilieren Sie den neuen Kernel:&prompt.root; make buildkernel KERNCONF=MYKERNELInstallieren Sie den neuen Kernel:&prompt.root; make installkernel KERNCONF=MYKERNELSie 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 ntfsWenn 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 ntfsDurch 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.oldDer 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.JoelDahlFür &os; 6.X aktualisiert von Die KernelkonfigurationsdateiKernelNOTESNOTESKernelKonfigurationsdateiDas 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 LINTKernelKonfigurationsdateiDas 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.Kerneloptionenmachinemachine i386Gibt die Architektur der Maschine an und muss entweder
alpha, amd64,
i386, ia64,
pc98, powerpc
oder sparc64 sein.Kerneloptionencpucpu I486_CPU
cpu I586_CPU
cpu I686_CPUDie 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.Kerneloptionenidentident GENERICGibt 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 symbolsDer 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 schedulerDer voreingestellte Scheduler von &os;. Ändern Sie
diesen Wert nicht!options PREEMPTION # Enable kernel thread preemptionErlaubt 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 # InterNETworkingNetzwerkunterstü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 protocolsAktiviert die Unterstützung für das IPv6
Protokoll.options FFS # Berkeley Fast FilesystemDas Dateisystem für Festplatten. Wenn Sie von einer
Festplatte booten wollen, lassen Sie diese Option aktiviert.options SOFTUPDATES # Enable FFS Soft Updates supportMit 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 listsDiese 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 directoriesDiese 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 deviceDiese Option aktiviert die Unterstüztung für
ein Root-Dateisystem auf einem speicherbasierten Laufwerk
(RAM-Disk).KerneloptionenNFSKerneloptionenNFS_ROOToptions NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENTDas Network Filesystem. Wenn Sie keine Partitionen von einem
&unix; File-Server über TCP/IP einhängen wollen, können
Sie diese Zeile auskommentieren.KerneloptionenMSDOSFSoptions MSDOSFS # MSDOS FilesystemDas &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 FilesystemDas 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 framework6.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 FreeBSD4Mit &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;5Diese 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 SCSIDies 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) supportDies schaltet die Kernel-Prozessverfolgung
(engl. kernel process tracing) ein,
die sehr nützlich bei der Fehlersuche ist.options SYSVSHM # SYSV-style shared memoryDiese 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 queuesUnterstützung für System V Messages.
Diese Option vergrößert den Kernel nur um
einige hundert Bytes.options SYSVSEM # SYSV-style semaphoresUnterstü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 extensionsEchtzeit-Erweiterungen, die 1993 zu &posix;
hinzugefügt wurden. Bestimmte Programme wie
&staroffice; benutzen
diese Erweiterungen.options KBD_INSTALL_CDEV # install a CDEV entry in /devDiese 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.KerneloptionenSMPdevice apic # I/O APICDas 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 eisaFü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 pciWenn 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 fdcDer Floppy-Controller.# ATA and ATAPI devices
device ataDieser 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 drivesFür ATA-Plattenlaufwerke brauchen Sie diese Zeile zusammen
mit device ata.device ataraid # ATA RAID drivesFür ATA-RAID brauchen Sie diese Zeile zusammen
mit device ata.
device atapicd # ATAPI CDROM drivesZusammen mit device ata wird dies für
ATAPI CD-ROM Laufwerke benötigt.device atapifd # ATAPI floppy drivesZusammen mit device ata wird dies für
ATAPI Floppy Laufwerke benötigt.device atapist # ATAPI tape drivesZusammen mit device ata wird dies für
ATAPI Bandlaufwerke benötigt.options ATA_STATIC_ID # Static device numberingErzwingt 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/18C50SCSI-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 RAIDUnterstü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 controllerDer 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 keyboardZusammen mit dem atkbdc Controller bietet der
atkbd Treiber Zugriff auf AT-Tastaturen.device psm # PS/2 mouseBenutzen Sie dieses Gerät, wenn Sie eine Maus mit PS/2
Anschluss besitzen.device kbdmux # keyboard multiplexerBasisunterstützung für Tastaturmultiplexer.
Verwenden Sie nur eine einzige Tastatur, können Sie diese
Zeile aus Ihrer Kernelkonfigurationsdatei entfernen.device vga # VGA video card driverDer Grafikkartentreiber.device splash # Splash screen and screen saver supportZeigt 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 scsc 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 cursorDer 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 agpFü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 apmUnterstü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 pmtimerZeitgeber 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) busPCMCIA Unterstützung. Wenn Sie einen Laptop benutzen,
brauchen Sie diese Zeile.# Serial (COM) ports
device sio # 8250, 16[45]50 based serial portsDie 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 ppcDie parallele Schnittstelle auf dem ISA Bus.device ppbus # Parallel port bus (required)Unterstützung für den Bus auf der parallelen
Schnittstelle.device lpt # PrinterUnterstü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 parallelDer Treiber für das Netzwerkinterface über die
parallele Schnittstelle.device ppi # Parallel port interface deviceAllgemeine I/O (geek port) und IEEE1284 I/O
Unterstützung.#device vpo # Requires scbus and daZip LaufwerkDies 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 pucAktivieren 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 supportEinige 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 leTreiber 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 supportGenerische 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 supportKrypto-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 loopbackDas 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 deviceKryptographisch sicherer Zufallszahlengenerator.device ether # Ethernet supportether brauchen Sie nur, wenn Sie eine
Ethernet-Karte besitzen. Der Treiber unterstützt das
Ethernet-Protokoll.device sl # Kernel SLIPsl 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 PPPDies 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 disksPseudo-Gerät für Speicher-Laufwerke.device gif # IPv6 and IPv4 tunnelingDieses 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 filterDas 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 EthernetUnterstü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 (PAE)Physical Address Extensions (PAE)hohe SpeicheranforderungenSysteme 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 schiefgehtEs 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 errorVergleichen 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/kernelDer 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 @@
UwePierauÜbersetzt von Installieren von Anwendungen: Pakete und PortsÜbersichtPortsPaketeFreeBSD 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 SoftwareWenn 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 PaketenDas 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 PortsDa 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 AnwendungBevor 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.FreshPortsFreshPorts, 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.FreshMeatWenn 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/lsofDamit 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/lsofBeachten 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.ChernLeeBeigesteuert 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 PaketsPaketeinstallierenpkg_addMit &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.tgzWenn 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 lsofDas 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 PaketenPaketeverwalten&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.SymbolBedeutung=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 Paketspkg_deletePaketeentfernenUm ein zuvor installiertes Paket zu entfernen, benutzen Sie das
Werkzeug &man.pkg.delete.1;.&prompt.root; pkg_delete xchat-1.7.1Beachten 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.VerschiedenesInformationen ü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-SammlungDie 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-SammlungBevor 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 CVSupDies 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-supfileErsetzen 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-supfileMit &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 PortsnapBei 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 fetchWenn Sie Portsnap das erste
Mal verwenden, müssen Sie den Snapshot nach
- /usr/ports
+ /usr/ports
extrahieren:&prompt.root; portsnap extractIst die Ports-Sammlung bereits installiert, und Sie
wollen diese nur aktualisieren, führen Sie
stattdessen folgenden Befehl aus:&prompt.root; portsnap updateInstallieren mit sysinstallNicht 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; sysinstallWä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 installierenPortsinstallierenWas 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/lsofIm 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/ fetchIm 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 ändernManchmal 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 installDieses 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 installIn 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 installDie Kommandozeile ist zu lang, um sie hier komplett
wiederzugeben, aber Sie sollten die zugrunde liegende
Idee erkennen.Probleme mit imakeimakeEinige 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 rekonfigurierenBeim 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
makeconfig
eingeben, wodurch das Menü mit den ursprünglichen
gewählten Optionen erneut aufgerufen wird. Eine andere
- Möglichkeit bietet der Befehl
- makeshowconfig,
- mit dem Sie eine Liste aller Konfigurationsoptionen dieses
- Ports aufrufen. Eine weitere Alternative bietet der Befehl
- makermconfig,
- 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 PortsPortsentfernenDa 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.57Ports aktualisierenPortsaktualisierenAls 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/usr/ports/UPDATINGNachdem 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 aktualisierenportupgradeportupgrade 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 cleanDurchsuchen 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 -aiWenn 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 gnome2Wenn 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 aktualisierenportmanagerPortmanager 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 cleanAlle installierten Ports können danach durch folgende
Eingabe aktualisiert werden:&prompt.root; portmanager -uWenn 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/gnome2Treten 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 -fWeitere Informationen finden Sie in der Manualpage
&man.portmanager.1;.Ports mit Portmaster aktualisierenportmasterBei 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 cleanPortmaster 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 -aIn 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 -afPortmaster ist auch in der Lage,
neue Ports zu installieren, wobei zuvor alle abhängigen Ports
aktualisiert werden:&prompt.root; portmaster shells/bashWeiterführende Informationen finden Sie in der Manualpage
&man.portmaster.8;.Platzbedarf von PortsPortsPlattenplatzDie 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 -CIm 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 -DFalls Sie nur alle Distfiles löschen wollen, die von
keinem derzeit installierten Port referenziert werden:&prompt.root; portsclean -DDDas 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 InstallationNach 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 | lessAchten 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 foopackageDas 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.0Die 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 PortsStolpern 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 @@
KenTomErweitert um X.Orgs X11-Server von MarcFonvieilleMartinHeinenÜbersetzt von Das X-Window-SystemÜbersichtMit 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 Siedie 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 Siewissen, wie Sie Software Dritter installieren
().X-GrundlagenAnwendern 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 XX 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-ManagerDie 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.
AltTab 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.FokusDer 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-mouseDen 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-focusDiese 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-focusDas 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.WidgetsDie 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 cleanDer 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 xorgDie 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.ChristopherShumwayBeigetragen von X11 konfigurieren&xorg;X11VorarbeitenBevor Sie X11 konfigurieren, benötigen
Sie folgende Informationen:die Spezifikationen des Monitorsden Chipset des Grafikadaptersdie Speichergröße des
GrafikadaptersSynchronisationsfrequenzhorizontaleSynchronisationsfrequenzvertikaleAus 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 -configureDie 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
CtrlAlt
- 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 anpassenAls 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
EndSectionUnter 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.confDie 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
EndSectionMit 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.confDamit 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 KonfigurationenKonfiguration des &intel; i810 Graphics ChipsetsIntel i810 ChipsetDer &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 einsetzenWidescreen-Monitor, KonfigurationDieser 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:2560x16001920x12001680x10501440x9001280x800Diese 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 MHzDiese 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"
EndSectionNachdem diese Äderungen durchgeführt sind, sollte
X auch auf Ihrem neuen Widescreen-Monitor starten.MurrayStokelyBeigetragen von Schriftarten in X11 benutzenType 1 SchriftartenDie 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 cleanAnalog 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 rehashDann 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;-SchriftartenTrueType-SchriftartenSchriftartenTrueType&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.dirGeben 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 rehashOder 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 MarcusClarkeAktualisiert von Anti-aliasingAnti-aliasingSchriftartenAnti-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;.XMLDie 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 -fDas 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>SchriftartenAbständeDas 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.LCDSchriftartenauf einem LCDMit 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.
+ SethKingsleyBeigetragen von Der X-Display-ManagerEinführungX-Display-ManagerDer 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 secureIn 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 konfigurierenDas 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:DateiBeschreibungXaccessRegelsatz, der zur Autorisierung von Clients benutzt
wird.XresourcesVorgabewerte für X-Ressourcen.XserversListe mit lokalen und entfernten Bildschirmen, die
verwaltet werden.XsessionVorgabe für das Startskript der
Sitzung.Xsetup_*Skript, das dazu dient, Anwendungen vor der Anmeldung
zu starten.xdm-configKonfiguration für alle auf der Maschine
verwalteten Bildschirme.xdm-errorsFehlermeldungen des Servers.xdm-pidDie 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.XaccessVerbindungen 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).XresourcesIn 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.XserversDiese Datei enthält eine Liste entfernter Maschinen, die
in der Bildschirmauswahl angeboten werden.XsessionDieses 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-configDiese Datei enthält Einstellungen, die für jeden
verwalteten Bildschirm zutreffen. Das Format entspricht dem der
Dateien aus app-defaults.xdm-errorsDie 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 NetzwerkDamit 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: 0Starten 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 ersetzenEs 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.ValentinoVaschettoBeigetragen von Grafische OberflächenDieser 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 GNOMEGNOMEGNOME 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 installierenAm 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 gnome2Wenn Sie den Quellcode von GNOME
übersetzen wollen, benutzen Sie die Ports-Sammlung:&prompt.root; cd /usr/ports/x11/gnome2
&prompt.root; make install cleanNachdem 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" > ~/.xinitrcRufen 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 ~/.xsessionSie 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 KDEKDEKDE 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 installierenAm 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" > ~/.xinitrcWenn 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 KDEWenn 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-ManagerKDEDisplay-ManagerDer 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 xfce4Mit der Ports-Sammlung können Sie auch den Quellcode
übersetzen:&prompt.root; cd /usr/ports/x11-wm/xfce4
&prompt.root; make install cleanDamit 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" > ~/.xinitrcWenn 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.