aboutsummaryrefslogtreecommitdiff
path: root/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.xml
blob: 1605f0ef760faa05d47f5e7faf3ff152dad8d6b6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
<?xml version="1.0" encoding="iso-8859-1"?>
<!--
     The FreeBSD Documentation Project
     The FreeBSD German Documentation Project

     $FreeBSD$
     $FreeBSDde$
     basiert auf: r52888
-->
<chapter xmlns="http://docbook.org/ns/docbook"
  xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
  xml:id="updating-upgrading">

  <info>
    <title>&os; aktualisieren</title>

    <authorgroup>
      <author>
	<personname>
	  <firstname>Jim</firstname>
	  <surname>Mock</surname>
	</personname>
	<contrib>Umstrukturiert und aktualisiert von </contrib>
      </author>
      <!-- Mar 2000 -->
    </authorgroup>

    <authorgroup>
      <author>
	<personname>
	  <firstname>Jordan</firstname>
	  <surname>Hubbard</surname>
	</personname>
	<contrib>Im Original von </contrib>
      </author>

      <author>
	<personname>
	  <firstname>Poul-Henning</firstname>
	  <surname>Kamp</surname>
	</personname>
      </author>

      <author>
	<personname>
	  <firstname>John</firstname>
	  <surname>Polstra</surname>
	</personname>
      </author>

      <author>
	<personname>
	  <firstname>Nik</firstname>
	  <surname>Clayton</surname>
	</personname>
      </author>
    </authorgroup>

    <authorgroup>
      <author>
	<personname>
	  <firstname>Martin</firstname>
	  <surname>Heinen</surname>
	</personname>
	<contrib>bersetzt von </contrib>
      </author>
    </authorgroup>
  </info>

  <sect1 xml:id="updating-upgrading-synopsis">
    <title>bersicht</title>

    <para>&os; wird zwischen einzelnen Releases stndig weiter
      entwickelt.  Manche Leute bevorzugen die offiziellen
      Release-Versionen, whrend andere wiederum lieber auf dem
      aktuellen Stand der Entwicklung bleiben mchten.  Wie dem auch
      sei, sogar offizielle Release-Versionen werden oft mit
      Sicherheitsaktualisierungen und anderen kritischen
      Fehlerbereinigungen versorgt.  Unabhngig von der eingesetzten
      Version bringt &os; alle ntigen Werkzeuge mit, um das System
      aktuell zu halten und es innerhalb verschiedener Versionen zu
      aktualisieren.  Dieses Kapitel beschreibt, wie man einem
      Entwicklungssystem folgen kann, sowie die grundlegenden
      Werkzeuge um &os; zu aktualisieren.</para>

    <para>Nachdem Sie dieses Kapitel gelesen haben, werden Sie</para>

    <itemizedlist>
      <listitem>
	<para>wissen, wie das System mit
	  <application>freebsd-update</application> oder
	  <application>Subversion</application> aktualisiert
	  wird.</para>
      </listitem>

      <listitem>
	<para>wissen, wie man das aktuell installierte System mit
	  einer ursprnglichen Version vergleicht.</para>
      </listitem>

      <listitem>
	<para>wissen, wie die installierte Dokumentation mit
	  <application>Subversion</application> oder
	  Dokumentations-Ports
          <!-- oder <application>Docsnap</application> -->
	  aktualisiert wird.</para>
      </listitem>

      <listitem>
	<para>den Unterschied zwischen den beiden Entwicklungszweigen
	  &os.stable; und &os.current; kennen.</para>
      </listitem>

      <listitem>
	<para>wissen, wie das komplette Basissystem neu gebaut und
	  installiert wird.</para>
      </listitem>
    </itemizedlist>

    <para>Bevor Sie dieses Kapitel lesen, sollten Sie</para>

    <itemizedlist>
      <listitem>
	<para>das Netzwerk richtig konfiguriert haben
	  (<xref linkend="advanced-networking"/>).</para>
      </listitem>

      <listitem>
	<para>wissen, wie Software Dritter installiert wird
	  (<xref linkend="ports"/>).</para>
      </listitem>
    </itemizedlist>

    <note>
      <para>In diesem Kapitel wird <command>svnlite</command>
	benutzt, um die &os; Quellen zu beziehen und zu
	aktualisieren.  Alternativ kann auch der Port oder das Paket
	<package>devel/subversion</package> installiert werden.</para>
    </note>
  </sect1>

  <sect1 xml:id="updating-upgrading-freebsdupdate">
    <info>
      <title>&os;-Update</title>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Tom</firstname>
	    <surname>Rhodes</surname>
	  </personname>
	  <contrib>Geschrieben von </contrib>
	</author>
      </authorgroup>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Colin</firstname>
	    <surname>Percival</surname>
	  </personname>
	  <contrib>Basierend auf Mitschriften von </contrib>
	</author>
      </authorgroup>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Benedict</firstname>
	    <surname>Reuschling</surname>
	  </personname>
	  <contrib>bersetzt von </contrib>
	</author>
      </authorgroup>
    </info>

    <indexterm><primary>Updating and Upgrading</primary></indexterm>
    <indexterm>
      <primary>freebsd-update</primary>
      <see>updating-upgrading</see>
    </indexterm>

    <para>Das zeitnahe Einspielen von Sicherheitsaktualisierungen und
      die Aktualisierung des Betriebssystems sind wichtige Aspekte der
      Systemadministration.  &os; enthlt das Werkzeug
      <command>freebsd-update</command>, mit dem Sie diese beiden
      Aufgaben erfllen knnen.</para>

    <para>Dieses Werkzeug ermglicht die Anwendung von
      Sicherheitsaktualisierungen im Binrformat auf das &os;
      Basissystem, ohne dieses neu zu bersetzen und zu installieren.
      Die Aktualisierungen im Binrformat sind fr alle Architekturen
      und Versionen verfgbar, welche vom &os; Sicherheitsteam
      untersttzt werden.  Eine Liste der untersttzten Versionen und
      der <foreignphrase>End-of-Life</foreignphrase>-Daten ist unter
      <uri xlink:href="https://www.FreeBSD.org/security/">
	https://www.FreeBSD.org/security/</uri> aufgefhrt.</para>

    <para><command>freebsd-update</command> untersttzt auch die
      Aktualisierung des Betriebssystems auf eine neuere Unterversion
      sowie eine Aktualisierung auf einen anderen Release-Zweig.
      Bevor Sie auf eine neue Version aktualisieren, sollten Sie die
      aktuellen Ankndigungen zu dem Release gelesen haben, da diese
      wichtige Informationen zu dem entsprechenden Release enthalten.
      Ankndigungen finden Sie unter <uri
	xlink:href="https://www.FreeBSD.org/releases/">
	https://www.FreeBSD.org/releases/</uri>.</para>

    <note>
      <para>Wenn eine <command>crontab</command> existiert, welche die
	Eigenschaften von &man.freebsd-update.8; verwendet, muss diese
	deaktiviert werden, bevor das Betriebssystem aktualisiert
	wird.</para>
    </note>

    <para>Dieser Abschnitt beschreibt die Verwendung der
      Konfigurationsdatei von <command>freebsd-update</command>.  Es
      wird gezeigt wie Sie Sicherheitsaktualisierungen einspielen,
      oder wie Sie das Betriebssystem auf neuere Haupt- und
      Unterversionen aktualisieren knnen.</para>

    <sect2 xml:id="freebsdupdate-config-file">
      <title>Die Konfigurationsdatei</title>

      <para>In der Regel muss die Konfigurationsdatei von
	<command>freebsd-update</command> nicht bearbeitet werden.
	Manche Benutzer mchten die Standard-Konfigurationsdatei
	<filename>/etc/freebsd-update.conf</filename> trotzdem
	anpassen, um bessere Kontrolle ber den gesamten Prozess zu
	besitzen.  Die Kommentare in dieser Datei beschreiben die
	verfgbaren Optionen, jedoch bentigen die folgenden ein paar
	zustzliche Erklrungen:</para>

      <programlisting># Components of the base system which should be kept updated.
Components world kernel</programlisting>

      <para>Dieser Parameter kontrolliert, welche Teile von &os; auf
	dem aktuellen Stand gehalten werden sollen.  In der
	Voreinstellung wird das gesamte Basissystem sowie der Kernel
	aktualisiert.  Es knnen auch einzelne Komponenten, wie
	<literal>src/base</literal> oder <literal>src/sys</literal>,
	angegeben werden.  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 knnte katastrophale Folgen nach sich
	ziehen, da der Quellcode und die Binrdateien dadurch nicht
	mehr synchron wren.</para>

      <programlisting># Paths which start with anything matching an entry in an IgnorePaths
# statement will be ignored.
IgnorePaths /boot/kernel/linker.hints</programlisting>

      <para>Fgen Sie Pfade wie <filename>/bin</filename> oder
	<filename>/sbin</filename> hinzu, um diese speziellen
	Verzeichnisse whrend des Aktualisierungsprozesses unberhrt
	zu lassen.  Diese Option kann verwendet werden, um zu
	verhindern, dass <command>freebsd-update</command> lokale
	nderungen berschreibt.</para>

      <programlisting># Paths which start with anything matching an entry in an UpdateIfUnmodified
# statement will only be updated if the contents of the file have not been
# modified by the user (unless changes are merged; see below).
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile</programlisting>

      <para>Diese Option aktualisiert nur unmodifizierte
	Konfigurationsdateien in den angegebenen Verzeichnissen.  Jede
	nderung, die der Benutzer daran vorgenommen hat, wird die
	automatische Aktualisierung dieser Dateien verhindern.  Es
	gibt eine weitere Option
	<literal>KeepModifiedMetadata</literal>, die
	<command>freebsd-update</command> instruiert, die nderungen
	whrend der Zusammenfhrung zu speichern.</para>

      <programlisting># 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/ /boot/device.hints</programlisting>

      <para>Eine Liste von Verzeichnissen mit Konfigurationsdateien,
	in denen <command>freebsd-update</command> Zusammenfhrungen
	versuchen soll.  Dieser Verschmelzungsprozess von Dateien ist
	eine Serie von &man.diff.1;-Korrekturen, hnlich wie
	&man.mergemaster.8;, aber mit weniger Optionen.  Die
	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
	&man.mergemaster.8;, um Informationen ber
	<command>mergemaster</command> zu erhalten.</para>

      <programlisting># Directory in which to store downloaded updates and temporary
# files used by &os; Update.
# WorkDir /var/db/freebsd-update</programlisting>

      <para>In diesem Verzeichnis werden alle Korrekturen und
	temporren Dateien abgelegt.  Im Falle einer
	Versionsaktualisierung sollte diesem Verzeichnis mindestens
	ein Gigabyte Festplattenspeicher zur Verfgung stehen.</para>

      <programlisting># When upgrading between releases, should the list of Components be
# read strictly (StrictComponents yes) or merely as a list of components
# which *might* be installed of which &os; Update should figure out
# which actually are installed and upgrade those (StrictComponents no)?
# StrictComponents no</programlisting>

      <para>Wenn diese Option auf <literal>yes</literal> gesetzt ist,
	wird <command>freebsd-update</command> annehmen, dass die
	<literal>Components</literal>-Liste vollstndig ist und nicht
	versuchen, nderungen ausserhalb dieser Liste zu ttigen.
	Tatschlich wird <command>freebsd-update</command> versuchen,
	jede Datei zu aktualisieren, die zu der
	<literal>Components</literal>-Liste gehrt.</para>
    </sect2>

    <sect2 xml:id="freebsdupdate-security-patches">
      <title>Sicherheitskorrekturen anwenden</title>

      <para>Das Einspielen von &os; Sicherheitskorrekturen wurde
	dahingehend vereinfacht, dass der Administrator nun das
	gesamte System mit <command>freebsd-update</command> auf
	dem aktuellen Stand halten kann.  Weitere Informationen zu
	&os; Sicherheitshinweisen finden Sie in <xref
	  linkend="security-advisories"/>.</para>

      <para>Sicherheitskorrekturen fr &os; knnen wie folgt
	heruntergeladen und installiert werden.  Das erste
	Kommando prft, ob noch ausstehende Korrekturen verfgbar
	sind, und wenn dass der Fall ist, zeigt es welche Dateien
	davon betroffen wren.  Das zweite Kommando wird die
	Korrekturen auf das System anwenden.</para>

      <screen>&prompt.root; <userinput>freebsd-update fetch</userinput>
&prompt.root; <userinput>freebsd-update install</userinput></screen>

      <para>Wenn whrend der Aktualisierung Korrekturen am Kernel
	angewendet werden, muss das System neu gestartet werden, damit
	der korrigierte Kernel gebootet wird.  Wenn die Korrekturen
	auf laufende Binrdateien angewendet werden, sollten die
	betroffenen Anwendungen neu gestartet werden, damit die
	korrigierte Version der Binrdatei geladen wird.</para>

      <para>Mit dem folgenden Eintrag in
	<filename>/etc/crontab</filename> wird das System einmal
	tglich nach Aktualisierungen suchen:</para>

      <programlisting>@daily                                  root    freebsd-update cron</programlisting>

      <para>Wenn Korrekturen existieren, werden diese automatisch
	heruntergeladen, aber nicht eingespielt.  Der <systemitem
	  class="username">root</systemitem>-Benutzer bekommt eine
	Nachricht, damit die Korrekturen berprft und mit
	<command>freebsd-update install</command> manuell installiert
	werden knnen.</para>

      <para>Wenn etwas schief geht, kann
	<command>freebsd-update</command> den letzten Satz von
	nderungen mit folgendem Befehl rckgngig machen:</para>

      <screen>&prompt.root; <userinput>freebsd-update rollback</userinput>
Uninstalling updates... done.</screen>

      <para>Wie bereits erwhnt, sollte das System neu gestartet
	werden, wenn der Kernel oder ein Kernelmodul verndert wurde.
	Betroffene Anwendungen sollten neu gestartet werden, wenn
	Binrdateien verndert wurden.</para>

      <para>Das <command>freebsd-update</command>-Werkzeug kann nur
	den <filename>GENERIC</filename>-Kernel automatisch
	aktualisieren.  Wenn ein angepasster Kernel verwendet wird,
	muss dieser neu erstellt und installiert werden, nachdem
	<command>freebsd-update</command> die Aktualisierungen
	durchgefhrt hat.  Der voreingestellte Kernel ist
	<emphasis>GENERIC</emphasis>.  Benutzen Sie das Kommando
	&man.uname.1; um dies zu berprfen.</para>

      <note>
	<para>Behalten Sie immer eine Kopie des
	  <filename>GENERIC</filename>-Kernels in
	  <filename>/boot/GENERIC</filename>.  Das wird bei der
	  Diagnose von verschiedenen Problemen sowie bei der
	  Durchfhrung von Versionsaktualisierungen eine groe Hilfe
	  sein.  Im <xref linkend="freebsd-update-custom-kernel-9x"/>
	  wird beschrieben, wie Sie eine Kopie des
	  <filename>GENERIC</filename>-Kernels bekommen.</para>
      </note>

      <para>Solange die Standardkonfiguration in
	<filename>/etc/freebsd-update.conf</filename> nicht gendert
	wurde, wird <command>freebsd-update</command> die
	aktualisierten Quellcodedateien des Kernels zusammen mit dem
	Rest der Neuerungen installieren.  Die erneute bersetzung und
	Installation eines neuen, angepassten Kernels kann dann auf
	die bliche Art und Weise durchgefhrt werden.</para>

      <para>Die Aktualisierungen, die ber
	<command>freebsd-update</command> verteilt werden, betreffen
	nicht immer den Kernel.  Es ist nicht notwendig, den
	angepassten Kernel neu zu erstellen, wenn die Kernelquellen
	nicht durch <command>freebsd-update install</command> gendert
	wurden.  Allerdings wird <command>freebsd-update</command>
	immer <filename>/usr/src/sys/conf/newvers.sh</filename>
	aktualisieren.  Der aktuelle Patch-Level, der mit der
	<literal>-p</literal>-Nummer bei <command>uname -r</command>
	ausgegeben wird, wird aus dieser Datei ausgelesen.  Die
	Neuinstallation des angepassten Kernels, selbst wenn sich
	daran nichts gendert hat, erlaubt es
	<command>uname</command>, den aktuellen Patch-Level des
	Systems korrekt wiederzugeben.  Dies ist besonders hilfreich,
	wenn mehrere Systeme gewartet werden, da es eine schnelle
	Einschtzung der installierten Aktualisierungen in jedem
	einzelnen System ermglicht.</para>
    </sect2>

    <sect2 xml:id="freebsdupdate-upgrade">
      <title>Aktualisierungen an Haupt- und Unterversionen</title>

      <para>Aktualisierungen einer Unterversion von &os; zur nchsten
	Version ist beispielsweise die Aktualisierung von
	&os;&nbsp;9.0 auf &os;&nbsp;9.1.  Die Aktualisierung einer
	Hauptversion ist beispielsweise von &os;&nbsp;9.X auf
	&os;&nbsp;10.X.  Beide Arten der Aktualisierungen knnen
	durchgefhrt werden, indem man
	<command>freebsd-update</command> eine Release-Version als
	Ziel bergibt.</para>

      <note>
	<para>Wenn auf dem System ein angepasster Kernel eingesetzt
	  wird, stellen Sie sicher, dass eine Kopie des
	  <filename>GENERIC</filename>-Kernels in
	  <filename>/boot/GENERIC</filename> existiert.  Im
	  <xref linkend="freebsd-update-custom-kernel-9x"/> wird
	  beschrieben, wie Sie eine Kopie des
	  <filename>GENERIC</filename>-Kernels bekommen.</para>
      </note>

      <para>Wenn Sie das folgende Kommando auf einem System
	mit &os;&nbsp;9.0 ausfhren, wird das System auf
	&os;&nbsp;9.1 aktualisiert:</para>

      <screen>&prompt.root; <userinput>freebsd-update -r 9.1-RELEASE upgrade</userinput></screen>

      <para>Nach der Eingabe des Kommandos berprft
	<command>freebsd-update</command> die Konfigurationsdatei und
	das aktuelle System, um die ntigen Informationen fr die
	Systemaktualisierung zu sammeln.  Eine Bildschirmausgabe wird
	anzeigen, welche Komponenten erkannt und welche nicht erkannt
	wurden.  Zum Beispiel:</para>

      <screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 9.0-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)? <userinput>y</userinput></screen>

      <para>An diesem Punkt wird <command>freebsd-update</command>
	versuchen, alle notwendigen Dateien fr die Aktualisierung
	herunter zu laden.  In manchen Fllen wird der Benutzer mit
	Fragen konfrontiert, um festzustellen, was installiert werden
	soll oder auf welche Art und Weise fortgesetzt werden
	soll.</para>

      <para>Wenn ein angepasster Kernel benutzt wird, produziert der
	vorherige Schritt eine Warnung hnlich zu der
	folgenden:</para>

      <screen>WARNING: This system is running a "
<replaceable>MYKERNEL</replaceable>" kernel, which is not a
kernel configuration distributed as part of FreeBSD 9.0-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"</screen>

      <para>Diese Warnung kann an dieser Stelle problemlos ignoriert
	werden.  Der aktualisierte
	<filename>GENERIC</filename>-Kernel wird als ein
	Zwischenschritt im Aktualisierungsprozess verwendet.</para>

      <para>Nachdem alle Korrekturen auf das lokale System
	heruntergeladen wurden, werden diese eingespielt.  Dieser
	Prozess kann eine gewisse Zeit in Anspruch nehmen, abhngig
	von der Geschwindigkeit und Auslastung der Maschine.
	Konfigurationsdateien werden ebenfalls zusammengefgt.  Dieser
	Teil der Prozedur verlangt einige Benutzereingaben, da eine
	Datei mglicherweise 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, whrend der
	Prozess weiter luft.  Eine fehlgeschlagene oder ignorierte
	Zusammenfassung wird den Prozess sofort beenden.  Benutzer
	sollten eine Sicherung von <filename>/etc</filename> anlegen
	und wichtige Dateien spter manuell vereinen, beispielsweise
	<filename>master.passwd</filename> oder
	<filename>group</filename>.</para>

      <note>
	<para>Das System ist zu diesem Zeitpunkt noch nicht
	  verndert worden, da alle Korrekturen und Vereinigungen
	  in einem anderen Verzeichnis vorgenommen wurden.  Wenn
	  alle Korrekturen erfolgreich eingespielt, alle
	  Konfigurationsdateien zusammengefgt wurden und es den
	  Anschein hat, dass der Prozess problemlos verlaufen wird,
	  mssen die nderungen vom Anwender noch angewendet und auf
	  die Platte geschrieben werden:</para>

	<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
      </note>

      <para>Der Kernel und die Module werden zuerst aktualisiert.
	Wenn das System einen angepassten Kernel verwendet, benutzen
	Sie &man.nextboot.8;, um den Kernel fr den nchsten
	Neustart auf <filename>/boot/GENERIC</filename> zu
	setzen:</para>

      <screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen>

      <warning>
	<para>Bevor das System mit dem
	  <filename>GENERIC</filename>-Kernel neu gestartet wird,
	  vergewissern Sie sich, dass fr den Neustart alle
	  bentigten Treiber enthalten sind.  Falls auf die
	  Maschine aus der Ferne zugegriffen wird, stellen Sie
	  sicher, dass das System ordnungsgem an das Netzwerk
	  angeschlossen ist.  Achten Sie besonders darauf, dass wenn
	  der angepasste Kernel Funktionalitt beinhaltet, die
	  normalerweise von Kernelmodulen zur Verfgung gestellt
	  werden, dass diese temporr ber
	  <filename>/boot/loader.conf</filename> in den
	  <filename>GENERIC</filename>-Kernel bernommen werden.
	  Zudem wird empfohlen, nicht bentigte Dienste, eingehngte
	  Platten und verbundene Netzlaufwerke zu deaktivieren, bis
	  der Aktualisierungsprozess abgeschlossen ist.</para>
      </warning>

      <para>Die Maschine sollte nun mit dem aktualisierten Kernel
	neu gestartet werden:</para>

      <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>

      <para>Sobald das System wieder hochgefahren ist, muss
	<command>freebsd-update</command> erneut gestartet werden.
	Da der Zustand des Prozesses zuvor gesichert wurde, wird
	<command>freebsd-update</command> nicht von vorne
	beginnen, sondern mit der nchsten Phase fortfahren und
	alle alten Bibliotheken und Objektdateien lschen.</para>

      <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>

      <note>
	<para>Abhngig davon, ob irgendwelche Bibliotheksversionen
	  erhht wurden, kann es sein, dass nur zwei
	  Installationsphasen anstatt drei durchlaufen werden.</para>
      </note>

      <para>Die Aktualisierung ist nun abgeschlossen.  Wenn es sich
	hierbei um eine Aktualisierung auf eine neue Hauptversion
	handelt, mssen alle Ports und Pakete neu installiert
	werden.  Dieser Vorgang wird in <xref
	  linkend="freebsdupdate-portsrebuild"/> beschrieben.</para>

      <sect3 xml:id="freebsd-update-custom-kernel-9x">
	<title>Angepasste Kernel unter &os;&nbsp;9.X und
	  spter</title>

	<para>Stellen Sie vor der ersten Benutzung von
	  <command>freebsd-update</command> sicher, dass eine
	  Kopie des <filename>GENERIC</filename>-Kernels in
	  <filename>/boot/GENERIC</filename> existiert.  Wenn ein
	  angepasster Kernel erstmalig gebaut wurde, ist der Kernel
	  in <filename>/boot/kernel.old</filename> der
	  <filename>GENERIC</filename>-Kernel.  Benennen Sie
	  dieses Verzeichnis einfach in
	  <filename>/boot/kernel</filename> um.</para>

	<para>Wenn bereits mehrfach ein angepasster Kernel gebaut
	  wurde, oder nicht bekannt ist wie oft ein angepasster
	  Kernel gebaut wurde, behalten Sie besser eine Kopie des
	  <filename>GENERIC</filename>-Kernels, welcher mit der
	  aktuellen Version des Betriebssystems bereinstimmt.
	  Wenn ein direkter Zugriff auf die Maschine mglich ist,
	  kann eine Kopie des <filename>GENERIC</filename>-Kernels
	  von den Installationsmedien installiert werden:</para>

	<screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cd /cdrom/usr/freebsd-dist</userinput>
&prompt.root; <userinput>tar -C/ -xvf kernel.txz boot/kernel/kernel</userinput></screen>

	<para>Alternativ kann der
	  <filename>GENERIC</filename>-Kernel aus den Quellen neu
	  gebaut und installiert werden:</para>

	<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null</userinput></screen>

	<para>Damit dieser Kernel als
	  <filename>GENERIC</filename>-Kernel von
	  <command>freebsd-update</command> erkannt wird, darf
	  die <filename>GENERIC</filename>-Konfigurationsdatei
	  in keiner Weise gendert worden sein.  Es wird ebenfalls
	  empfohlen, dass dieser ohne irgendwelche speziellen
	  Optionen erstellt wird.</para>

	<para>Der Neustart in den
	  <filename>GENERIC</filename>-Kernel ist nicht notwendig,
	  da <command>freebsd-update</command> lediglich
	  <filename>/boot/GENERIC</filename> bentigt.</para>
      </sect3>

      <sect3 xml:id="freebsdupdate-portsrebuild">
	<title>Aktualisierung der Pakete nach einem Upgrade auf eine
	  Hauptversion</title>

	<para>In der Regel funktionieren nach einer Aktualisierung
	  einer Unterversion die installierten Anwendungen weiterhin
	  problemlos.  Neue Hauptversionen verwenden jedoch andere
	  Binrschnittstellen (<acronym>ABI</acronym>s), was dazu
	  fhrt, dass die meisten Anwendungen von Drittherstellern
	  nicht mehr funktionieren.  Nach der Aktualisierung auf eine
	  Hauptversion, mssen alle installierten Ports und Pakete
	  aktualisiert werden.  Benutzen Sie
	  <command>pkg upgrade</command> um Pakte zu aktualisieren.
	  Installierte Ports knnen Sie mit einem Werkzeug wie
	  <package>ports-mgmt/portmaster</package> aktualisiert
	  werden.</para>

	<para>Bei einer erzwungenen Aktualisierung aller installierten
	  Pakete, werden diese durch eine neue Version aus dem
	  Repository ersetzt, sogar dann, wenn sich die Versionsnummer
	  nicht erhht hat.  Dieser Schritt ist erforderlich, da sich
	  die <acronym>ABI</acronym> bei einer Aktualisierung der
	  Hauptversion von &os; verndert hat.  Eine erzwungene
	  Aktualisierung aller installierten Pakete geschieht wie
	  folgt:</para>

	<screen>&prompt.root; <userinput>pkg-static upgrade -f</userinput></screen>

	<para>Ein Neubau der installierten Ports fhren Sie mit
	  diesem Kommando durch:</para>

	<screen>&prompt.root; <userinput>portmaster -af</userinput></screen>

	<para>Dieser Befehl wird die Konfigurationen fr jede
	  Anwendung anzeigen, und der Benutzer hat die Mglichkeit,
	  die Optionen anzupassen.  Wenn Sie ausschlielich die
	  voreingestellten Optionen verwenden mchten, verwenden Sie
	  mit dem obigen Befehl den Parameter
	  <option>-G</option>.</para>

	<para>Sobald dies abgeschlossen ist, beenden Sie den
	  Aktualisierungsprozess mit einem letzten Aufruf von
	  <command>freebsd-update</command>.  Geben Sie den folgenden
	  Befehl ein, um alle losen Enden des Aktualisierungsprozesses
	  miteinander zu verknpfen:</para>

	<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>

	<para>Wenn der <filename>GENERIC</filename>-Kernel temporr
	  Verwendung fand, ist dies der richtige Zeitpunkt, einen
	  neuen, angepassten Kernel nach den Anweisungen in <xref
	    linkend="kernelconfig"/> zu bauen und zu
	  installieren.</para>

	<para>Booten Sie anschlieend die Maschine in die neue
	  &os;-Version.  Der Aktualisierungsprozess ist damit
	  abgeschlossen.</para>
      </sect3>
    </sect2>

    <sect2 xml:id="freebsdupdate-system-comparison">
      <title>Vergleich des Systemzustands</title>

      <para><command>freebsd-update IDS</command> kann verwendet
	werden, um den Zustand der installierten &os;-Version
	gegenber einer bekannten und funktionierenden Kopie zu
	vergleichen.  Dieses Kommando vergleicht die aktuelle Version
	von Systemwerkzeugen, Bibliotheken sowie Konfigurationsdateien
	und kann als integriertes Intrusion Detection System
	(<acronym>IDS</acronym>) benutzt werden.</para>

      <warning>
	<para>Dieses Programm ist kein Ersatz fr ein echtes
	  <acronym>IDS</acronym>-System wie
	  <package>security/snort</package>.  Da
	  <command>freebsd-update</command> Daten auf der Festplatte
	  speichert, ist die Mglichkeit von Verflschungen
	  offensichtlich.  Obwohl diese Mglichkeit durch die
	  Verwendung von <varname>kern.securelevel</varname> oder die
	  Speicherung von Daten auf einem Nur-Lese Dateisystem
	  eingedmmt werden kann, besteht eine bessere Lsung darin,
	  das System gegen ein gesichertes Medium, wie eine
	  <acronym>DVD</acronym> oder einen externen, separat
	  aufbewahrten <acronym>USB</acronym>-Plattenspeicher, zu
	  vergleichen.  Eine alternative Methode zur Bereitstellung
	  von <acronym>IDS</acronym>-Funktionaliten wird in
	  <xref linkend="security-ids"/> beschrieben.</para>
      </warning>

      <para>Beginnen Sie den Vergleich, indem Sie das Programm starten
	und eine Ausgabedatei festlegen:</para>

      <screen>&prompt.root; <userinput>freebsd-update IDS &gt;&gt; <replaceable>outfile.ids</replaceable></userinput></screen>

      <para>Das System wird nun berprft.  Dabei wird eine lange
	Liste von Dateien zusammen mit den
	<acronym>SHA256</acronym>-Hashwerten der Release-Version und
	den Werten des aktuell installierten Systems, in die
	angegebene Ausgabedatei geschrieben.</para>

      <para>Die Zeilen in der Ausgabe sind extrem lang, aber das
	Ausgabeformat kann einfach verarbeitet werden.  Um
	beispielsweise eine Liste von allen Dateien zu erhalten, die
	sich vom aktuellen Release unterscheiden, geben Sie das
	folgende Kommando ein:</para>

      <screen>&prompt.root; <userinput>cat outfile.ids | awk '{ print $1 }' | more</userinput>
/etc/master.passwd
/etc/motd
/etc/passwd
/etc/pf.conf</screen>

      <para>Diese Beispielausgabe wurde abgeschnitten, da noch viele
	weitere Dateien vorhanden sind.  Einige Dateien wurden auf
	natrliche Art verndert.  <filename>/etc/passwd</filename>
	wurde beispielsweise gendert, wenn Benutzer zum System
	hinzugefgt wurden.  Kernelmodule knnen sich unterscheiden,
	wenn <command>freebsd-update</command> diese aktualisiert hat.
	Um bestimmte Dateien oder Verzeichnisse auszuschlieen, fgen
	Sie diese an die <literal>IDSIgnorePaths</literal>-Option in
	<filename>/etc/freebsd-update.conf</filename> an.</para>
    </sect2>
  </sect1>

  <sect1 xml:id="updating-upgrading-documentation">
    <info>
      <title>Aktualisieren der Dokumentationssammlung</title>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Benedict</firstname>
	    <surname>Reuschling</surname>
	  </personname>
	  <contrib>bersetzt von </contrib>
	</author>
      </authorgroup>
    </info>

    <indexterm><primary>Updating and Upgrading</primary></indexterm>

    <indexterm>
      <primary>Documentation</primary>
      <see>Updating and Upgrading</see>
    </indexterm>

    <para>Dokumentation ein wichtiger Bestandteil des &os;
      Betriebssystems.  Obwohl eine aktuelle Version der &os;
      Dokumentation jederzeit auf der &os; Webseite (<link
	xlink:href="&url.base;/doc/">
	https://www.freebsd.org/doc/</link>) verfgbar ist, kann es
      ntzlich sein, eine lokale Kopie der &os; Webseite, Handbcher,
      <acronym>FAQ</acronym> und Artikel zu haben.</para>

    <para>Dieser Abschnitt beschreibt, wie Sie die &os; Dokumentation
      ber die Quellen oder die &os; Ports-Sammlung aktuell
      halten.</para>

    <para>Informationen zum Bearbeiten und Einreichen von Korrekturen
      finden Sie in der <link
	xlink:href="&url.doc.langbase;/books/fdp-primer">Fibel fr
	neue Mitarbeiter des
	&os;-Dokumentationsprojekts</link>.</para>

    <sect2 xml:id="updating-installed-documentation">
      <title>Die &os;-Dokumentation aus den Quellen
	installieren</title>

      <para>Der Bau der &os; Dokumentation aus den Quellen erfordert
	einige Werkzeuge, die nicht Teil des Basissystems sind.  Die
	erforderlichen Werkzeuge knnen ber den Port oder das
	Paket <package>textproc/docproj</package> installiert
	werden.</para>

      <para>Benutzen Sie nach der Installation
	<application>svnlite</application>, um eine saubere Kopie der
	Dokumentationsquellen zu holen:</para>

      <screen>&prompt.root; <userinput>svnlite checkout https://svn.FreeBSD.org/doc/head /usr/doc</userinput></screen>

      <para>Es dauert eine Weile, bis die Quellen das allererste Mal
	heruntergeladen werden.  Lassen Sie den Vorgang laufen, bis es
	fertig ist.</para>

      <para>Zuknftige Aktualisierungen der Dokumentationsquellen
	knnen wie folgt durchgefhrt werden:</para>

      <screen>&prompt.root; <userinput>svnlite update /usr/doc</userinput></screen>

      <para>Sobald ein aktueller Schnappschuss der
	Dokumentationsquellen nach <filename>/usr/doc</filename>
	heruntergeladen wurde, ist alles bereit fr eine
	Aktualisierung der bestehenden Dokumentation.</para>

      <para>Eine komplette Aktualisierung aller Sprachen kann durch
	folgende Eingabe erreicht werden:</para>

      <screen>&prompt.root; <userinput>cd /usr/doc</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

      <para>Wenn nur eine Aktualisierung einer bestimmten Sprache
	gewnscht wird, kann <command>make</command> in einem
	sprachspezifischen Unterverzeichnis von
	<filename>/usr/doc</filename> aufgerufen werden:</para>

      <screen>&prompt.root; <userinput>cd /usr/doc/en_US.ISO8859-1</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

      <para>Alternativ kann der folgende Befehl in
	<filename>/usr/doc</filename> oder einem sprachspezifischen
	Unterverzeichnis abgesetzt werden, um die Dokumentation zu
	aktualisieren:</para>

      <screen>&prompt.root; <userinput>make update</userinput></screen>

      <para>Die zu installierenden Ausgabeformate knnen durch das
	Setzen von <varname>FORMATS</varname> angegeben werden:</para>

      <screen>&prompt.root; <userinput>cd /usr/doc</userinput>
&prompt.root; <userinput>make FORMATS='html html-split' install clean</userinput></screen>

      <para>Es existieren ein paar Optionen, welche den Prozess der
	Aktualisierung von Teilen der Dokumentation oder einer
	bestimmten bersetzung erleichtern.  Diese Optionen knnen
	entweder systemweit in <filename>/etc/make.conf</filename>
	gesetzt, oder als Kommandozeilenoptionen an
	<command>make</command> bergeben werden.</para>

      <para>Zu den Optionen gehren:</para>

      <variablelist>
	<varlistentry>
	  <term><varname>DOC_LANG</varname></term>

	  <listitem>
	    <para>Eine Liste von Sprachen und Kodierungen, die gebaut
	      und installiert werden sollen, z.B.
	      <literal>en_US.ISO8859-1</literal>, um nur die englische
	      Dokumentation zu erhalten.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><varname>FORMATS</varname></term>

	  <listitem>
	    <para>Ein einzelnes Format oder eine Liste von
	      Ausgabeformaten, das gebaut werden soll.  Momentan
	      werden <literal>html</literal>,
	      <literal>html-split</literal>, <literal>txt</literal>,
	      <literal>ps</literal> und <literal>pdf</literal>
	      untersttzt.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><varname>DOCDIR</varname></term>

	  <listitem>
	    <para>Wohin die Dokumentation installiert werden soll.
	      Der Standardpfad ist
	      <filename>/usr/share/doc</filename>.</para>
	  </listitem>
	</varlistentry>
      </variablelist>

      <para>Fr weitere <command>make</command>-Variablen, die als
	systemweite Optionen in &os; untersttzt werden, lesen Sie
	&man.make.conf.5;.</para>
    </sect2>

    <sect2 xml:id="doc-ports-install-package">
      <info>
	<title>Die Dokumentation aus den Ports aktualisieren</title>

	<authorgroup>
	  <author>
	    <personname>
	      <firstname>Marc</firstname>
	      <surname>Fonvieille</surname>
	    </personname>
	    <contrib>Basierend auf der Arbeit von </contrib>
	  </author>
	</authorgroup>
      </info>

      <indexterm><primary>Updating and Upgrading</primary></indexterm>

      <indexterm>
	<primary>documentation package</primary>
	<see>Updating and Upgrading</see>
      </indexterm>

      <para>Im vorherigen Abschnitt wurde eine Methode gezeigt, wie
	die &os;-Dokumentation aus den Quellen gebaut werden kann.
	Dieser Abschnitt beschreibt eine alternative Methode, in der
	die Ports-Sammlung verwendet wird und die es
	ermglicht:</para>

      <itemizedlist>
	<listitem>
	  <para>vorgefertigte Schnappschsse der Dokumentation zu
	    installieren, ohne vorher die Werkzeugsammlung der
	    Dokumentation installieren zu mssen.</para>
	</listitem>

	<listitem>
	  <para>die Dokumentationsquellen durch das Ports-System
	    erstellen zu lassen, was die Schritte zum Auschecken und
	    Erstellen etwas erleichtert.</para>
	</listitem>
      </itemizedlist>

      <para>Diese Methoden der Aktualisierung der
	&os;-Dokumentation werden durch eine Menge von
	Dokumentations-Ports und Paketen untersttzt, die von
	&a.doceng; monatlich aktualisiert wird.  Diese sind in der
	&os; Ports-Sammlung unter der Kategorie <quote>docs</quote>
	gelistet (<link
	  xlink:href="http://www.freshports.org/docs/">
	  http://www.freshports.org/docs/</link>).</para>

      <para>Die Dokumentations-Ports sind wie folgt
	organisiert:</para>

      <itemizedlist>
	<listitem>
	  <para>Das Paket oder der Port
	    <package>misc/freebsd-doc-en</package> installiert die
	    englische Dokumentation.</para>
	</listitem>

	<listitem>
	  <para>Das Paket oder der Port
	    <package>misc/freebsd-doc-all</package> installiert die
	    komplette Dokumentation in allen verfgbaren
	    Sprachen.</para>
	</listitem>

	<listitem>
	  <para>Es gibt noch ein Paket oder einen Port fr jede
	    bersetzung, beispielsweise
	    <package>misc/freebsd-doc-hu</package> fr die
	    ungarische Dokumentation.</para>
	</listitem>
      </itemizedlist>

      <para>Wenn Sie Pakete benutzen, wird die &os;-Dokumentation in
	allen verfgbaren Formaten der jeweiligen Sprache
	installiert.  Das folgende Beispiel wird das aktuelle Paket
	der ungarischen Dokumentation installieren:</para>

      <screen>&prompt.root; <userinput>pkg install hu-freebsd-doc</userinput></screen>

      <note>
	<para>Pakete verwenden ein Format, welches sich von dem
	  Namen des dazugehrigen Ports unterscheidet:
	  <literal><replaceable>lang</replaceable>-freebsd-doc</literal>.
	  <replaceable>lang</replaceable> entspricht hier der
	  Kurzform des Sprachcodes, z.B. <literal>hu</literal> fr
	  Ungarisch, oder <literal>zh_cn</literal> fr vereinfachtes
	  Chinesisch.</para>
      </note>

      <para>Um das Format der Dokumentation zu bestimmen, muss
	anstelle des Pakets der Port gebaut werden.  Das folgende
	Beispiel baut und installiert die englische
	Dokumentation:</para>

      <screen>&prompt.root; <userinput>cd /usr/ports/misc/freebsd-doc-en</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

      <para>Der Port enthlt ein Konfigurationsmen, in dem das
	Format ausgewhlt werden kann.  In der Voreinstellung sind
	<literal>html-split</literal> und <literal>pdf</literal>
	ausgewhlt.</para>

      <para>Alternativ knnen bei der Erstellung eines
	Dokumentations-Ports verschiedene
	<command>make</command>-Optionen angegeben werden.
	Dazu gehren:</para>

      <variablelist>
	<varlistentry>
	  <term><varname>WITH_HTML</varname></term>

	  <listitem>
	    <para>Erstellt das <acronym>HTML</acronym>-Format mit
	      einer einzigen <acronym>HTML</acronym>-Datei pro
	      Dokument.  Die formatierte Dokumentation wird als
	      Datei mit dem Namen <filename>article.html</filename>
	      oder <filename>book.html</filename> gespeichert.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><varname>WITH_PDF</varname></term>

	  <listitem>
	    <para>Die formatierte Dokumentation wird als Datei
	      mit dem Namen <filename>article.pdf</filename> oder
	      <filename>book.pdf</filename> gespeichert.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><varname>DOCBASE</varname></term>

	  <listitem>
	    <para>Legt den Pfad fest, wohin die Dokumentation
	      installiert werden soll.  Die Voreinstellung ist
	      <filename>/usr/local/share/doc/freebsd</filename>.</para>
	  </listitem>
	</varlistentry>
      </variablelist>

      <para>Dieses Beispiel verwendet Variablen, um die ungarische
	Dokumentation als <acronym>PDF</acronym> in ein bestimmtes
	Verzeichnis zu installieren:</para>

      <screen>&prompt.root; <userinput>cd /usr/ports/misc/freebsd-doc-hu</userinput>
&prompt.root; <userinput>make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean</userinput></screen>

      <para>Dokumentations-Ports oder -Pakete knnen nach den
	Anweisungen in <xref linkend="ports"/> aktualisiert werden.
	Beispielsweise aktualisiert das folgende Kommando die
	installierte ungarische Dokumentation mittels
	<package>ports-mgmt/portmaster</package> unter Verwendung
	von Paketen:</para>

      <screen>&prompt.root; <userinput>portmaster -PP hu-freebsd-doc</userinput></screen>
    </sect2>
  </sect1>

  <sect1 xml:id="current-stable">
    <title>Einem Entwicklungszweig folgen</title>

    <indexterm><primary>-CURRENT</primary></indexterm>
    <indexterm><primary>-STABLE</primary></indexterm>

    <para>&os; besitzt zwei Entwicklungszweige: &os.current; und
      &os.stable;.</para>

    <para>Dieser Abschnitt beschreibt beide Zweige sowie deren
      Interessengruppen und erlutert, wie ein System auf dem
      aktuellen Stand eines jeweiligen Zweiges gehalten wird.</para>

    <sect2 xml:id="current">
      <title>&os.current;</title>

      <para>&os.current; ist die allerneueste Entwicklung von &os;.
	Benutzer von &os.current; sollten ber sehr gute technische
	Fhigkeiten verfgen.  Benutzer mit weniger technischen
	Fhigkeiten sollten stattdessen &os.stable; benutzen, wenn
	sie einem Entwicklungszweig folgen mchten.</para>

      <para>&os.current; besteht aus den neuesten Quellen des
	&os;-Systems und enthlt Sachen, an denen gerade
	gearbeitet wird, experimentelle nderungen und
	bergangsmechanismen, die im nchsten offiziellen
	Release enthalten sein knnen oder nicht.  Obwohl &os.current;
	tglich von vielen Entwicklern gebaut wird, gibt es Zeitrume,
	in denen sich das System vielleicht nicht bauen lsst.  Diese
	Probleme werden so schnell wie mglich behoben, aber ob Sie
	mit &os.current; eine Katastrophe erleben oder neue Funktionen
	erhalten, kann von dem Zeitpunkt abhngen, an dem der
	Quelltext synchronisiert wurde.</para>

      <para>&os.current; wird hauptschlich fr drei
	Interessengruppen zur Verfgung gestellt:</para>

      <orderedlist>
	<listitem>
	  <para>Mitglieder der &os; Gemeinschaft, die aktiv an einem
	    Teil des Quellbaums arbeiten.</para>
	</listitem>

	<listitem>
	  <para>Mitglieder der &os; Gemeinschaft, die aktive Tester
	    sind.  Diese Personen sind bereit, Zeit in das Lsen von
	    Problemen zu investieren, Vorschlge zu nderungen oder
	    der generellen Entwicklung von &os; zu machen und
	    Fehlerkorrekturen einzureichen.</para>
	</listitem>

	<listitem>
	  <para>Benutzer, die die Entwicklung im Auge behalten, oder
	    die Quellen zu Referenzzwecken benutzen wollen.  Diese
	    Gruppe macht auch Vorschlge oder steuert Quellcode
	    bei.</para>
	</listitem>
      </orderedlist>

      <para>&os.current; ist <emphasis>nicht</emphasis> der
	schnellste Weg, neue Funktionen vor dem offiziellen Release
	auszuprobieren.  Bedenken Sie, dass neue Funktionen noch
	nicht im vollen Umfang getestet wurden und daher
	hchstwahrscheinlich Fehler enthalten.  Es ist auch nicht
	der schnellste Weg, um an Fehlerbehebungen (engl.
	<foreignphrase>bug fixes</foreignphrase>) zu kommen.  Jede
	Fehlerbehebung fhrt mit gleicher Wahrscheinlichkeit neue
	Fehler ein, mit der sie alte behebt.  &os.current; wird in
	keiner Weise <quote>offiziell untersttzt</quote>.</para>

      <indexterm>
	<primary>-CURRENT</primary>
	<secondary>benutzen</secondary>
      </indexterm>

      <para>Um &os.current; zu folgen:</para>

      <orderedlist>
	<listitem>
	  <para>Lesen Sie die Mailinglisten &a.current.name; und
	    &a.svn-src-head.name;.  Dies ist
	    <emphasis>notwendig</emphasis>, um die Kommentare
	    ber den akutellen Status des Systems und wichtige
	    Mitteilungen zum aktuellen Zustand von &os.current; zu
	    erfahren.</para>

	  <para>Die &a.svn-src-head.name; Mailingliste erfasst die
	    Commit-Logs fr jede nderung und enthlt alle
	    relevanten Informationen zu mglichen
	    Seiteneffekten.</para>

	  <para>Um diese Listen zu abonnieren, besuchen Sie
	    &a.mailman.lists.link;, klicken Sie auf die gewnschte
	    Liste und folgen Sie den Anweisungen.  Wenn Sie die
	    nderungen am gesamten Quellbaum verfolgen mchten,
	    abonnieren Sie die &a.svn-src-all.name; Liste.</para>
	</listitem>

	<listitem>
	  <para>Synchronisieren Sie die Quellen fr &os.current;.
	    In der Regel wird <link linkend="svn">svnlite</link>
	    benutzt, um die Quellen fr -CURRENT aus dem Zweig
	    <literal>head</literal> zu laden.  Verwenden Sie dazu
	    einen Subversion Spiegel aus <xref
	      linkend="svn-mirrors"/>.</para>
	</listitem>

	<listitem>
	  <para>Aufgrund der Gre des Repositories ist es
	    empfehlenswert, nur die gewnschten Teilbume
	    auszuchecken.  Wenn Sie die Quellen einsetzen und
	    nicht nur darin lesen wollen, laden Sie sich die
	    <emphasis>kompletten</emphasis> Quellen von &os.current;
	    und nicht nur ausgesuchte Teile.</para>

	  <para>Lesen Sie <filename>/usr/src/Makefile</filename>
	    sehr aufmerksam und folgen Sie den Anweisungen in <xref
	      linkend="makeworld"/>.  Lesen Sie die
	    Mailingliste &a.current; und
	    <filename>/usr/src/UPDATING</filename>, um ber
	    nderungen im Installationsverfahren, die manchmal vor
	    der Einfhrung eines neuen Releases notwendig sind,
	    informiert zu sein.</para>
	</listitem>

	<listitem>
	  <para>Seien Sie aktiv!  Benutzer von &os.current; werden
	    aufgefordert ihre Verbesserungsvorschlge oder
	    Fehlerbehebungen einzureichen.  Verbesserungsvorschlge,
	    die Code enthalten, sind jederzeit herzlich
	    willkommen.</para>
	</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 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 knnen oder eben auch nicht.  &os.stable; ist
	Teil des Entwicklungsprozesses und nicht fr Endanwender
	gedacht.  Benutzer, die nicht ber die notwendigen Ressourcen
	zum Testen verfgen, sollten stattdessen ein aktuelles Release
	von &os; benutzen.</para>

      <para>Wer daran interessiert ist den Entwicklungsprozess von
	&os; zu verfolgen oder dazu beizutragen, insbesondere im
	Hinblick auf das nchste Release, der sollte es in Erwgung
	ziehen &os.stable; zu benutzen.</para>

      <para>Obwohl wir versuchen sicherzustellen, dass sich
	&os.stable; jederzeit bersetzen lsst und lauffhig ist,
	knnen wir dafr 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
	Grenzflle erst in &os.stable; auffallen.  Aus diesen Grnden
	empfehlen wir, &os.stable; <emphasis>nicht</emphasis>
	blindlings zu benutzen.</para>

      <para>Um &os.stable; zu folgen:</para>

      <indexterm>
	<primary>-STABLE</primary>
	<secondary>benutzen</secondary>
      </indexterm>

      <orderedlist>
	<listitem>
	  <para>Lesen Sie die Mailingliste &a.stable.name;, damit Sie
	    ber Abhngigkeiten beim Bau von &os.stable; und Dinge,
	    die besondere Aufmerksamkeit erfordern, informiert sind.
	    Umstrittene Fehlerbehebungen oder nderungen werden von
	    den Entwicklern auf dieser Liste bekannt gegeben.  Dies
	    erlaubt es den Benutzern, Einwnde gegen die
	    vorgeschlagenen nderungen vorzubringen.</para>

	  <para>Abonnieren Sie die passende
	    <application>svn</application>-Liste fr den jeweiligen
	    Zweig, den Sie verfolgen.  Wenn Sie beispielsweise den
	    Zweig 9-STABLE verfolgen, lesen Sie
	    &a.svn-src-stable-9.name;.  Diese Liste enthlt zu jeder
	    nderung das Commit-Log, das Informationen zu mglichen
	    Seiteneffekten enthlt.</para>

	  <para>Um diese Listen zu abonnieren, besuchen Sie die Seite
	    &a.mailman.lists.link;.  Klicken Sie auf die gewnschte
	    Liste und folgen 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 berprfen.  Alternativ knnen 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>
	    <indexterm>
	      <primary>Subversion</primary>
	    </indexterm> um den gewnschten
	    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> aufgefhrt.</para>
	</listitem>

	<listitem>
	  <para>Lesen Sie <filename>/usr/src/Makefile</filename> sehr
	    aufmerksam bevor Sie &os.stable;
	    <indexterm>
	      <primary>-STABLE</primary>
	    </indexterm> 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 Installationsablauf, die manchmal vor der Einfhrung
	    eines neuen Releases notwendig sind, informiert zu
	    sein.</para>
	</listitem>
      </orderedlist>
    </sect2>
  </sect1>

  <sect1 xml:id="makeworld">
    <title>&os; aus den Quellen aktualisieren</title>

    <para>Das Aktualisieren von &os; aus den Quellen bietet im
      Vergleich zu binren Updates mehrere Vorteile.  Der Quellcode
      kann mit Optionen gebaut werden, um die Vorteile von
      spezifischer Hardware zu nutzen.  Teile des Basissystems knnen
      mit vernderten Einstellungen gebaut, oder falls nicht
      gewnscht, auch ganz ausgelassen werden.
      Dieser Prozess dauert zwar lnger als die Aktualisierung mit
      binren Updates, ermglicht aber eine vollstndige Anpassung, um
      eine individuelle Version von &os; zu erstellen.</para>

    <sect2 xml:id="updating-src-quick-start">
      <title>Schnellstartanleitung</title>

      <para>Diese kurze Referenz zeigt die typischen Schritte um &os;
	aus den Quellen zu aktualisieren.  Sptere Abschnitte
	beschreiben die Prozedur im Detail.</para>

      <procedure>
	<step>
	  <title>Aktualisierung und Bauprozess</title>

	  <screen>&prompt.root; <userinput>svnlite 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>mergemaster -Ui</userinput>      <co xml:id="updating-src-qs-mergemaster"/>
&prompt.root; <userinput>shutdown -r now</userinput>      <co xml:id="updating-src-qs-shutdown"/></screen>

	  <calloutlist>
	    <callout arearefs="updating-src-qs-svnup">
	      <para>Holt die neueste Version der Quellen.
		<xref linkend="updating-src-obtaining-src"/> enthlt
		weitere Informationen zum Aktualisieren und Bauen der
		Quellen.</para>
	    </callout>

	    <callout arearefs="updating-src-qs-review-updating">
	      <para><filename>/usr/src/UPDATING</filename> enthlt
		Anweisungen fr alle manuellen Schritte, die vor oder
		nach dem Bau der Quellen erforderlich sind.</para>
	    </callout>

	    <callout arearefs="updating-src-qs-cd">
	      <para>Wechsel in das Bauverzeichnis.</para>
	    </callout>

	    <callout arearefs="updating-src-qs-buildworld">
	      <para>Bau des Basissystems, mit Ausnahme des
		Kernels.</para>
	    </callout>

	    <callout arearefs="updating-src-qs-kernel">
	      <para>Bau und Installation des Kernels.  Dieser Schritt
		ist gleichbedeutend mit <command>make buildkernel
		  installkernel</command>.</para>
	    </callout>

	    <callout arearefs="updating-src-qs-installworld">
	      <para>Installation des Basissystems.</para>
	    </callout>

	    <callout arearefs="updating-src-qs-mergemaster">
	      <para>Aktualisierung und Zusammenfhrung der
		Konfigurationsdateien in
		<filename>/etc</filename>.</para>
	    </callout>

	    <callout arearefs="updating-src-qs-shutdown">
	      <para>Neustart des Systems mit dem neu erstellten
		Basissystem und Kernel.</para>
	    </callout>
	  </calloutlist>
	</step>
      </procedure>
    </sect2>

    <sect2 xml:id="updating-src-preparing">
      <title>Vorbereitungen zum Aktualisieren aus den Quellen</title>

      <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="updating-src-obtaining-src">
      <title>Den Quellcode aktualisieren</title>

      <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>svnlite info /usr/src</userinput>
Path: /usr/src
Working Copy Root Path: /usr/src
...</screen>

      <para>Dies ist ein Hinweis darauf, dass
	<filename>/usr/src/</filename> unter Versionskontrolle steht
	und mit &man.svnlite.1; aktualisiert werden kann.</para>

      <screen xml:id="synching">&prompt.root; <userinput>svnlite update /usr/src</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 nchsten
	Abschnitt beschriebene Bauprozess kann beginnen.</para>

      <note xml:id="updating-src-obtaining-src-checkout">
	<title>Beschaffung des Quellcodes</title>

	<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>

	<table xml:id="updating-src-obtaining-src-repopath">
	  <title>&os; Versionen und Repository-Pfade</title>

	  <tgroup cols="3">
	    <thead>
	      <row>
		<entry>Ausgabe von <command>uname -r</command></entry>
		<entry>Repository-Pfad</entry>
		<entry>Beschreibung</entry>
	      </row>
	    </thead>

	    <tbody>
	      <row>
		<entry><literal><replaceable>X.Y</replaceable>-RELEASE</literal></entry>
		<entry><literal>base/releng/</literal><replaceable>X.Y</replaceable></entry>
		<entry>Die Release-Version inklusive kritischer
		  Sicherheits- und Bugfix-Patches.  Dieser Zweig wird
		  fr die meisten Benutzer empfohlen.</entry>
	      </row>

	      <row xml:id="STABLE">
		<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 Binrschnittstelle
		    (<acronym>ABI</acronym>) sich nicht ndert, sodass
		    Anwendungen welche auf lteren Versionen erstellt
		    wurden weiterhin lauffhig sind.  Eine Anwendung,
		    welche fr &os;&nbsp;10.1 bersetzt wurde, luft
		    auch auf &os;&nbsp;10-STABLE.</para>

		  <para>STABLE-Zweige haben gelegentlich Fehler und
		    Inkompatibilitten, welche den Benutzer
		    beeintrchtigen knnten.  In der Regel werden
		    diese Fehler aber zgig behoben.</para>
		</entry>
	      </row>

	      <row>
		<entry><literal><replaceable>X</replaceable>-CURRENT</literal></entry>
		<entry><literal>base/head/</literal></entry>
		<entry>Die neueste unverffentlichte Version von
		  &os;.  Der CURRENT-Zweig kann viele Fehler und
		  Inkompatibilitten enthalten und wird daher nur fr
		  fortgeschrittene Benutzer empfohlen.</entry>
	      </row>
	    </tbody>
	  </tgroup>
	</table>

	<para>Ermitteln Sie mit &man.uname.1; die verwendete
	  &os;-Version:</para>

	<screen>&prompt.root; <userinput>uname -r</userinput>
10.3-RELEASE</screen>

	<para>Basierend auf <xref
	    linkend="updating-src-obtaining-src-repopath"/> ist
	  <literal>base/releng/10.3</literal> der Repository-Pfad zur
	  Aktualisierung von <literal>10.3-RELEASE</literal>.  Dieser
	  Pfad wird beim Auschecken der Quellen benutzt:</para>

	<screen>&prompt.root; <userinput>mv /usr/src /usr/src.bak</userinput>  <co xml:id="updating-src-obtaining-src-mv"/>
&prompt.root; <userinput>svnlite checkout https://svn.freebsd.org/base/<replaceable>releng/10.3</replaceable> /usr/src</userinput>  <co xml:id="updating-src-obtaining-src-checkout-cmd"/></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
	      gelscht werden.</para>
	  </callout>

	  <callout arearefs="updating-src-obtaining-src-checkout-cmd">
	    <para>Der Pfad aus <xref
		linkend="updating-src-obtaining-src-repopath"/> wird
	      der Repository-URL hinzugefgt.  Der dritte Parameter
	      ist das lokale Zielverzeichnis fr den Quellcode.</para>
	  </callout>
	</calloutlist>
      </note>
    </sect2>

    <sect2 xml:id="updating-src-building">
      <title>Den Quellcode bauen</title>

      <para>Die Welt, also das gesamte
	Basissystem mit Ausnahme des Kernels, wird zuerst
	bersetzt, um aktuelle Werkzeuge zum Erstellen des
	Kernels bereitzustellen.  Anschlieend wird der
	Kernel gebaut:</para>

      <screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make buildworld</userinput>
&prompt.root; <userinput>make buildkernel</userinput></screen>

      <para>Das Ergebnis wird in <filename>/usr/obj</filename>
	abgelegt.</para>

      <para>Dies sind die grundlegenden Schritte.  Weitere Optionen
	zur Kontrolle des Bauprozesses sind nachfolgend
	beschrieben.</para>

      <sect3 xml:id="updating-src-building-clean-build">
	<title>Umgebung fr den Bauprozess subern</title>

	<para>Einige Versionen von &os; hinterlassen bereits
	  bersetzten Code im temporren Objektverzeichnis
	  <filename>/usr/obj</filename>.  Dies kann nachfolgende
	  Bauprozesse beschleunigen, da Code, der nicht verndert
	  wurde, nicht neu bersetzt werden muss.  Um eine saubere
	  Umgebung fr den Bauprozess zu schaffen, benutzen Sie
	  <buildtarget>cleanworld</buildtarget> bevor Sie mit dem Bau
	  beginnen.</para>

	<screen>&prompt.root; <userinput>make cleanworld</userinput></screen>
      </sect3>

      <sect3 xml:id="updating-src-building-jobs">
	<title>Anzahl der Prozesse einstellen</title>

	<para>Eine hhere Anzahl an Prozessen kann die
	  Geschwindigkeit auf Mehrprozessor-Systemen verbessern.
	  Die Anzahl der Kerne lsst sich mit
	  <command>sysctl hw.cpu</command> bestimmen.  Prozessoren
	  variieren ebenso, wie die verschiedenen Build-Systeme von
	  &os;.  Sie mssen daher mehrere Versuche starten um zu
	  sehen, wie die Anzahl der Prozesse die Geschwindigkeit
	  beeinflusst.  Als Ausgangspunkt knnen Sie die halbe bis
	  doppelte Anzahl der Kerne als Wert probieren.  Die Anzahl
	  der Prozesse wird mit <option>-j</option> angegeben.</para>

	<example xml:id="updating-src-building-jobs-example">
	  <title>Die Anzahl der Prozesse erhhen</title>

	  <para>Das Basissystem und den Kernel mit vier Prozessen
	    bauen:</para>

	  <screen>&prompt.root; <userinput>make -j4 buildworld buildkernel</userinput></screen>
	</example>
      </sect3>

      <sect3 xml:id="updating-src-building-only-kernel">
	<title>Nur den Kernel erstellen</title>

	<para>Wenn sich der Quellcode verndert hat, muss ein
	  <buildtarget>buildworld</buildtarget> ausgefhrt
	  werden.  Danach kann der Kernel mit
	  <buildtarget>buildkernel</buildtarget> bersetzt
	  werden.  Um lediglich den Kernel zu bersetzen:</para>

	<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make buildkernel</userinput></screen>
      </sect3>

      <sect3 xml:id="updating-src-building-custom-kernel">
	<title>Einen angepassten Kernel erstellen</title>

	<para>Der &os; Standard-Kernel basiert auf einer
	  <emphasis>Konfigurationsdatei</emphasis> namens
	  <filename>GENERIC</filename>.  Der
	  <filename>GENERIC</filename>-Kernel enthlt die
	  gngigsten Gertetreiber und Optionen.  Manchmal ist es
	  aber sinnvoll oder gar notwendig, einen angepassten
	  Kernel zu erstellen, um Gertetreiber oder Optionen
	  hinzuzufgen oder zu entfernen, um bestimmte Anforderungen
	  zu erfllen.</para>

	<para>Zum Beispiel knnte jemand, der einen kleinen
	  eingebetteten Rechner mit eingeschrnktem
	  <acronym>RAM</acronym> entwickelt, nicht bentigte
	  Gertetreiber oder Optionen entfernen, um den Kernel etwas
	  kleiner zu machen.</para>

	<para>Die Kernelkonfigurationsdateien befinden sich in
	  <filename>/usr/src/sys/<replaceable>arch</replaceable>/conf/</filename>,
	  wobei <replaceable>arch</replaceable> die Ausgabe von
	  <command>uname -m</command> ist.  Auf den meisten Rechnern
	  ist dies <literal>amd64</literal>, demnach befinden sich die
	  Konfigurationsdateien in
	  <filename>/usr/src/sys/<replaceable>amd64</replaceable>/conf/</filename>.</para>

	<tip>
	  <para><filename>/usr/src</filename> kann aus Versehen
	    gelscht oder neu erstellt werden.  Daher ist es
	    vorzuziehen, angepasste Kernelkonfigurationsdateien in
	    einen separaten Verzeichnis, wie bspw.
	    <filename>/root</filename> zu speichern und diese in das
	    <filename>conf</filename>-Verzeichnis zu verlinken.  Wenn
	    dieses Verzeichnis gelscht oder berschrieben wird, kann
	    die Kernelkonfigurationsdatei einfach neu verknpft
	    werden.</para>
	</tip>

	<para>Eine benutzerdefinierte Konfigurationsdatei kann durch
	  Kopieren der
	  <filename>GENERIC</filename>-Konfigurationsdatei erstellt
	  werden.  In diesem Beispiel ist der neue Kernel fr einen
	  Speicherserver, heit also
	  <filename>STORAGESERVER</filename>:</para>

	<screen>&prompt.root; <userinput>cp /usr/src/sys/amd64/conf/GENERIC /root/STORAGESERVER</userinput>
&prompt.root; <userinput>cd /usr/src/sys/amd64/conf</userinput>
&prompt.root; <userinput>ln -s /root/STORAGESERVER .</userinput></screen>

	<para>Jetzt kann <filename>/root/STORAGESERVER</filename> bearbeitet
	  werden.  Die Manualpage &man.config.5; zeigt, wie Treiber
	  und Optionen hinzugefgt oder entfernt werden.</para>

	<para>Der angepasste Kernel wird mit der Variablen
	  <varname>KERNCONF</varname>, die auf die
	  Kernelkonfigurationsdatei verweist, bersetzt:</para>

	<screen>&prompt.root; <userinput>make buildkernel KERNCONF=STORAGESERVER</userinput></screen>
      </sect3>
    </sect2>

    <sect2 xml:id="updating-src-installing">
      <title>Installation des Codes</title>

      <para>Nachdem die Schritte <buildtarget>buildworld</buildtarget>
	und <buildtarget>buildkernel</buildtarget> abgeschlossen
	sind, wird der neue Kernel und die Welt installiert:</para>

      <screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make installkernel</userinput>
&prompt.root; <userinput>shutdown -r now</userinput>
&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make installworld</userinput>
&prompt.root; <userinput>shutdown -r now</userinput></screen>

      <para>Wenn ein angepasster Kernel erstellt wurde, muss
	zustzlich die Variable <varname>KERNCONF</varname> gesetzt
	werden:</para>

      <screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make installkernel KERNCONF=STORAGESERVER</userinput>
&prompt.root; <userinput>shutdown -r now</userinput>
&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make installworld</userinput>
&prompt.root; <userinput>shutdown -r now</userinput></screen>
    </sect2>

    <sect2 xml:id="updating-src-completing">
      <title>Die Aktualisierung abschlieen</title>

      <para>Ein paar abschlieende Aufgaben beenden die
	Aktualisierung.  Alle Konfigurationsdateien werden mit den
	neuen Versionen zusammengefhrt, veraltete Bibliotheken werden
	entfernt, dann wird das System neu gestartet.</para>

      <sect3 xml:id="updating-src-completing-merge-mergemaster">
	<title>Konfigurationsdateien mit
	  &man.mergemaster.8; zusammenfhren</title>

	<para>&man.mergemaster.8; bietet einen einfachen Weg, um die
	  Konfigurationsdateien des Systems mit den neuen Versionen
	  dieser Dateien zusammenzufhren.</para>

	<para>Mit der Option <option>-Ui</option> aktualisiert
	  &man.mergemaster.8; automatisch Dateien, welche nicht vom
	  Benutzer verndert wurden und installiert neue Dateien, die
	  noch nicht vorhanden sind:</para>

	<screen>&prompt.root; <userinput>mergemaster -Ui</userinput></screen>

	<para>Wenn eine Datei manuell zusammengefhrt werden muss,
	  erlaubt eine interaktive Anzeige, zu whlen, welche Teile
	  der Dateien beibehalten werden.  Die Manualpage
	  &man.mergemaster.8; enthlt weitere Informationen.</para>
      </sect3>

      <sect3 xml:id="updating-src-completing-check-old">
	<title>Veraltete Dateien und Bibliotheken entfernen</title>

	<para>Nach einer Aktualisierung knnen sich immer noch
	  veraltete Dateien und Verzeichnisse im System befinden.
	  Diese lassen sich mit folgendem Kommando auflisten:</para>

	<screen>&prompt.root; <userinput>make check-old</userinput></screen>

	<para>und lschen:</para>

	<screen>&prompt.root; <userinput>make delete-old</userinput></screen>

	<para>Einige veraltete Bibliotheken knnen ebenfalls noch
	  vorhanden sein.  Diese werden mit folgenden Kommando
	  aufgelistet:</para>

	<screen>&prompt.root; <userinput>make check-old-libs</userinput></screen>

	<para>und wie folgt gelscht:</para>

	<screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>

	<para>Programme, die diese alten Bibliotheken noch verwenden,
	  werden nicht mehr funktionieren, wenn die Bibliothek
	  gelscht wurde.  Diese Programme mssen nach dem Lschen der
	  alten Bibliotheken neu gebaut oder ersetzt werden.</para>

	<tip>
	  <para>Wenn Sie sich sicher sind, dass alle Dateien und
	    Verzeichnisse gelscht werden knnen, dann setzen Sie
	    <varname>BATCH_DELETE_OLD_FILES</varname>, um nicht jede
	    einzelne Datei mit <keycap>y</keycap> und
	    <keycap>Enter</keycap> besttigen zu mssen.
	    Zum Beispiel:</para>

	  <screen>&prompt.root; <userinput>make BATCH_DELETE_OLD_FILES=yes delete-old-libs</userinput></screen>
	</tip>
      </sect3>

      <sect3 xml:id="updating-src-completing-restart">
	<title>Neustart des Systems</title>

	<para>Zum Abschluss der Aktualisierung muss das System neu
	  gestartet werden, damit alle nderungen wirksam
	  werden:</para>

	<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
      </sect3>
    </sect2>
  </sect1>

  <sect1 xml:id="small-lan">
    <info>
      <title>Installation mehrerer Maschinen</title>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Mike</firstname>
	    <surname>Meyer</surname>
	  </personname>
	  <contrib>Beigetragen von </contrib>
	</author>
      </authorgroup>
    </info>

    <para>Wenn Sie mehrere Maschinen auf dem gleichen Stand
      halten wollen, ist es eine Verschwendung von
      Ressourcen, die Quellen auf jeder Maschine vorzuhalten und zu
      bersetzen.  Die Lsung dazu ist, eine Maschine den
      Groteil der Arbeit durchfhren zu lassen und den anderen
      Maschinen das Ergebnis mit <acronym>NFS</acronym> zur Verfgung
      zu stellen.  Dieser Abschnitt zeigt eine Methode dies zu tun.
      Weitere Informationen zu <acronym>NFS</acronym> finden Sie in
      <xref linkend="network-nfs"/>.</para>

    <para>Stellen Sie zuerst eine Liste der Maschinen zusammen, die
      auf demselben Stand sein sollen.  Wir nennen diese Maschinen die
      <firstterm>Baugruppe</firstterm>.  Jede dieser Maschinen kann
      mit einem eigenen Kernel laufen, doch sind die Programme des
      Userlands auf allen Maschinen gleich.  Whlen Sie aus der
      Baugruppe eine Maschine aus, auf der der Bau durchgefhrt wird,
      den <firstterm>Bau-Master</firstterm>.  Dies sollte eine
      Maschine sein, die ber die ntigen
      <acronym>CPU</acronym>-Ressourcen fr
      <command>make buildworld</command> und
      <command>make installworld</command> verfgt.</para>

    <para>Sie brauchen auch eine <firstterm>Testmaschine</firstterm>,
      auf der Sie die Updates testen, bevor Sie sie in Produktion
      installieren.  Dies <emphasis>muss</emphasis> eine Maschine
      sein, die ber einen lngeren Zeitraum nicht zur Verfgung
      stehen kann.</para>

    <para>Alle Maschinen der Baugruppe mssen
      <filename>/usr/obj</filename> und
      <filename>/usr/src</filename> ber <acronym>NFS</acronym> vom
      Bau-Master an gleichem Ort einhngen.  Wenn Sie mehrere
      Baugruppen haben, sollte sich <filename>/usr/src</filename>
      auf einem Bau-Master befinden und ber <acronym>NFS</acronym>
      fr den Rest der Maschinen zur Verfgung gestellt
      werden.</para>

    <para>Stellen Sie sicher, dass
      <filename>/etc/make.conf</filename> und
      <filename>/etc/src.conf</filename> 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 bentigt.  Auf dem Bau-Master mssen in
      <filename>/etc/make.conf</filename> alle zu bauenden Kernel mit
      der Variablen <varname>KERNCONF</varname> bekannt gegeben
      werden.  Geben Sie dabei den Kernel des Bau-Masters zuerst an.
      Fr jeden zu bauenden Kernel muss auf dem Bau-Master die
      entsprechende Konfigurationsdatei unter
      <filename>/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>
      abgelegt werden.</para>

    <para>Bauen Sie auf dem Bau-Master, wie in <xref
	linkend="makeworld"/> beschrieben, den Kernel und die
      Welt, installieren Sie aber nichts.  Wechseln Sie auf die
      Testmaschine und installieren Sie den gerade gebauten Kernel.
      Hngen Sie auf der Testmaschine <filename>/usr/src</filename>
      und <filename>/usr/obj</filename> ber <acronym>NFS</acronym>
      ein.  Geben Sie dann <command>shutdown now</command> ein, um
      in den Single-User-Modus zu gelangen, von wo aus Sie den neuen
      Kernel und das System installieren.  Lassen Sie anschlieend
      <command>mergemaster</command> laufen.  Wenn Sie fertig sind,
      booten Sie die Maschine wieder in den
      Mehrbenutzermodus.</para>

    <para>Nachdem Sie sichergestellt haben, dass die Testmaschine
      einwandfrei funktioniert, wiederholen Sie diese Prozedur fr
      jede Maschine in der Baugruppe.</para>

    <para>Dasselbe Verfahren knnen Sie auch fr die
      Ports-Sammlung anwenden.  Zuerst mssen alle Maschinen einer
      Baugruppe <filename>/usr/ports</filename> ber
      <acronym>NFS</acronym> zur Verfgung gestellt bekommen.
      Setzen Sie ein Verzeichnis fr die Quellen auf, das sich alle
      Maschinen teilen.  Dieses Verzeichnis knnen Sie in
      <filename>/etc/make.conf</filename> mit der Variablen
      <varname>DISTDIR</varname> angeben.  Das Verzeichnis sollte
      fr den Benutzer beschreibbar sein, auf den der Benutzer
      <systemitem class="username">root</systemitem> vom
      <acronym>NFS</acronym> Subsystem abgebildet wird.  Jede
      Maschine sollte noch <varname>WRKDIRPREFIX</varname> auf ein
      lokales Bauverzeichnis setzen.  Wenn Sie vorhaben, Pakete zu
      bauen und zu verteilen, sollten Sie
      <varname>PACKAGES</varname> auf ein Verzeichnis mit den
      gleichen Eigenschaften wie <varname>DISTDIR</varname>
      setzen.</para>
  </sect1>
</chapter>