svn commit: r50357 - head/de_DE.ISO8859-1/books/handbook/cutting-edge
Bjoern Heidotting
bhd at FreeBSD.org
Sat Jun 10 21:42:21 UTC 2017
Author: bhd
Date: Sat Jun 10 21:42:20 2017
New Revision: 50357
URL: https://svnweb.freebsd.org/changeset/doc/50357
Log:
Update to r50251:
Rewrite the Build from Source section, simplifying and clarifying.
Approved by: bcr
Differential Revision: https://reviews.freebsd.org/D11134
Modified:
head/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.xml
Modified: head/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.xml
==============================================================================
--- head/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.xml Sat Jun 10 15:20:12 2017 (r50356)
+++ head/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.xml Sat Jun 10 21:42:20 2017 (r50357)
@@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde$
- basiert auf: r50201
+ basiert auf: r50251
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
@@ -283,8 +283,8 @@ MergeChanges /etc/ /var/named/etc/ /boot/device.hints<
Änderungen werden entweder akzeptiert, oder öffnen einen
Editor, oder <command>freebsd-update</command> bricht ab. Im
Zweifelsfall sichern Sie <filename>/etc</filename> und
- akzeptieren einfach die Änderungen. Lesen Sie <xref
- linkend="mergemaster"/>, um Informationen über
+ akzeptieren einfach die Änderungen. Lesen Sie
+ &man.mergemaster.8;, um Informationen über
<command>mergemaster</command> zu erhalten.</para>
<programlisting># Directory in which to store downloaded updates and temporary
@@ -1186,1183 +1186,471 @@ before running "/usr/sbin/freebsd-update install"</scr
</listitem>
</orderedlist>
</sect2>
-
- <sect2 xml:id="stable">
- <title>&os.stable;</title>
-
- <para>&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
- <emphasis>immer noch</emphasis> 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.
- Benutzer, die nicht über die notwendigen Ressourcen zum
- Testen verfügen, sollten stattdessen eine aktuelle Version
- von &os; benutzen.</para>
-
- <para>Wer daran interessiert ist den &os;-Entwicklungsprozess
- zu verfolgen oder dazu beizutragen, insbesondere im Hinblick
- auf das nächste Hauptversion, der sollte es in Erwägung
- ziehen, &os.stable; zu benutzen.</para>
-
- <para>Obwohl wir versuchen sicherzustellen, dass der
- &os.stable; Zweig sich jederzeit übersetzen lässt und
- lauffähig ist, können wir dafür keine Garantie übernehmen.
- Auch wenn Neuentwicklungen in &os.current; stattfinden, ist
- es jedoch so, dass mehr Leute &os.stable; anstelle von
- &os.current; benutzen und es daher unvermeidlich ist, dass
- Fehler und Grenzfälle erst in &os.stable; auffallen. Aus
- diesen Gründen empfehlen wir Ihnen
- <emphasis>nicht</emphasis> blindlings &os.stable; zu
- benutzen. Es ist besonders wichtig, dass &os.stable; zuerst
- sorgfältig in einer Testumgebung getestet wird, bevor die
- Produktion auf &os.stable; migriert.</para>
-
- <para>Um &os.stable; zu folgen:</para>
-
- <indexterm>
- <primary>-STABLE</primary>
- <secondary>benutzen</secondary>
- </indexterm>
-
- <orderedlist>
- <listitem>
- <para>Lesen Sie Mailingliste &a.stable.name;, damit Sie über
- Abhängigkeiten beim Bau von &os.stable; und Sachen, die
- besondere Aufmerksamkeit erfordern, informiert sind.
- Umstrittene Fehlerbehebungen oder Änderungen werden von
- den Entwicklern auf dieser Liste bekannt gegeben. Dies
- erlaubt es den Benutzern, Einwände gegen die
- vorgeschlagenen Änderungen vorzubringen.</para>
-
- <para>Abonnieren Sie die passende
- <application>svn</application>-Liste für den jeweiligen
- Branch, den Sie verfolgen. Wenn Sie beispielsweise den
- Zweig 9-STABLE verfolgen, lesen Sie die
- &a.svn-src-stable-9.name;. Diese Liste enthält zu jeder
- Änderung das Commit-Log, das Informationen zu möglichen
- Seiteneffekten enthält.</para>
-
- <para>Um diese Listen zu abonnieren, besuchen Sie die
- Seite &a.mailman.lists.link;. Klicken Sie auf die
- gewünschte Liste und folgenden Sie den Anweisungen.
- Wenn Sie daran interessiert sind, Änderungen am gesamten
- Quellbaum zu verfolgen, abonnieren Sie
- &a.svn-src-all.name;.</para>
- </listitem>
-
- <listitem>
- <para>Wenn Sie ein neues System installieren und dazu
- einen der monatlich aus &os.stable; erzeugten Snapshots
- verwenden wollen, sollten Sie zuerst <link
- xlink:href="&url.base;/snapshots">
- www.freebsd.org/snapshots</link> auf aktuelle
- Informationen überprüfen. Alternativ können Sie auch
- das neueste &os.stable;-Release von den <link
- linkend="mirrors">&os; Spiegeln</link> beziehen.</para>
-
- <para>Um ein bestehendes &os;-System auf &os.stable; zu
- aktualisieren, benutzen Sie <link
- linkend="svn">svn</link>, um den gewünschten
- Entwicklungs- oder Release-Zweig auszuchecken. Die
- Zweige, wie beispielsweise <literal>stable/9</literal>,
- sind unter <link xlink:href="&url.base;/releng/">
- www.freebsd.org/releng</link> aufgeführt.</para>
- </listitem>
-
- <listitem>
- <para>Lesen Sie <filename>/usr/src/Makefile</filename>
- sehr aufmerksam bevor Sie &os.stable; aktualisieren und
- folgen Sie den Anweisungen in <xref
- linkend="makeworld"/>. Lesen Sie die
- Mailingliste &a.stable; und
- <filename>/usr/src/UPDATING</filename>, um über
- Änderungen im Installationsverfahren, die manchmal vor
- der Einführung eines neuen Releases notwendig sind,
- informiert zu sein.</para>
- </listitem>
- </orderedlist>
- </sect2>
</sect1>
- <sect1 xml:id="synching">
- <title>Synchronisation der Quellen</title>
+ <sect1 xml:id="updating-src">
+ <title>&os; aus den Quellen aktualisieren</title>
- <para>Es gibt verschiedene Methoden um die Quellen von &os;
- aktuell zu halten. Dieser Abschnitt beschreibt
- <application>Subversion</application>, den primären Dienst für
- diese Aufgabe.</para>
+ <para>Das Aktualisieren von &os; aus den Quellen bietet im
+ Vergleich zu binären Updates mehrere Vorteile. Der Quellcode
+ kann mit Optionen gebaut werden, um die Vorteile von
+ spezifischer Hardware zu nutzen. Teile des Basissystems können
+ mit veränderten Einstellungen gebaut, oder falls nicht
+ gewünscht, auch ganz ausgelassen werden.
+ Dieser Prozess dauert zwar länger als die Aktualisierung mit
+ binären Updates, ermöglicht aber eine vollständige Anpassung, um
+ eine individuelle Version von &os; zu erstellen.</para>
- <warning>
- <para>Obwohl es möglich ist, nur Teile des Quellbaums zu
- aktualisieren, ist die einzige unterstütze Prozedur,
- den kompletten Quellbaum zu aktualisieren und alles neu zu
- übersetzen. Dazu zählen alle Userland-Programme in
- <filename>/bin</filename> und <filename>/sbin</filename>,
- sowie die Kernelquellen. Wird hingegen nur ein Teil der
- Quellen, zum Beispiel nur der Kernel oder nur die Programme
- aus dem Userland aktualisiert, treten Probleme auf, die von
- Übersetzungsfehlern über Kernel-Panics bis hin zu
- Beschädigung von Daten reichen können.</para>
- </warning>
+ <sect2 xml:id="updating-src-quick-start">
+ <title>Schnellstartanleitung</title>
- <indexterm>
- <primary>Subversion</primary>
- </indexterm>
+ <para>Diese kurze Referenz zeigt die typischen Schritte um &os;
+ aus den Quellen zu aktualisieren. Spätere Abschnitte
+ beschreiben die Prozedur im Detail.</para>
- <para><application>Subversion</application> benutzt die
- <foreignphrase>Pull</foreignphrase>-Methode, um die Quellen zu
- aktualisieren. Der Benutzer, oder ein
- <command>cron</command>-Skript, ruft das Programm
- <command>svn</command> auf, das die Quellen aktualisiert.
- <application>Subversion</application> ist die empfohlene
- Methode, um die lokalen Quellen zu aktualisieren, da
- aktuelle Updates zu einem vom Benutzer bestimmten Zeitpunkt
- herunterlädt. Zudem ist es einfach, die Prozedur auf bestimmte
- Dateien oder Verzeichnisse zu beschränken. Die angeforderten
- Updates werden zur Laufzeit auf dem Server generiert. Die
- Aktualisierung der Quellen wird in <xref linkend="svn"/>
- beschrieben.</para>
-
- <para>Wenn ein Benutzer unabsichtlich Teile des Archivs löscht,
- wird das von <application>Subversion</application> erkannt und
- bei der nächsten Aktualisierung repariert.</para>
- </sect1>
-
- <sect1 xml:id="makeworld">
- <title>Das Basissystem neu bauen</title>
-
- <indexterm>
- <primary>Bau des Basissystems</primary>
- </indexterm>
-
- <para>Sobald der lokalen Quellbaum mit einer bestimmten &os;
- Version, z.B. &os.stable; oder &os.current; synchronisiert
- wurde, kann dieser dazu benutzt werden das System neu zu
- bauen. Dieser Prozess wird auch als
- <quote>die Welt neu bauen</quote> bezeichnet.</para>
-
- <para><emphasis>Bevor</emphasis> das System neu gebaut wird,
- müssen die folgende Aufgaben erledigt werden:</para>
-
- <procedure>
- <title>Führen Sie diese Aufgaben aus, <emphasis>bevor</emphasis>
- das System neu gebaut wird</title>
-
- <step>
- <para>Sichern Sie alle wichtigen Daten auf ein anderes System
- oder auf Wechselmedien und überprüfen Sie die Integrität der
- Sicherungskopie. Zudem sollten Sie bootfähige
- Installationsmedien zur Hand haben. Es kann nicht oft genug
- betont werden, wie wichtig es ist, vor dem Neubau des
- Systems eine Sicherung zu machen. Während der Neubau des
- Systems eine einfache Aufgabe ist, wird es zwangsläufig
- einmal vorkommen, dass Fehler im Quellcode dazu führen, dass
- das System nicht mehr bootet. Wahrscheinlich wird die
- Sicherungskopie nicht benötigt, aber gehen Sie auf Nummer
- sicher!</para>
- </step>
-
- <step>
- <indexterm><primary>Mailingliste</primary></indexterm>
- <para>Lesen Sie die neuesten Einträge in &a.stable; oder
- &a.current;, je nachdem welchen Zweig Sie folgen.
- Informieren Sie sich über bekannte Probleme und welche
- Systeme davon betroffen sind. Wenn ein Problem für den
- von Ihnen synchronisierten Code besteht, warten Sie auf
- eine <quote>all clear</quote>-Nachricht, die besagt, dass
- das Problem behoben wurde. Synchronisieren Sie dann die
- Quellen neu um sicherzustellen, dass die lokale Version
- die benötigten Korrekturen hat.</para>
- </step>
-
- <step>
- <para>Lesen Sie <filename>/usr/src/UPDATING</filename> für
- zusätzliche Aufgaben, die für diese Version des Quellcodes
- notwendig sind. Diese Datei enthält wichtige Informationen
- über potentielle Probleme. Gegebenenfalls müssen einige
- Kommandos in einer bestimmten Reihenfolge ausgeführt werden.
- Manche Aktualisierungen erfordern bestimmte zusätzliche
- Schritte, die ausgeführt werden müssen, bevor das System neu
- gebaut wird, wie beispielsweise das umbenennen oder löschen
- von bestimmten Dateien. Diese Aufgaben sind am Ende der
- Datei aufgeführt. Die Anweisungen in
- <filename>UPDATING</filename> sind aktueller als die in
- diesem Handbuch. Im Zweifelsfall folgen Sie bitte den
- Anweisungen aus <filename>UPDATING</filename>.</para>
- </step>
- </procedure>
-
- <warning>
- <title>Verwenden Sie nicht <command>make world</command></title>
-
- <para>Einige ältere Dokumentationen empfehlen
- <command>make world</command> für den Neubau.
- Das Kommando überspringt jedoch wichtige Schritte und sollte
- nur von Experten verwendet werden. In fast allen Fällen ist
- <command>make world</command> falsch. Benutzen Sie
- stattdessen die nachstehende Anleitung.</para>
- </warning>
-
- <sect2 xml:id="canonical-build">
- <title>Übersicht</title>
-
- <para>Dieser Prozess geht davon aus, dass ein System von einer
- älteren Version von &os; auf eine neuere Version aktualisiert
- wird. Der Quellcode für die neue Version wurde nach den
- Anweisungen in <xref linkend="synching"/>
- synchronisiert.</para>
-
- <para>Das Basissystem enthält den &os;-Kernel, die
- zentralen Binärdateien, Bibliotheken und Entwicklerdateien
- sowie einen integrierten Compiler. Die Reihenfolge, in der
- diese Komponenten gebaut werden, ist wichtig.</para>
-
- <para>Beispielsweise könnte der alte Compiler aufgrund von
- Fehlern nicht in der Lage sein, den neuen Kernel zu
- übersetzen. Da der neue Kernel mit dem neuen Compiler
- übersetzt wird, muss der neue Compiler gebaut, aber nicht
- notwendigerweise <emphasis>installiert</emphasis> werden,
- bevor der neue Kernel gebaut wird.</para>
-
- <para>Das neue Basissystem ist eventuell auf neue Funktionen des
- Kernels angewiesen. Aus diesem Grund muss der neue Kernel
- installiert sein, bevor das neue Basissystem installiert
- wird.</para>
-
- <para>Das alte Basissystem wird möglicherweise nicht korrekt mit
- dem neuen Kernel funktionieren, weshalb das neue Basissystem
- sofort nach der Installation des neuen Kernels installiert
- werden muss.</para>
-
- <para>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
- Großteil Dateien oder fügt neue hinzu, bestehende Dateien
- werden nicht gelöscht. Da dieser Prozess Probleme verursachen
- kann, werden in <filename>/usr/src/UPDATING</filename>
- gegebenenfalls Dateien aufgelistet, die manuell entfernt
- werden müssen.</para>
-
- <para>Diese Bedenken haben zu einer empfohlenen
- Reihenfolge bei der Aktualisierung geführt, die im folgenden
- Prozess beschrieben wird.</para>
-
- <note>
- <para>Es ist ratsam, die Ausgaben von <command>make</command>
- in einer Datei zu sichern. Wenn etwas schief geht, kann
- eine Kopie der Fehlermeldung zu einer der &os;-Mailinglisten
- gesendet werden.</para>
-
- <para>Dazu können Sie einfach <command>script</command>
- benutzen, dem Sie beim Aufruf als Parameter den Dateinamen
- für die Ausgaben mitgeben. Sichern Sie die Ausgaben nicht
- nach <filename>/tmp</filename>, da dessen Inhalt beim
- nächsten Neustart vielleicht verloren geht. Ein besserer
- Platz ist <filename>/var/tmp</filename>. Setzen Sie dieses
- Kommando unmittelbar vor dem Neubau ab und geben Sie
- <userinput>exit</userinput> ein, wenn der Bau abgeschlossen
- ist:</para>
-
- <screen>&prompt.root; <userinput>script <replaceable>/var/tmp/mw.out</replaceable></userinput>
-Script started, output file is /var/tmp/mw.out</screen>
- </note>
-
<procedure>
- <title>Zusammenfassung des Aktualisierungsprozesses</title>
+ <step xml:id="updating-src-quick-start-preparing">
+ <title>Vorbereitungen</title>
- <para>Die verwendeten Kommandos sollten in der hier
- angegebenen Reihenfolge ausgeführt werden. Die Funktionen
- der einzelnen Kommandos werden in diesem Abschnitt
- beschrieben.</para>
+ <para>Wenn der Rechner zum ersten mal aktualisiert wird,
+ geben Sie folgendes Kommando ein:</para>
- <step>
- <para>Wenn der Bauprozess bereits einmal auf diesem
- System durchgeführt wurde, existiert vielleicht noch eine
- Kopie davon in <filename>/usr/obj</filename>. Um den
- neuen Bauprozess zu beschleunigen und Ärger aufgrund von
- Abhängigkeiten zu vermeiden, kann dieses Verzeichnis
- entfernt werden:</para>
+ <screen>&prompt.root; <userinput>etcupdate extract</userinput></screen>
- <screen>&prompt.root; <userinput>chflags -R noschg /usr/obj/*</userinput>
-&prompt.root; <userinput>rm -rf /usr/obj</userinput></screen>
- </step>
+ <para>Dies erstellt einen Kontrollpunkt zum späteren
+ Vergleich und Zusammenführen von
+ Systemeinstellungen.</para>
- <step>
- <para>Übersetzen Sie zuerst den neuen Compiler und
- ein paar damit zusammenhängende Werkzeuge. Verwenden Sie
- dann den neuen Compiler, um den Rest des Basissystems zu
- erstellen. Das Ergebnis wird in
- <filename>/usr/obj</filename> abgelegt.</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src</userinput>
-&prompt.root; <userinput>make buildworld</userinput></screen>
+ <para><emphasis>Dieses Kommando muss auf dem Rechner nur
+ einmalig ausgeführt werden.</emphasis>
+ &man.etcupdate.8; benötigt nach dem ersten
+ <emphasis>extract</emphasis> keine weiteren
+ Aktualisierungen.</para>
</step>
<step>
- <para>Benutzen Sie den neuen Compiler aus
- <filename>/usr/obj</filename>, um sich vor falschen
- Compiler-Kernel-Kombinationen abzusichern. Dies ist
- notwendig, da sich einige Datenstrukturen geändert haben
- könnten und Programme wie &man.ps.1; und &man.top.1; nur
- mit einem Kernel zusammen arbeiten, der auch zu dem
- entsprechenden Quellcode passt.</para>
+ <title>Aktualisierung und Bauprozess</title>
- <screen>&prompt.root; <userinput>make buildkernel</userinput></screen>
- </step>
+ <screen>&prompt.root; <userinput>svn update /usr/src</userinput> <co xml:id="updating-src-qs-svnup"/>
+<emphasis>check <filename>/usr/src/UPDATING</filename></emphasis> <co xml:id="updating-src-qs-review-updating"/>
+&prompt.root; <userinput>cd /usr/src</userinput> <co xml:id="updating-src-qs-cd"/>
+&prompt.root; <userinput>make -j<replaceable>4</replaceable> buildworld</userinput> <co xml:id="updating-src-qs-buildworld"/>
+&prompt.root; <userinput>make -j<replaceable>4</replaceable> kernel</userinput> <co xml:id="updating-src-qs-kernel"/>
+&prompt.root; <userinput>shutdown -r now</userinput> <co xml:id="updating-src-qs-reboot"/>
+&prompt.root; <userinput>cd /usr/src</userinput> <co xml:id="updating-src-qs-cd2"/>
+&prompt.root; <userinput>make installworld</userinput> <co xml:id="updating-src-qs-installworld"/>
+&prompt.root; <userinput>etcupdate</userinput> <co xml:id="updating-src-qs-etcupdate"/>
+&prompt.root; <userinput>shutdown -r now</userinput> <co xml:id="updating-src-qs-shutdown"/></screen>
- <step>
- <para>Installieren Sie den neuen Kernel und die
- Kernelmodule, damit Sie den frisch aktualisierten Kernel
- starten können. Wenn <varname>kern.securelevel</varname>
- einen Wert größer als <literal>1</literal> besitzt
- <emphasis>und</emphasis> der Kernel mit
- <literal>noschg</literal> oder ähnlichen Optionen
- geschützt ist, müssen Sie zuerst in den Single-User-Modus
- wechseln. Andernfalls läuft dieses Kommando problemlos im
- Mehrbenutzermodus. Weitere Informationen über
- <varname>kern.securelevel</varname> finden Sie in
- &man.init.8;. Optionen, die auf Dateien gesetzt werden
- können, werden in &man.chflags.1; detailliert
- erläutert.</para>
+ <calloutlist>
+ <callout arearefs="updating-src-qs-svnup">
+ <para>Holt die neueste Version der Quellen.
+ <xref linkend="updating-src-obtaining-src"/> enthält
+ weitere Informationen zum Aktualisieren und Bauen der
+ Quellen.</para>
+ </callout>
- <screen>&prompt.root; <userinput>make installkernel</userinput></screen>
- </step>
+ <callout arearefs="updating-src-qs-review-updating">
+ <para><filename>/usr/src/UPDATING</filename> enthält
+ Anweisungen für alle manuellen Schritte, die vor oder
+ nach dem Bau der Quellen erforderlich sind.</para>
+ </callout>
- <step>
- <para>Starten Sie das System in den Single-User-Modus, damit
- Probleme mit der Aktualisierung von Programmen, die
- bereits gestartet sind, minimiert werden. Ebenso
- minimiert dieser Modus Probleme, die mit der Verwendung
- des alten Basissystems und des neuen Kernels zu tun
- haben.</para>
+ <callout arearefs="updating-src-qs-cd">
+ <para>Wechsel in das Bauverzeichnis.</para>
+ </callout>
- <screen>&prompt.root; <userinput>shutdown now</userinput></screen>
+ <callout arearefs="updating-src-qs-buildworld">
+ <para>Bau des Basissystems, mit Ausnahme des
+ Kernels.</para>
+ </callout>
- <para>Führen Sie folgende Befehle im Single-User-Modus aus,
- wenn das System mit einem
- <acronym>UFS</acronym>-Dateisystem formatiert ist:</para>
+ <callout arearefs="updating-src-qs-kernel">
+ <para>Bau und Installation des Kernels. Dieser Schritt
+ ist gleichbedeutend mit
+ <buildtarget>buildkernel</buildtarget> und
+ <buildtarget>installkernel</buildtarget>.</para>
+ </callout>
- <screen>&prompt.root; <userinput>mount -u /</userinput>
-&prompt.root; <userinput>mount -a -t ufs</userinput>
-&prompt.root; <userinput>swapon -a</userinput></screen>
+ <callout arearefs="updating-src-qs-installworld">
+ <para>Installation des Basissystems.</para>
+ </callout>
- <para>Wenn das System mit <acronym>ZFS</acronym> formatiert
- ist, führen Sie stattdessen folgende Befehle aus. In
- diesem Beispiel ist der Name des Pools
- <literal>zroot</literal>:</para>
+ <callout arearefs="updating-src-qs-etcupdate">
+ <para>Aktualisierung und Zusammenführung der
+ Konfigurationsdateien in
+ <filename>/etc</filename>.</para>
+ </callout>
- <screen>&prompt.root; <userinput>zfs set readonly=off zroot</userinput>
-&prompt.root; <userinput>zfs mount -a</userinput></screen>
+ <callout arearefs="updating-src-qs-shutdown">
+ <para>Neustart des Systems mit dem neu erstellten
+ Basissystem und Kernel.</para>
+ </callout>
+ </calloutlist>
</step>
-
- <step>
- <para>Optional: Wenn eine andere Tastaturbelegung als
- US-Englisch gewünscht wird, kann diese mit &man.kbdmap.1;
- angepasst werden:</para>
-
- <screen>&prompt.root; <userinput>kbdmap</userinput></screen>
- </step>
-
- <step>
- <para>Führen Sie folgenden Befehl aus, wenn die
- <acronym>CMOS</acronym>-Uhr auf die lokale Zeit
- eingestellt ist (dies ist der Fall, wenn die Ausgabe von
- &man.date.1; nicht die richtige Zeit anzeigt):</para>
-
- <screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen>
- </step>
-
- <step>
- <para>Bei der Aktualisierung des Basissystems werden
- bestimmte Verzeichnisse, wie <filename>/etc</filename>,
- <filename>/var</filename> und <filename>/usr</filename>
- ausgelassen. Im nächsten Schritt werden ein paar
- Konfigurationsdateien zur Vorbereitung für das neue
- Basissystem aktualisiert. Der folgende Befehl
- aktualisiert lediglich Dateien, die für das Gelingen von
- <buildtarget>installworld</buildtarget> unerlässlich sind.
- Beispielsweise können neue Gruppen, Systembenutzerkonten,
- oder neue Startskripten erstellt werden, die seit der
- letzten Aktualisierung hinzugefügt wurden. Dieser Schritt
- ist notwendig, damit
- <buildtarget>installworld</buildtarget> in der Lage ist,
- die neuen Konten, Gruppen und Skripten zu verwenden.
- Weitere Informationen zu diesem Befehl finden Sie in
- <xref linkend="mergemaster"/>:</para>
-
- <screen>&prompt.root; <userinput>mergemaster -p</userinput></screen>
- </step>
-
- <step>
- <para>Installieren Sie das neue Basissystem und die
- Systemdateien aus <filename>/usr/obj</filename>:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src</userinput>
-&prompt.root; <userinput>make installworld</userinput></screen>
- </step>
-
- <step>
- <para>Aktualisieren Sie die verbleibenden
- Konfigurationsdateien:</para>
-
- <screen>&prompt.root; <userinput>mergemaster -iF</userinput></screen>
- </step>
-
- <step>
- <para>Löschen Sie veraltete Dateien. Dieser Schritt
- ist wichtig, da alte Dateien manchmal Probleme bereiten,
- falls sie nicht entfernt werden:</para>
-
- <screen>&prompt.root; <userinput>make delete-old</userinput></screen>
- </step>
-
- <step>
- <para>Nun wird ein Neustart benötigt, um den neuen Kernel
- und das neue Basissystem zu laden:</para>
-
- <screen>&prompt.root; <userinput>reboot</userinput></screen>
- </step>
-
- <step>
- <para>Stellen Sie sicher, dass alle Ports neu gebaut wurden,
- bevor die alten Bibliotheken entfernt werden. Folgen
- Sie dazu den Anweisungen aus <xref
- linkend="ports-upgrading"/>. Entfernen Sie anschließend
- alle veralteten Bibliotheken um Konflikte mit den neuen
- Bibliotheken zu vermeiden. Weitere Informationen zu
- diesem Schritt finden Sie
- in <xref linkend="make-delete-old"/>.</para>
-
- <screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>
- </step>
</procedure>
-
- <indexterm><primary>Single-User Modus</primary></indexterm>
-
- <para>Wenn Sie eine Ausfallzeit des Systems in Kauf nehmen
- können, sollten sie das System im Single-User Modus
- bauen. Die Neuinstallation des Systems verändert viele
- wichtige Systemdateien, Systemwerkzeuge, Bibliotheken und
- Include-Dateien. Ändern Sie diese Dateien auf einem laufenden
- System, insbesondere mit aktiven Nutzern, kann dies große
- Probleme verursachen.</para>
</sect2>
- <sect2 xml:id="src-updating">
- <title>Konfigurationsdateien</title>
+ <sect2 xml:id="updating-src-preparing">
+ <title>Vorbereitungen zum Aktualisieren aus den Quellen</title>
- <indexterm>
- <primary><filename>make.conf</filename></primary>
- </indexterm>
+ <para>Wenn der Rechner zum ersten Mal aus den Quellen
+ aktualisiert wird, lassen Sie
+ <command>etcupdate extract</command> laufen, um einen
+ Kontrollpunkt zum späteren Vergleich zu erstellen. Dieser
+ Schritt wird einmalig auf dem Rechner ausgeführt.</para>
- <para>Der Bauprozess verwendet verschiedene
- Konfigurationsdateien.</para>
-
- <para>Das <filename>Makefile</filename> in
- <filename>/usr/src</filename> legt fest, wie die Programme,
- aus denen &os; besteht, zu bauen sind und in welcher
- Reihenfolge diese zu bauen sind.</para>
-
- <para>Die verfügbaren Optionen für <command>make</command>
- werden in &man.make.conf.5; und
- <filename>/usr/share/examples/etc/make.conf</filename>
- beschrieben. Jede Option in
- <filename>/etc/make.conf</filename> beeinflusst das Verhalten
- von <command>make</command> beim Bau von Programmen. Die in
- <filename>/etc/make.conf</filename> gesetzten Optionen wirken
- sich bei jedem Aufruf von <command>make</command> aus,
- einschließlich beim Bau von Programmen aus der Ports-Sammlung,
- vom Benutzer geschriebene C-Programme oder beim Bau des
- &os;-Betriebssystems. Änderungen an einigen Einstellungen
- können weitreichende und unerwartete Auswirkungen nach sich
- ziehen. Lesen Sie die Kommentare in diesen beiden Ressourcen
- und beachten Sie, dass die Standardwerte aus einer Kombination
- von Leistung und Sicherheit gewählt wurden.</para>
-
- <indexterm>
- <primary><filename>/etc/src.conf</filename></primary>
- </indexterm>
-
- <para>Der Bau des Betriebssystems aus dem Quellcode wird von
- <filename>/etc/src.conf</filename> kontrolliert. Im Gegensatz
- zu <filename>/etc/make.conf</filename> greifen die Optionen in
- <filename>/etc/src.conf</filename> nur dann, wenn das
- &os; Betriebssystem selbst gebaut wird. Die vielen Optionen
- für diese Datei werden in &man.src.conf.5; beschrieben.
- Seien Sie vorsichtig mit dem Entfernen von scheinbar nicht
- mehr benötigten Kernelmodulen und Optionen. Manchmal gibt es
- unerwartete oder subtile Wechselwirkungen.</para>
+ <para>Lesen Sie <filename>/usr/src/UPDATING</filename>. Jeder
+ manuelle Schritt, welcher vor oder nach der Aktualisierung
+ erforderlich ist, wird in dieser Datei beschrieben.</para>
</sect2>
- <sect2 xml:id="make-buildworld">
- <title>Variablen und Ziele</title>
+ <sect2 xml:id="updating-src-obtaining-src">
+ <title>Den Quellcode aktualisieren</title>
- <para>Ein typischer Aufruf von <command>make</command> sieht
- wie folgt aus:</para>
+ <para>Der Quellcode von &os; befindet sich in
+ <filename>/usr/src/</filename>. Die bevorzugte Methode zur
+ Aktualisierung dieser Quellen ist über das
+ Versionskontrollsystem <application>Subversion</application>.
+ Sie sollten sicherstellen, dass der Quellcode unter
+ Versionskontrolle steht:</para>
- <screen>&prompt.root; <userinput>make -<replaceable>x</replaceable> -D<replaceable>VARIABLE</replaceable> <replaceable>target</replaceable></userinput></screen>
+ <screen>&prompt.root; <userinput>svn info /usr/src</userinput>
+Path: /usr/src
+Working Copy Root Path: /usr/src
+...</screen>
- <para>In diesem Beispiel ist
- <option>-<replaceable>x</replaceable></option> eine Option,
- die an <command>make</command> übergeben wird. Eine Liste
- gültiger Optionen finden Sie in &man.make.1;.</para>
+ <para>Dies ist ein Hinweis darauf, dass
+ <filename>/usr/src/</filename> unter Versionskontrolle steht
+ und mit &man.svn.1; aktualisiert werden kann.</para>
- <para>Mit
- <option>-D<replaceable>VARIABLE</replaceable></option>
- setzen Sie eine Variable. Das Verhalten der
- <filename>Makefile</filename> wird von Variablen bestimmt.
- Diese sind etweder in <filename>/etc/make.conf</filename>
- eingetragen, oder können an <command>make</command> übergeben
- werden. Das folgende Beispiel setzt eine Variable, die
- verhindert, dass die <quote>profiled</quote> Bibliotheken
- gebaut werden:</para>
+ <screen xml:id="synching">&prompt.root; <userinput>svn update /usr/src</userinput></screen>
- <screen>&prompt.root; <userinput>make -DNO_PROFILE <replaceable>target</replaceable></userinput></screen>
+ <para>Dieser Vorgang kann einige Zeit in Anspruch nehmen, falls
+ das Verzeichnis nicht zuletzt aktualisiert wurde. Nach
+ Beendigung ist der Quellcode aktuell und der im nächsten
+ Abschnitt beschriebene Bauprozess kann beginnen.</para>
- <para>Dieser Aufruf entspricht dem folgenden Eintrag in
- <filename>/etc/make.conf</filename>:</para>
+ <note xml:id="updating-src-obtaining-src-checkout">
+ <title>Beschaffung des Quellcodes</title>
- <programlisting>NO_PROFILE= true # Avoid compiling profiled libraries</programlisting>
+ <para>Meldet die Ausgabe
+ <literal>'/usr/src' is not a working copy</literal>, dann
+ fehlen entweder Dateien, oder das Verzeichnis wurde mit
+ einer anderen Methode aktualisiert. Ein erneuter Checkout
+ der Quellen ist jetzt erforderlich.</para>
- <para>Das <quote>Ziel</quote> sagt <command>make</command>
- was zu tun ist und das <filename>Makefile</filename>
- definiert die verfügbaren Ziele. Einige Ziele werden
- verwendet, um den Bauprozess in eine Reihe von
- Einzelschritten zu unterteilen.</para>
+ <table xml:id="updating-src-obtaining-src-repopath">
+ <title>&os; Versionen und Repository-Pfade</title>
- <para>Über separate Optionen zu verfügen, ist aus mehreren
- Gründen nützlich. Erstens erlaubt dies einen Bauprozess,
- der die Komponenten des laufenden Systems nicht
- beeinträchtigt. Deswegen können Sie
- <command>buildworld</command> gefahrlos im Mehrbenutzermodus
- laufen lassen. Die Installation mit
- <buildtarget>installworld</buildtarget> sollte aber immer
- noch im Single-User-Modus erfolgen.</para>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Ausgabe von <command>uname -r</command></entry>
+ <entry>Repository-Pfad</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
- <para>Zweitens kann, wie in <xref linkend="small-lan"/>
- beschrieeben, <acronym>NFS</acronym> benutzt werden, um
- mehrere Maschinen in einem Netzwerk zu aktualisieren.</para>
+ <tbody>
+ <row>
+ <entry><literal><replaceable>X.Y</replaceable>-RELEASE</literal></entry>
+ <entry><literal>base/releng/</literal><replaceable>X</replaceable></entry>
+ <entry>Die Release-Version inklusive kritischer
+ Sicherheits- und Bugfix-Patches. Dieser Zweig wird
+ für die meisten Benutzer empfohlen.</entry>
+ </row>
- <para>Mit <option>-j</option> können Sie
- <command>make</command> anweisen, mehrere Prozesse zu
- starten. Da der Übersetzungsprozess
- hauptsächlich von <acronym>I/O</acronym> statt der
- <acronym>CPU</acronym> bestimmt wird, ist diese Option für
- Einprozessor- und Mehrprozessor-Systeme nützlich.</para>
+ <row>
+ <entry><literal><replaceable>X.Y</replaceable>-STABLE</literal></entry>
+ <entry><literal>base/stable/</literal><replaceable>X</replaceable></entry>
+ <entry>
+ <para>Die Release-Version und alle weitere Versionen
+ auf diesem Zweig.
+ <emphasis>STABLE</emphasis> bezieht sich darauf,
+ dass die Binärschnittstelle
+ (<acronym>ABI</acronym>) sich nicht ändert, sodass
+ Anwendungen welche auf älteren Versionen erstellt
+ wurden weiterhin lauffähig sind. Eine Anwendung,
+ welche für &os; 10.1 übersetzt wurde, läuft
+ auch auf &os; 10-STABLE.</para>
- <para>Auf einem typischen Einprozessor-System können Sie den
- folgenden Befehl eingeben, um bis zu vier Prozesse
- gleichzeitig laufen zu lassen. Erfahrungsberichte aus den
- Mailinglisten zeigen, dass dieser Aufruf typischerweise den
- besten Geschwindigkeitsgewinn bringt:</para>
+ <para>STABLE-Zweige haben gelegentlich Fehler und
+ Inkompatibilitäten, welche den Benutzer
+ beeinträchtigen könnten. In der Regel werden
+ diese Fehler aber zügig behoben.</para>
+ </entry>
+ </row>
- <screen>&prompt.root; <userinput>make -j4 buildworld</userinput></screen>
+ <row>
+ <entry><literal><replaceable>X</replaceable>-CURRENT</literal></entry>
+ <entry><literal>base/head/</literal></entry>
+ <entry>Die neueste unveröffentlichte Version von
+ &os;. Der CURRENT-Zweig kann viele Fehler und
+ Inkompatibilitäten enthalten und wird daher nur für
+ fortgeschrittene Benutzer empfohlen.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
- <para>Wenn Sie ein Mehrprozessor-System besitzen, probieren
- Sie Werte zwischen <literal>6</literal> und
- <literal>10</literal> aus.</para>
+ <para>Ermitteln Sie mit &man.uname.1; die verwendete
+ &os;-Version:</para>
- <indexterm>
- <primary>Bau des Basissystems</primary>
- <secondary>Laufzeiten</secondary>
- </indexterm>
+ <screen>&prompt.root; <userinput>uname -r</userinput>
+10.3-RELEASE</screen>
- <note>
- <para>Wenn mit <command>make buildworld</command> Variablen
- verwendet werden, müssen dieselben Variablen auch bei
- <command>make installworld</command> angegeben werden.
- Allerdings darf <option>-j</option> zusammen mit
- <buildtarget>installworld</buildtarget>
- <emphasis>nicht</emphasis> benutzt werden.</para>
+ <para>Basierend auf <xref
+ linkend="updating-src-obtaining-src-repopath"/> ist
+ <literal>base/releng/10</literal> der Repository-Pfad zur
+ Aktualisierung von <literal>10.3-RELEASE</literal>. Dieser
+ Pfad wird beim Auschecken der Quellen benutzt:</para>
- <para>Haben Sie zum Bauen die folgende Kommandozeile
- verwendet:</para>
+ <screen>&prompt.root; <userinput>mv /usr/src /usr/src.bak</userinput> <co xml:id="updating-src-obtaining-src-mv"/>
+&prompt.root; <userinput>svn checkout https://svn.freebsd.org/base/<replaceable>releng/10.3</replaceable> /usr/src</userinput> <co xml:id="updating-src-obtaining-src-checkout-cmd"/></screen>
- <screen>&prompt.root; <userinput>make -DNO_PROFILE buildworld</userinput></screen>
+ <calloutlist>
+ <callout arearefs="updating-src-obtaining-src-mv">
+ <para>Verschiebt das alte Verzeichnis. Wenn es keine
+ lokalen Änderungen in diesem Verzeichnis gibt, kann es
+ gelöscht werden.</para>
+ </callout>
- <para>dann installieren Sie das Ergebnis mit:</para>
-
- <screen>&prompt.root; <userinput>make -DNO_PROFILE installworld</userinput></screen>
-
- <para>Andernfalls würde das System bei der Installation
- versuchen, die <quote>profiled</quote> Bibliotheken, die
- aber gar nicht gebaut wurden, zu installieren.</para>
+ <callout arearefs="updating-src-obtaining-src-checkout-cmd">
+ <para>Der Pfad aus <xref
+ linkend="updating-src-obtaining-src-repopath"/> wird
+ der Repository-URL hinzugefügt. Der dritte Parameter
+ ist das lokale Zielverzeichnis für den Quellcode.</para>
+ </callout>
+ </calloutlist>
</note>
</sect2>
- <sect2 xml:id="mergemaster">
- <info>
- <title>Abgleich der Konfigurationsdateien</title>
+ <sect2 xml:id="updating-src-building">
+ <title>Den Quellcode bauen</title>
- <authorgroup>
- <author>
- <personname>
- <firstname>Tom</firstname>
- <surname>Rhodes</surname>
- </personname>
- <contrib>Beigetragen von </contrib>
- </author>
- </authorgroup>
- </info>
+ <para xml:id="makeworld">Die Welt, also das gesamte
+ Basissystem mit Ausnahme des Kernels, wird zuerst
+ übersetzt, um aktuelle Werkzeuge zum Erstellen des
+ Kernels bereitzustellen. Anschließend wird der
+ Kernel gebaut:</para>
- <indexterm><primary><command>mergemaster</command></primary></indexterm>
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make buildworld</userinput>
+&prompt.root; <userinput>make buildkernel</userinput></screen>
- <para>&os; enthält das &man.mergemaster.8; Bourne-Shell
- Skript, welches dabei behilflich ist die Unterschiede zwischen
- den Konfigurationsdateien in <filename>/etc</filename> und
- denen unter <filename>/usr/src/etc</filename> zu finden.
- Dies ist der empfohlene Weg, die Systemkonfiguration mit dem
- Quellbaum abzugleichen.</para>
+ <para>Das Ergebnis wird in <filename>/usr/obj</filename>
+ abgelegt.</para>
- <para>Es ist ratsam, zuerst das bestehende
- <filename>/etc</filename> an einen sicheren Ort zu
- kopieren. Mit <option>-R</option> wird rekursiv kopiert und
- <option>-p</option> erhält die Zugriffszeiten und Eigentümer
- der Dateien:</para>
+ <para>Dies sind die grundlegenden Schritte. Weitere Optionen
+ zur Kontrolle des Bauprozesses sind nachfolgend
+ beschrieben.</para>
- <screen>&prompt.root; <userinput>cp -Rp /etc /etc.old</userinput></screen>
+ <sect3 xml:id="updating-src-building-clean-build">
+ <title>Umgebung für den Bauprozess säubern</title>
- <para>Beim Aufruf wird <command>mergemaster</command>
- ausgehend von <filename>/</filename> einen virtuellen
- Root-Baum aufbauen und darin die neuen Konfigurationsdateien
- ablegen.
- Diese Dateien werden dann mit den auf dem System
- installierten Dateien verglichen. Unterschiede zwischen den
- Dateien werden im &man.diff.1;-Format dargestellt. Neue
- oder geänderte Zeilen werden mit <option>+</option>
- gekennzeichnet. Zeilen die gelöscht oder ersetzt werden,
- sind mit <option>-</option> gekennzeichnet. Das
- Anzeigeformat wird in &man.diff.1; genauer erklärt.</para>
+ <para>Einige Versionen von &os; hinterlassen bereits
+ übersetzten Code im temporären Objektverzeichnis
+ <filename>/usr/obj</filename>. Dies kann nachfolgende
+ Bauprozesse beschleunigen, da Code, der nicht verändert
+ wurde, nicht neu übersetzt werden muss. Um eine saubere
+ Umgebung für den Bauprozess zu schaffen, entfernen Sie
+ <filename>/usr/obj</filename> bevor Sie mit dem Bau
+ beginnen. Dies ist dasselbe wie
+ <command>make clean</command>, nur sehr viel
+ schneller:</para>
- <para>Als nächstes zeigt <command>mergemaster</command> jede
- geänderte Datei an und Sie haben die Wahl, die neue Datei
- (auch 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 Ausgabe noch einmal
- zu sehen.</para>
+ <screen>&prompt.root; <userinput>rm -rf /usr/obj/*</userinput></screen>
+ </sect3>
- <para>Wenn Sie die temporäre Datei löschen, geht
- <command>mergemaster</command> davon aus, dass Sie die
- aktuelle Datei unverändert behalten möchten. Die Auswahl
- dieser Option wird nicht empfohlen. Durch die Eingabe von
- <keycap>?</keycap> können Sie jederzeit die Hilfe am Prompt
- von <command>mergemaster</command> aufrufen. Wenn Sie eine
- Datei überspringen, wird <command>mergemaster</command>
- diese am Ende erneut präsentieren.</para>
+ <sect3 xml:id="updating-src-building-jobs">
+ <title>Anzahl der Prozesse einstellen</title>
- <para>Wenn Sie die temporäre Datei installieren, wird die
- aktuelle Datei mit der neuen Datei überschrieben. Sie
- sollten alle unveränderten Konfigurationsdateien auf diese
- Weise aktualisieren.</para>
+ <para>Eine höhere Anzahl an Prozessen kann die
+ Geschwindigkeit auf Mehrprozessor-Systemen verbessern.
+ Die Anzahl der Kerne lässt sich mit
+ <command>sysctl hw.cpu</command> bestimmen. Prozessoren
+ variieren ebenso, wie die verschiedenen Build-Systeme von
+ &os;. Sie müssen daher mehrere Versuche starten um zu
+ sehen, wie die Anzahl der Prozesse die Geschwindigkeit
+ beeinflusst. Als Ausgangspunkt können Sie die halbe bis
+ doppelte Anzahl der Kerne als Wert probieren. Die Anzahl
+ der Prozesse wird mit <option>-j</option> angegeben.</para>
- <para>Wenn Sie sich entschließen den Inhalt beider Dateien
- abzugleichen, wird ein Texteditor aufgerufen, in dem Sie
- beide Dateien nebeneinander betrachten können. Mit der
- Taste <keycap>l</keycap> übernehmen Sie die aktuelle Zeile
- der links dargestellten Datei, mit der Taste
- <keycap>r</keycap> ü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.</para>
+ <example xml:id="updating-src-building-jobs-example">
+ <title>Die Anzahl der Prozesse erhöhen</title>
- <para>Haben Sie sich entschieden die Differenzen noch einmal
- anzuzeigen, werden nochmals die Unterschiede in beiden
- Dateien angezeigt.</para>
+ <para>Das Basissystem und den Kernel mit vier Prozessen
+ bauen:</para>
- <para>Wenn <command>mergemaster</command> alle Systemdateien
- abgearbeitet hat, werden weitere Optionen abgefragt. Sie
- werden unter Umständen gefragt, ob die Passwort-Datei neu
- gebaut werden soll. Am Ende haben Sie die Möglichkeit, die
- restlichen temporären Dateien zu löschen.</para>
+ <screen>&prompt.root; <userinput>make -j4 buildworld buildkernel</userinput></screen>
+ </example>
+ </sect3>
- <!--
- <para>Wenn Sie den Abgleich lieber selbst ausführen wollen,
- beachten Sie bitte, dass Sie nicht einfach die Dateien aus
- <filename>/usr/src/etc</filename> nach <filename>/etc</filename>
- kopieren können. Einige dieser Dateien müssen zuerst
- <emphasis>installiert</emphasis> werden, bevor sie benutzt werden
- können. Das liegt daran, dass
- <filename>/usr/src/etc</filename> keine exakte Kopie von
- <filename>/etc</filename> ist. Zudem gibt es Dateien, die sich
- in <filename>/etc</filename> befinden aber nicht in
- <filename>/usr/src/etc</filename>.</para>
+ <sect3 xml:id="updating-src-building-only-kernel">
+ <title>Nur den Kernel erstellen</title>
- <para>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.</para>
+ <para>Wenn sich der Quellcode verändert hat, muss ein
+ <buildtarget>buildworld</buildtarget> ausgeführt
+ werden. Danach kann der Kernel mit
+ <buildtarget>buildkernel</buildtarget> übersetzt
+ werden. Um lediglich den Kernel zu übersetzen:</para>
- <warning>
- <title>Sichern Sie die Inhalte von <filename>/etc</filename></title>
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make buildkernel</userinput></screen>
+ </sect3>
- <para>Es wird empfohlen, zuerst das bestehende
- <filename>/etc</filename> an einen sicheren Ort zu
- kopieren:</para>
+ <sect3 xml:id="updating-src-building-custom-kernel">
+ <title>Einen angepassten Kernel erstellen</title>
- <screen>&prompt.root; <userinput>cp -Rp /etc /etc.old</userinput></screen>
+ <para>Der &os; Standard-Kernel basiert auf einer
+ <emphasis>Konfigurationsdatei</emphasis> namens
+ <filename>GENERIC</filename>. Der
+ <filename>GENERIC</filename>-Kernel enthält die
+ gängigsten Gerätetreiber und Optionen. Manchmal ist es
+ aber sinnvoll oder gar notwendig, einen angepassten
+ Kernel zu erstellen, um Gerätetreiber oder Optionen
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-doc-head
mailing list