Copyright © 2002, 2003, 2004 The FreeBSD Release Engineering Team
$FreeBSD$
FreeBSD ist ein eingetragenes Warenzeichen von Wind River Systems, Inc. Dies soll sich bald ändern.
Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime und TrueType sind eingetragene Warenzeichen von Apple Computer, Inc., in den Vereinigten Staaten und anderen Ländern.
IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390 und ThinPad sind Warenzeichen der International Business Machines Corporation in den Vereinigten Staaten, anderen Ländern oder beiden.
IEEE, POSIX und 802 sind eingetragene Warenzeichen vom Institute of Electrical and Electronics Engineers, Inc. in den Vereinigten Staaten.
Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium und Xeon sind Warenzeichen oder eingetragene Warenzeichen der Intel Corporation oder ihrer Gesellschaften in den Vereinigten Staaten und in anderen Ländern.
Microsoft, FrontPage, MS-DOS, Outlook, Windows, Windows Media und Windows NT sind entweder eingetragene Warenzeichen oder Warenzeichen der Microsoft Corporation in den Vereinigten Staaten und/oder in anderen Ländern.
Sparc, Sparc64, SPARCEngine und UltraSPARC sind Warenzeichen von SPARC International, Inc in den Vereinigten Staaten und in anderen Ländern. Produkte, die das Warenzeichen SPARC tragen, basieren auf einer von Sun Microsystems, Inc. entwickelten Architektur.
Viele Produktbezeichnungen von Herstellern und Verkäufern sind Warenzeichen. Soweit dem FreeBSD Project das Warenzeichen bekannt ist, werden die in diesem Dokument vorkommenden Bezeichnungen mit dem Symbol ``™'' oder dem Symbol ``®'' gekennzeichnet.
Dieser Leitfaden beschreibt die wesentlichen Unterschiede zwischen FreeBSD 4.X und FreeBSD 5.3-RELEASE aus Sicht eines Benutzers oder Administrators, der ein existierendes System aktualisiert. Der Leitfaden beschreibt kurz die vor und während einer Veröffentlichung ablaufenden Prozesse. Danach beschreibt er die neuen Funktionen in FreeBSD 5.X sowie Änderungen, die relevant für Benutzer sind, die bisher mit 4.X Releases gearbeitet haben. Weiterhin beschreibt der Leitfaden wie existierende Systeme mit Hilfe der Quellen oder mit Hilfe von Binärcode migriert werden. Dieses Dokument erschien vor FreeBSD 5.X unter dem Titel ``Hinweise für die ersten Anwender von FreeBSD 5.3-RELEASE''.
Mit FreeBSD 5.3-RELEASE startet eine neue Serie von ``FreeBSD-STABLE'' Releases. Diese Release und künftige Releases der 5.X-Serie sind wie die vorhergehenden 4.X-Releases für den produktiven Einsatz gedacht.
Dieser Artikel wendet sich an Benutzer, die von 4.X-Release auf 5.3-RELEASE migrieren. Zuerst wird beschrieben, wie eine neue FreeBSD-Version veröffentlicht wird. Anschließend werden einige der neuen Funktionen in FreeBSD 5.X beschrieben. Der wahrscheinlich wichtigste Abschnitt beschreibt die wesentlichen Änderungen, für Benutzer sichtbare Änderungen oder Änderungen an externen Schnittstellen. Zuletzt gibt der Artikel Hinweise, wie bestehende FreeBSD 4.X-Systeme mit Binärcode oder mit den Quellen auf FreeBSD 5.3-RELEASE migriert werden.
Das Prinzip der FreeBSD-Entwicklung ist die Verwendung mehrerer Entwicklungszweige innerhalb eines ``CVS Repository''. Der Hauptzweig wird ``CURRENT'' genannt und innerhalb des Repository mit dem symbolischen Namen HEAD referenziert. Neue Funktionen werden zunächst in diesen Zweig eingebracht. Auch wenn neue Funktionen zuerst nur in CURRENT zur Verfügung stehen, bereitet dieser Zweig von Zeit zu Zeit Kummer, während die Neuerungen getestet und ihre Fehler entfernt werden.
Wenn eine neue FreeBSD-Version veröffentlicht wird, basiert diese in der Regel auf einem der ``STABLE'' (stabil) genannten Entwicklungszweige. Neuerungen werden in diese Entwicklungszweige übernommen, nachdem sie in CURRENT getestet wurden. In den letzten zwei Jahren gab es nur einen aktiven STABLE-Entwicklungszweig: ``4-STABLE''; dieser Zweig war die Grundlage für alle 4.X Versionen. Dieser Zweig wird innerhalb des CVS Repository durch den symbolischen Namen RELENG_4 gekennzeichnet.
Die letzten beiden STABLE-Entwicklungszweige (3-STABLE und 4-STABLE) wurden sehr früh im Entwicklungsablauf (verzweigt wurde bei 3.1 und 4.0) erzeugt. Rückblickend müssen wir feststellen, daß dadurch in beiden Fällen nicht genug Zeit war, um CURRENT zu stabilisieren, bevor der neue Entwicklungszweig eingerichtet wurde. Dies führte zu unnötiger Mehrarbeit, da Fehlerkorrekturen von einem Zweig in den anderen Zweig übertragen werden mußten; außerdem kam es zu einigen Änderungen in der Architektur, die nicht in den jeweils anderen Zweig übernommen werden konnten.
Die 5.X-Releases wurden anders gehandhabt. FreeBSD 5.0, 5.1 und 5.2 wurden auf dem CURRENT-Zweig erzeugt. Das erste dieser Releases wurde nach einer Entwicklungszeit von über zwei Jahren herausgegeben (das letzte Release aus HEAD war FreeBSD 4.0 im März 2000).
Der ``5-STABLE-Zweig'' wurde im Gegensatz zu anderen ``STABLE-Zweigen'' erst ein Jahr nach dem ersten 5.X-Release im CVS mit dem Tag RELENG_5 erzeugt (während der Erstellung des 5.3 Releases). Diese Verzögerung gab den Entwicklern Zeit, Änderungen an der Architektur vorzunehmen, die Änderungen zu stabilisieren, Schnittstellen fertigzustellen und damit einen guten Ausgangspunkt für weitere 5.X-Releases zu schaffen.
Abgesehen von allgemeinen Verbesserungen und Fehlerbehebungen liegt die Priorität bei der Entwicklung des 5-STABLE-Zweiges in der Beibehaltung der Application Binary Interface (ABI) und der Kompatibilität der Application Program Interface (API). Änderungen, die die Rückwärtskompatibilität gefährden, sind mit Ausnahme von Fehlerbehebungen für kritische Fehler nicht erlaubt.
Das nächste CURRENT-Release aus dem CVS HEAD wird 6.0-RELEASE sein. Zum Zeitpunkt von 5.3-Release steht noch nicht fest, wann 6.0 veröffentlicht wird, es wird mit dem Jahr 2006 gerechnet.
Die Entwicklung des 4-STABLE-Zweiges wird begrenzt weitergeführt und es wird noch
mindestens ein Release (4.11) nach 5.3-RELEASE geben. Für besonders konservative
Anwender ist es sinnvoll, 4.X-Releases noch einige Zeit
weiter zu benutzen. Releases aus dem 4-STABLE-Zweig werden weiterhin vom Security Officer
Team <security-officer@FreeBSD.org>
unterstützt. Die Wartungsenden finden Sie auf der Seite Sicherheit des
FreeBSD-Webauftritts.
Weitere Informationen über den Ablauf bei der Veröffentlichung einer neuen FreeBSD Version finden Sie auf den Release Engineering Web pages und im Artikel FreeBSD Release Engineering.
Die Glanzpunkte von FreeBSD 5.X sind die vielen Neuerungen. Diese Neuerungen und die neue Funktionalität basieren zum größten Teil auf massiven Änderungen der Systemarchitektur, die nicht in den Entwicklungszweig 4-STABLE eingepflegt wurden. Viele in sich abgeschlossene Änderungen wie neue oder aktualisierte Gerätetreiber oder neue Benutzerprogramme wurden dagegen schon nach 4-STABLE übernommen. Die folgende Liste enthält eine kurze Übersicht über die wichtigsten Neuerungen:
SMPng: Die ``nächste Generation'' der Unterstützung für Mehrprozessorsysteme (SMP). Die Arbeit konzentriert sich zur Zeit darauf, Locks für möglichst kleine Bereiche der diversen Subsysteme des Kernels zu implementieren, damit möglichst viele Vorgänge (Threads) gleichzeitig im Kernel ablaufen können. Dabei wurde besonderes auf die Geschwindigkeit des Netzwerk-Stacks geachtet.
KSE: Die ``Kernel Scheduled Entities'' erlauben es einem Prozess, mehrere Threads auf Kernel-Ebene zu nutzen, analog zur Aktivierung via Scheduler. Die Bibliotheken libpthread und libthr erlauben auch normalen Programmen mit mehreren Threads, diese Erweiterung über die pthread(3) API zu nutzen. Die voreingestellte Thread-Library ist nun libpthread.
Neue Plattformen: Zusätzlich zu i386 und alpha werden jetzt auch amd64, ia64, pc98 und sparc64 Systeme unterstützt. An den Plattformen powerpc (läuft auf PowerPC®-basierenden Systemen von Macintosh®) und arm wird gearbeitet.
GCC: Der Compiler und die dazugehörigen Werkzeuge basieren jetzt auf GCC 3.4.X und nicht mehr auf GCC 2.95.X.
MAC: Unterstützung für erweiterbare ``Mandatory Access Control'' Regelwerke.
GEOM: Ein flexibles, modulares Gerüst zur Manipulation des Datentransfers von und zu Festplatten. Das System bietet einige Funktionen für Laufwerke: Erkennen von Partitionen, gbde(4) ein Modul zur Verschlüsselung des Festplatteninhaltes, verschiedene RAID-Level, den Export von Laufwerken (mit ggated(8) und verwandten Werkzeugen) und transparenter Dekompression von Laufwerken.
FFS: Das Dateisystem unterstützt jetzt Hintergrund- fsck(8) (um das System nach einem Absturz schneller verfügbar zu machen) sowie ``Schnappschüsse''.
UFS2: Dieses neue Dateisystem unterstützt größere Dateien und zusätzliche Dateiberechtigungen. newfs(8) erzeugt jetzt standardmäßig UFS2 Dateisysteme und auf allen Plattformen außer pc98 gilt dies auch für Dateisysteme, die mit sysinstall(8) erzeugt werden.
Neue Netzwerkfunktionen: In den 5.X-Releases wurden neue Funktionen hinzugefügt, unter anderem: Unterstützung für TCP SACK (selective acknowledgements), der pf(4) Paketfilter von OpenBSD und das ALTQ Packet Queueing System.
Neue Hardware: Es wird mehr Hardware, wie Cardbus, Bluetooth-Geräte und IEEE 802.11a/b/g Netzwerkkarten auf Basis von Atheros-Chipsätzen, unterstützt. Auf i386-Systemen können mit Hilfe des ndis(4)-Treibers einige Netzwerkkarten, für die es keinen FreeBSD-Treiber gibt, mit dem Treiber für Microsoft® Windows® benutzt werden.
Eine ausführlichere Übersicht über die Neuerungen finden Sie in den ``Release Notes'' für die verschiedenen FreeBSD 5.X Versionen.
Einige der Unterschiede zwischen FreeBSD 4.X und FreeBSD 5.X müssen besonders herausgestellt werden, das sie Änderungen der Architektur sind oder nicht rückwärtskompatibel sind. Auch wenn diese Änderungen keinen Datenverlust verursachen, können sie doch zu Verwirrung führen. Einige beachtenswerte Änderungen sind in der folgenden Liste zusammengefaßt:
Einige Teile des FreeBSD Basissystems wurden in die Ports Collection verschoben, weil sie so leichter zu warten sind oder weil sie nicht wirklich ein essentieller Bestandteil des Basissystems waren. Dazu gehört insbesondere Perl (in der Ports-Collection unter lang/perl5.8), das wegen der Lage im Basissystem Aktualisierungen des Systems erschwerte. Werkzeuge des Basissystems, die früher auf Perl angewiesen waren, wurden entweder neu geschrieben (wenn sie noch gebraucht werden) oder entfernt (weil sie überflüssig sind).
Weitere Beispiele sind UUCP (in den Ports unter net/freebsd-uucp), das Werkzeug doscmd und viele der althergebrachten Spiele (games/freebsd-games).
Durch die Änderungen in den Datenstrukturen des Kernels und der Schnittstellen für Anwendungen und Programmierer (ABI/API), mußten Treiber anderer Hersteller angepaßt werden, damit sie korrekt mit FreeBSD 5.X 5.0 zusammenarbeiten. In einigen (hoffentlich seltenen) Fällen haben sich für den Anwender sichtbare Datenstrukturen geändert, die es erfordern, Anwendungen neu zu kompilieren und/oder Ports und Pakete neu zu installieren. Wie schon in den 4.X-Releases will das FreeBSD-Entwicklerteam inkompatible Änderungen in künftigen Releases auf dem 5.X-Zweig verhindern.
Einige Teile des FreeBSD-Basissystems wurden nicht mehr gepflegt, weil es nicht genügend Anwender und/oder Entwickler gab. Diese Teile wurden entfernt. dazu zählen unter anderem die Erzeugung von Programmen im Format a.out, [1] die XNS-Netzwerkprotokolle und der Treiber für den X-10 Controller. Einige Treiber für alte ISA-Karten waren kaputt und wurden entfernt. Einzelheiten entnehmen Sie bitte den Release-Notes.
Unter FreeBSD/i386 4.X wurden ISA-Geräte in der Kernelkonfigurationsdatei konfiguriert. Die Konfiguration konnte beim Systemstart mit dem interaktiven Werkzeug UserConfig geändert werden. Unter FreeBSD 5.X wurden beide Mechanismen durch device.hints(5) ersetzt. Dadurch müssen ISA-Geräte nicht mehr fest im Kernel konfiguriert werden. Die Konfiguration von ISA-Geräten zur Zeit des Systemstarts ist nicht mehr menügeführt, sondern wird im Boot-Loader vorgenommen.
Es gibt kein MAKEDEV mehr und es wird auch nicht mehr benötigt. FreeBSD 5.X benutzt ein spezielles Dateisystem für Geräte, das die entsprechenden Gerätedateien bei Bedarf automatisch erzeugt. Gerätedateien werden mit dem Werkzeug devfs(8) oder über die Datei /etc/devfs.conf konfiguriert. Weiteres entnehmen Sie bitte der Hilfeseite devfs(5).
Alle mit newfs(8) erzeugten Dateisysteme werden standardmäßig im Format UFS2 angelegt. Dies gilt auf allen Plattformen außer pc98 auch für Dateisysteme, die mit sysinstall(8) erzeugt werden. Da FreeBSD 4.X nur UFS1 lesen kann, müssen alle Dateisysteme, die sowohl mit 4.X als auch mit 5.X nutzbar sein sollen, im Format UFS1 erzeugt werden. In newfs(8) steht dazu die Option -O1 zur Verfügung, auch sysinstall(8) enthält eine entsprechende Option. Dieser Fall tritt typischerweise auf Systemen auf, auf denen 4.X und 5.X installiert und abwechselnd betrieben werden. Bitte beachten Sie, daß es kein Programm zur Umwandlung von UFS1 nach UFS2 (oder umgekehrt) gibt, nur die Variante Backup, Formatieren, Restore.
Wegen des aktualisierten GCC Compilers müssen generell alle C++ Programme neu übersetzt und neu installiert werden. Die Ursache sind ABI-Änderungen in C++.
Es ist zwar möglich, für 4.X geschriebene Programme unter 5.X zu nutzen, allerdings muß dazu die Distribution compat4x (oder der Port misc/compat4x) installiert sein. Wenn aber einer der installierten Ports aktualisiert werden muss, empfehlen wir generell alle installierten Ports neu zu bauen und neu zu installieren. Dies verhindert Probleme mit Programmen, die gegen eine Mischung aus neuen und alten Bibliotheken gebunden sind. Das Werkzeug sysutils/portupgrade kann Ihnen bei der Neuinstallation von Ports behilflich sein.
Es gibt Ports, die nicht rückwärtskompatibel sind, beispielsweise devel/gnomevfs2, mail/postfix und security/cfs. Diese Ports müssen wegen Änderungen in der statfs-Struktur neu übersetzt werden.
Die Datei host.conf, mit der Namensdienste (Resolver) konfiguriert wurden, ist durch die (allgemeinere) Datei nsswitch.conf(5) ersetzt worden.
BIND wurde von Version 8 auf die Version 9 aktualisiert. Zwischen BIND 8 und BIND 9 gibt es viele Unterschiede. Wenn Sie named(8) produktiv einsetzen, sollten Sie die Migrationsanleitung /usr/share/doc/bind9/misc/migration lesen. Im Verzeichnis /usr/share/doc/bind9/arm befindet sich das neue Adminstrator-Handbuch. Benutzer mit bestehenden named(8)-Konfigurationen sollten das Verzeichnis /var/named vor der Migration sichern. Dies verhindert, daß Dateien vom named(8)-Startskript überschrieben werden.
Ab 5.3-RELEASE ist in FreeBSD 5.X Xorg als X-Window-System voreingestellt. Zur Zeit bleibt XFree86™ die Vorgabe für FreeBSD 4.X. Die Unterschiede zwischen beiden Versionen und eine Migrationsanleitung für bestehende Systeme beschreibt das Kapitel Das X-Window-System des Handbuchs.
Die Dokumentation (wie z.B. das FreeBSD Handbuch und der FAQ) ist teilweise noch nicht auf dem Stand von FreeBSD 5.X.
Weitere Informationen enthalten die Release-Notes der verschiedenen FreeBSD 5.X Releases und die Datei src/UPDATING im FreeBSD-Quellbaum. Beachtenswerte Änderungen der Ports-Collection werden in den Dateien ports/UPDATING und ports/CHANGES im Ports-Baum beschrieben.
Dieses Kapitel enthält Hinweise für Anwender, die ihr bestehendes FreeBSD 4.X System auf FreeBSD 5.X aktualisieren wollen. Wie bei jeder Aktualisierung ist es auf jeden Fall notwendig, vorher die Release Notes und die Errata der neuen Version zu lesen; bei Aktualisierung über den Quellcode ist src/UPDATING Pflichtlektüre.
Der einfachste Ansatz ist immer noch ``Sicherheitskopien erstellen, Platte formatieren, neues System installieren, Benutzerdaten wieder einspielen''. Dadurch werden alle Probleme mit veralteten und nicht kompatiblen Programmen und Konfigurationsdateien umgangen. Die neuen Dateisysteme können maximalen Nutzen aus den diversen Neuerungen (speziell UFS2) ziehen.
Zum gegenwärtigen Zeitpunkt ist die ``Upgrade''-Option in sysinstall(8) zur Migration auf eine neue Hauptversion unzureichend getestet. Wir raten daher dringend von der Verwendung dieser Funktion ab.
Einige Änderungen betreffen vielleicht Benutzer der FreeBSD 4.X Startmedien. Die Installationsdisketten sind (auf Plattformen, wie i386, die Disketten unterstützen) anders aufgebaut. Unter 4.X Releases enthielten die Startdisketten einen Mini-Kernel, der gerade ausreichte, um das System zu installieren. Mit dieser Aufteilung konnte der Kernel auf einer einzigen Diskette gespeichert werden, doch fehlten unter Umständen Treiber für bestimmte Hardware-Konfigurationen. Ab FreeBSD 5.3-RELEASE enthalten die Startdisketten einen GENERIC-Kernel, der über mehrere Disketten verteilt ist und mehr Treiber und mehr Funktionen enthält. Der Boot-Loader fordert das Einlegen weiterer Disketten an. Benutzer, die Installationsdisketten herunterladen (vielleicht um eine Netzwerkinstallation durchzuführen), sollten beachten, daß es jetzt drei Installationsdisketten gibt: boot.flp, kern1.flp und kern2.flp.
Bei einer Installation von CD-ROM auf einem i386™-System wird jetzt ein neues Startprogramm mit dem Namen ``no-emulation boot loader'' genutzt. Dadurch ist es unter anderem möglich, auf der CD den Standardkernel (GENERIC) statt des auf den Disketten verwendeten Mini-Kernels zu nutzen. Jedes System, das von den Installations-CDs für Microsoft Windows NT® 4.0 booten kann, sollte auch mit den FreeBSD 5.X CD-ROMs zurechtkommen.
Anmerkung: Viele Benutzer und Entwickler bevorzugen eine einfachere Art der Installation. Sichern Sie alle Daten und Konfigurationsdateien und installieren Sie das System mit Binärdateien (beispielsweise von einer CD-ROM). Spielen Sie anschließend die gesicherten Daten zurück. Verglichen mit einer Installation über den Quellcode, müssen Sie sich bei diesem Verfahren nicht um alte Dateien und Programme kümmern und Sie können neue Funktionen, wie das UFS2-Dateisystem benutzen.
Benutzer, die nicht mit der Bauprozedur (buildworld/installworld) vertraut sind, sollten nicht mit dem Quellcode aktualisieren und stattdessen nach einer Datensicherung mit Binärdateien installieren.
Eine Aktualisierung mit Quellcode baut und installiert Binärdateien aus lokal auf der Maschine liegenden Quellcode. Die Aktualisierung beruht auf der buildworld/installworld Prozedur, die von erfahrenen Benutzern verwendet wird, um Änderungen in einem Entwicklungszweig (wie FreeBSD-STABLE oder FreeBSD-CURRENT) zu verfolgen. Allgemein ist diese Prozedur aufwendiger als die Installation mit Binärdateien, sie kann aber nützlich sein, wenn die Systemkonfiguration komplex oder stark angepaßt ist. Eine Aktualisierung mit Quellcode ist auch nützlich für ein entferntes System, auf das der Administrator keinen Zugriff hat und daher auch keine Installationsmedien einlegen kann.
Es ist auf jeden Fall erforderlich, vor der Aktualisierung src/UPDATING zu lesen. Der Abschnitt ``To upgrade in-place from 4.x-stable to current'' enthält eine Schritt-für-Schritt Anleitung, der Sie unbedingt folgen müssen, die Nutzung der üblichen ``Abkürzungen'' ist nicht möglich. Die folgende Liste beschreibt und kommentiert die nötigen Schritte:
Sichern Sie Ihre Daten.
Die Wichtigkeit dieses Schrittes kann nicht oft genug betont werden. Es ist wichtig, Sicherungen von allen Benutzerdaten und Konfigurationsdateien zu erstellen. Volle Sicherungen (Level 0) mit dump(8) sind dafür geeignet, es gibt allerdings auch andere Möglichkeiten.
Stellen Sie sicher, daß im /-Dateisystem ungefähr 30 MB frei sind.
FreeBSD 5.X benötigt mehr Platz als FreeBSD 4.X. Wenn das Verzeichnis /tmp im /-Dateisystem liegt (was oft der Fall ist), können Sie Platz schaffen, indem Sie alle Dateien in diesem Verzeichnis löschen.
Wenn nötig, editieren Sie /etc/fstab.
Dieser Punkt betrifft wahrscheinlich nur ältere FreeBSD/i386 Systeme. Auf Systemen, die Disk-Slices mit MBRs besitzen, unterstützte FreeBSD sogenannte ``compatibility slices''. Der Name dieser Slices war etwa /dev/ad0a (ohne ausdrücklich die Slice zu benennen). Diese Slices werden nicht mehr unterstützt. Slices müssen Namen wie /dev/ad0s1a tragen. Der Name muss das Laufwerk, die Nummer der Slice und den Buchstaben der Partition enthalten.
Beachten Sie, daß ``compatibility slices'' seit FreeBSD 2.2.6-RELEASE nicht mehr benutzt werden. Ignorieren Sie diesen Punkt wenn Sie FreeBSD/alpha Systeme oder Systeme mit ``dangerously dediated'' Platten benutzen.
Besorgen Sie sich, beispielsweise mit CVS, eine Kopie der Quellen des Basissystems (das Modul src/). Mit CVS benutzen Sie für FreeBSD 5.3-RELEASE das Tag RELENG_5_3_0_RELEASE, für den 5.3-Zweig (in dem Fehlerbehebungen stattfinden) nehmen Sie das Tag RELENG_5_3. Wenn Sie den 5-STABLE-Zweig verfolgen wollen, verwenden Sie das Tag RELENG_5. Falls Sie die Quellen mit CVS auschecken, vergessen Sie nicht die Option -P anzugeben, damit CVS leere Verzeichnisse entfernt.
FreeBSD 5.X benötigt einige neue Einträge in der Paßwort- und Gruppendatei. Erzeugen Sie diese Einträge mit Hilfe des nachstehenden Kommandos:
# mergemaster -p
Dieser Schritt muß ausgeführt werden, damit neue Dateien dem richtigen Benutzerkonto und der richtigen Gruppe gehören.
Beachten Sie, daß in FreeBSD 5.X das Werkzeug nologin(8) von /sbin/nologin nach /usr/sbin/nologin verschoben wurde. Die Login-Shell einiger Pseudo-Benutzer ist nologin(8) daher entstehen weitere Unterschiede in /etc/passwd.
Bauen Sie mit dem nachstehenden Kommando die Benutzerwerkzeuge (Userland):
# cd /usr/src # make buildworld
Wenn die Variable CPUTYPE in /etc/make.conf definiert wird, sollte sie mit Operator ?= definiert werden. Damit kann der buildworld-Prozeß, falls es nötig sein sollte, die Variable überschreiben.
Beachten Sie, daß MAKEOBJDIRPREFIX nicht in /etc/make.conf definiert werden darf.
Allgemein sollten die meisten der Bauoptionen in /etc/make.conf auskommentiert oder entfernt sein. Besonders gilt das für Optionen, die direkt Bau- oder Basisfunktionen des Systems beeinflussen (wie NO_TOOLCHAIN).
Bauen und installieren Sie einen neuen Kernel:
# make buildkernel
Das make(1)-Ziel buildkernel muß verwendet werden, damit der neue Kernel mit den im vorigen Schritt (buildworld) erzeugten Benutzerwerkzeugen gebaut wird. Sie können die Bauumgebung nicht manuell mit dem Werkzeug config(8) erzeugen.
Auch wenn es praktisch ist, in diesem Schritt einen angepaßten Kernel zu erzeugen, sollten Sie das System mit einem GENERIC-Kernel aktualisieren. Diese Vorgehensweise ist weniger fehleranfällig. Wenn Sie das erste Mal einen angepaßten Kernel erstellen, benutzen Sie bitte den GENERIC-Kernel von FreeBSD 5.X als Vorlage, da viele Treiber und Optionen neu sind oder sich geändert haben. Auf jeden Fall sollten Sie die Option COMPAT_FREEBSD4 in die Kernelkonfiguration aufnehmen, da die Option Voraussetzung für eine erfolgreiche Aktualisierung ist.
Erzeugen Sie mit einer Variante des folgenden Kommandos für ISA-Geräte die Datei device.hints. Setzen Sie für MACHINE den Namen der passenden Architektur (beispielsweise i386) ein.
# cp sys/MACHINE/conf/GENERIC.hints /boot/device.hints
Mit moderner Hardware kann die Datei device.hints leer sein. Auf Systemen mit non-PNP ISA-Karten (hier muß die Datei angepaßt werden), Systemen ohne PNPBIOS oder PNPBIOS-Systemen, die mit Disketten gestartet werden, ist die Datei zwingend erforderlich.
Installieren Sie den neuen Kernel:
# make installkernel
Unter FreeBSD 4.X wurde der Kernel in /kernel installiert. Unter FreeBSD 5.X wird der Kernel nach /boot/kernel/kernel installiert. Kernelmodule wurden unter FreeBSD 4.X in das Verzeichnis /modules installiert, unter FreeBSD 5.X werden die Module in das Verzeichnis /boot/kernel installiert.
Installieren Sie den FreeBSD 5.X Boot-Loader:
# cd /usr/src/sys/boot # make STRIP="" install
Wir empfehlen diesen Schritt, obwohl er optional ist, auszuführen.
Deaktivieren Sie Module Dritter (wie die für VMware). Dies verhindert Abstürze auf Grund geänderter Kernel-ABIs oder anderen Inkompatibilitäten.
Booten Sie das System in den Einbenutzermodus. Sie müssen das System in diesem Schritt wirklich neu starten, da der neue Kernel laufen muß, um die Benutzerwerkzeuge zu installieren. Da nur die erforderlichen Prozesse laufen, verringert der Einbenutzermodus wirksam das Auftreten unerwarteter Ereignisse.
Hängen Sie die erforderlichen Dateisysteme ein:
# fsck -p # mount -uw / # mount -at ufs
Das Kommando fsck(8) ist erforderlich, damit einige Felder im Superblock der Dateisysteme auf FreeBSD 5.X angepaßt werden. Wenn die Systemzeit die lokale Zeit anstelle von UTC verwendet, führen Sie auch noch den nachstehenden Befehl aus:
# adjkerntz -i
In diesem Schritt kann die folgende Meldung mehrmals auf der Systemkonsole erscheinen:
WARNING: userland calling deprecated sysctl, please rebuild world
Ignorieren Sie diese Meldung.
Löschen Sie die C++ Header-Dateien:
# rm -rf /usr/include/g++
Dieser Schritt verhindert, daß bei künftigen Compiler-Läufen alte Header vom GCC 2.95 C++ Compiler angezogen werden.
Installieren Sie die Benutzerwerkzeuge (Userland):
# cd /usr/src # make installworld
Auf Systemen, die named(8) verwenden, müssen die named(8)-Konfigurationsdateien in die chroot(8)-Umgebung im Verzeichnis /var/named geschoben werden. Befinden sich im Verzeichnis /var/named schon Dateien, sollten Sie diese jetzt sichern.
# cd /etc # mv named named.bak # mkdir -p /var/named/etc/namedb # cp -Rp named.bak/* /var/named/etc/namedb
Falls die Konfiguration die erzeugten Dateien für localhost verwendet, generieren Sie die Dateien mit den nachstehenden Kommandos neu:
# cd /var/named/etc/namedb # /bin/sh make-localhost # rm -f localhost-v6.rev localhost.rev
Aktualisieren Sie die Konfigurationsdateien des Systems:
# mergemaster -i
Dieser Schritt ist zwingend erforderlich. Der Schritt gewährleistet, daß die Start- und Konfigurationsdateien im Verzeichnis /etc zu dem frisch installierten System passen.
Nach dem Lauf von mergemaster(8) sollten Sie die Datei /etc/rc.conf untersuchen und möglicherweise anpassen. Die Vorgabewerte einiger Variablen haben sich geändert, insbesondere wurden einige Dienste, die in 4.X aktiviert waren, in 5.X deaktiviert.
Entfernen Sie übrig gebliebene Dateien von BIND 8:
# rm /usr/bin/dnskeygen /usr/bin/dnsquery # rm /usr/libexec/named-xfer # rm /usr/sbin/named.restart /usr/sbin/ndc
Starten Sie das System neu.
Nachdem Sie das Basissystem migriert haben, müssen Sie noch einige Komponenten, die nicht zum Basissystem gehören, aktualisieren. Perl ist nicht mehr Teil des Basissystems und sollte aus der Ports-Collection (der Port lang/perl5.8) oder als Paket nachinstalliert werden. Danach müssen alle Ports oder Pakete, die von Perl abhängen, neu installiert werden.
Wenn Sie FreeBSD 4.X Programme laufen lassen wollen, benötigen Sie Kompatibilitätsbibliotheken. Diese können Sie mit dem Port oder Paket misc/compat4x installieren.
Wie oben erwähnt, wird Xorg in der Voreinstellung als X-Window-System verwendet. Die Ports und Pakete beachten diese Änderung, um Abhängigkeiten zwischen Software zu bestimmen. Die Migration von XFree86 auf Xorg beschreibt das Handbuchkapitel X11 installieren.
Dieser Artikel beschreibt einige der beachtenswerten Funktionen von FreeBSD 5.X und bespricht wichtige Punkte für Benutzer von FreeBSD 4.X, die bestehende Systeme aktualisieren wollen. Der Artikel beschreibt weiterhin zwei Methoden ein System zu aktualisieren. Die erste Methode benutzt Binärdateien von einem Installationsmedium, die zweite Methode übersetzt den Quellcode des Basissystems.
[1] |
Das Ausführen von a.out-Programmen ist weiterhin mit der Kerneloption COMPAT_AOUT möglich. Einige Compiler aus der Ports-Collection (beispielsweise lang/gcc28) können auch noch a.out-Programme erzeugen. |
Diese Datei und andere Dokumente zu dieser Version sind bei ftp://ftp.FreeBSD.org/verfuegbar.
Wenn Sie Fragen zu FreeBSD haben, lesen Sie erst die Dokumentation, bevor Sie sich an <de-bsd-questions@de.FreeBSD.org> wenden.
Alle Anwender von FreeBSD 5-STABLE sollten sich in die Mailingliste <stable@FreeBSD.org> eintragen.
Wenn Sie Fragen zu dieser Dokumentation haben, wenden Sie sich an <de-bsd-translators@de.FreeBSD.org>.