1.82. make world
Diese Anleitung soll erläutern, wie man das Betriebssystem aktualisiert. Dies wird im FreeBSD-Handbuch und in der Datei /usr/src/UPDATING genau beschrieben.
Wichtig
Besonders wichtig sind die letzten Seiten der Datei /usr/src/UPDATING, da je nach altem und neuem Betriebssystem verschiedene Schritte notwendig sind!
Die Angaben in der /usr/src/UPDATING sind den abweichenden Angaben in dieser Anleitung oder den abweichenden Angaben im FreeBSD-Handbuch unbedingt vorzuziehen!
Für alle hier notwendigen Aktionen wird die root-Permission vorausgesetzt!
1.82.1. Vorbereitungen
Den Betriebssystem-Quellcode aktualisiert man mit csup
, welches ab
FreeBSD 6.2 im Basissystem integriert ist. Wird ein älteres
Betriebssystem einsetzt, muß csup
als Package installiert werden:
# pkg_add -r csup
Wenn csup nicht als Package verfügbar ist, müssen Sie auf CVSup ausweichen (pkg_add -r cvsup-without-gui).
Da csup mit csvup kompatibel ist, erscheinen im Folgenden u.U. cvsup-Angaben.
Der Betriebssystem-Quellcode befindet sich üblicherweise im Verzeichnis /usr/src. Bevor wir csup einsetzen können, muss noch die Konfigurationsdatei mit den Einstellungen für die Aktualisierung des Verzeichnis /usr/src erstellt werden.
# cp /usr/share/examples/cvsup/standard-supfile /etc/source-supfile
in der Datei /etc/source-supfile die Zeile:
*default host=CHANGE_THIS.FreeBSD.org
ändern auf ('at
‘ für austria kann z.B. durch 'de
‘ für einen
deutschen Server ersetzt werden, die 2 ist eine fortlaufende Nummer und
kann variieren):
*default host=cvsup2.at.FreeBSD.org
Mit der „tag“-Zeile wird die gewünschte Betriebssystemversion angegeben.
Auf http://www.freebsd.org werden die [http://www.freebsd.org/releases/ aktuelle(n) Betriebssystemversion(en)] aufgelistet. Am 13.5.2006 wurde FreeBSD 6.1:
*default release=cvs tag=RELENG_6_1
und FreeBSD 5.4 empfohlen:
*default release=cvs tag=RELENG_5_4
Jetzt ist die cvsup-Konfiguration abgeschlossen. Das Verzeichnis /usr/src wird mit:
# csup /etc/source-supfile
aktualisiert.
1.82.2. Hinweise zur Betriebssystem-Versionswahl
Bei allgemeinen Verständnisfragen zu den verschiedenen FreeBSD-Versionen siehe bitte: FreeBSD - FAQ
1.82.2.1. Entwicklungsversionen
Die Verwendung von Nicht-Release-Betriebssystemversionen (STABLE, CURRENT) wird nicht empfohlen! Für STABLE und CURRENT siehe bitte: http://www.freebsd.ch/doc/de_DE.ISO8859-1/books/handbook/current-stable.html FreeBSD Handbuch: CURRENT / STABLE
1.82.2.2. Versionsübersicht
Eine Übersicht über alle möglichen, verwendbaren Betriebssystemversionen findet man unter: FreeBSD Handbuch: CVS Tags
1.82.3. Betriebssystem aktualisieren
1.82.4. Einleitung
Die Anleitung orientiert sich an den Angaben in der Datei <tt>/usr/src/UPDATING</tt> für einen „kleinen“ Betriebssystemwechsel, zum Beispiel FreeBSD 6.0 -> 6.1. Für grosse Betriebssystemwechsel, also FreeBSD 5.xy auf FreeBSD 6.xy, sind von dieser Anleitung abweichende Schritte notwendig. Unbedingt in <tt>/usr/src/UPDATING</tt> nachschlagen!
1.82.4.1. Backup
'make sure you have good level 0 dumps
‘
Als erstes ist erstmal ein Backup angesagt, denn bei der Betriebssystem-Aktualisierung kann man die FreeBSD-Installation wirklich zerstören! Eine gute Backup-Anleitung findet man unter: Backup
1.82.4.2. /usr/obj entfernen
Das Entfernen von /usr/obj beschleunigt den make buildworld
Prozess
und erspart einem Ärger mit Abhängigkeiten:
# cd /usr/obj
# chflags -R noschg \* # rm -rf \*
1.82.4.3. make buildworld
Man starte die Betriebssystem-Kompilierung mit:
# cd /usr/src
# make buildworld
Die Betriebssystem-Kompilierung dauert etwa zwischen 30 und 60 Minuten, je nach Leistingsfähigkeit des PCs!
1.82.4.4. make kernel
Als nächstes muss der Kernel neugebaut werden. Dies dauert etwa 15 Minuten. GENERIC-Kernelbenutzer geben folgendes ein:
# cd /usr/src
# make buildkernel
# make installkernel
Benutzer eines angepassten Kernels gehen bitte nach der Anleitung unter Kernel erstellen (FreeBSD) vor.
1.82.4.5. Single-Usermode starten
Bemerkung
Sollte man /usr per geli oder gbde verschlüsselt haben sollte man jetzt
nicht neustarten. In diesem Fall können dann nämlich Userland und
Kernelteile der Verschlüsselung „out-of-sync“ werden, welches ein
entschlüsseln und einbinden von /usr verhindert, welches wiederum das make
installworld
verhindert.
'reboot in single user
‘
Starten Sie den Computer im Single-Usermode und hängen Sie die Partitionen mit Lese-/Schreibzugriff ein, wie im Kapitel 19.4.5 des FreeBSD-Handbuchs beschrieben wird: [http://www.freebsd.ch/doc/de_DE.ISO8859-1/books/handbook/makeworld.html FreeBSD Handbuch: Make world]
Kurzgefasst:
# shutdown -r now
Nach dem Hochfahren den Single-Usermode wählen (# boot -s).
# /sbin/fsck -p
# /sbin/mount -u /
# /sbin/mount -a -t ufs
# /sbin/swapon -a
Warnung
/tmp darf nicht mit der Option „noexec“ (in /etc/fstab) eingebunden werden!!
Bemerkung
Zeigt date
(1) die falsche Zeit und eine falsche Zeitzone an, kann das
mit dem Kommando tzsetup
(8) korrigiert werden. Viele Dienste
funktionieren später nur dann korrekt, wenn die Zeit richtig eingestellt
ist.
Jetzt ist man nur noch etwa 20 Minuten vom Starten des neuen Betriebssystems entfernt!
1.82.4.6. Betriebssystem-Installationsvorbereitungen
Vor der Betriebssysteminstallation müssen noch einige Vorbereitungen getroffen werden:
# /usr/sbin/mergemaster -p
1.82.4.7. make installworld
Jetzt kann es losgehen mit der Installation der neuen Betriebssystemdateien:
# cd /usr/src
# make installworld
1.82.5. mergemaster
# /usr/sbin/mergemaster -i
Mit mergemaster werden die alten, bereits bestehenden Konfigurationsdateien mit den Vorgaben des neuinstallierten Betriebssystems abgeglichen.
Bemerkung
Beim Einsatz von mergemaster ist Vorsicht geboten!
Mergemaster vergleicht die alten Konfigurationsdateien mit den neuen Vorgaben. Und fragt bei Änderungen , ob es die alte Konfigurationsdatei durch die neue Vorgabe austauschen soll. Dadurch können bei falscher Wahl Einstellungen verloren gehen!
1.82.6. Betriebssystem-Aktualisierung abschliessen
# /sbin/reboot
Nach Abschluss der mergemaster-Arbeiten startet man den Computer neu. Aus eigener Erfahrung wird empfohlen, nochmals in den Single-Usermode zu starten und folgende Kontroll-/Aufräumarbeiten durchzuführen:
# /sbin/fsck
# /sbin/mount -u /
# /sbin/mount -a -t ufs
# cd /usr/src
# make clean
1.82.6.1. Abschluss
Nachdem man auch dies geschafft hat, kann man die neue Betriebssystemversion nach dem Drücken von: <Ctrl-D> geniessen!
1.82.7. Betriebssystem-Sicherheitslücken
Betriebssystem-Sicherheitslücken sollten Sie so rasch wie möglich schliessen. Den Stand der installierte Sicherheitslücken-„Flicker“ (engl. Patches) erkennen Sie mit dem Befehl:
# uname -r 6.0-RELEASE-p5
Das Beispiel ist die Release-Version von FreeBSD 6.0 (6.0-RELEASE) mit dem Patch-Level 5 (-p5). Der Patch-Level sagt aus, wieviele Patches für die verwendete Release-Version eingespielt sind. Im Beispiel sind es fünf Patches.
Eine Übersicht und mehr Informationen zu den bekannten Betriebssystem-Sicherheitslücken finden Sie unter:
http://www.freebsd.org/ -> rechts unten
http://www.de.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/security-advisories.html
1.82.7.1. freebsd-update
Das im Port security/freebsd-update enthaltene Programm freebsd-update ermöglicht eine halbautomatische Einspielen von Betriebssystem-Sicherheitslücken-„Flicker“, vergleichbar mit dem Dienst „Windows Update“ der Microsoft-Betriebssysteme. Für Informationen zu freebsd-update sehen Sie bitte:
Bemerkung
freebsd-update
kann nur mit dem originalen GENERIC- oder SMP-Kernel
verwendet werden!
1.82.7.2. Installation
FreeBSD-update wird mit: pkg_add -r freebsd-update installiert. Ab FreeBSD 6.2 ist freebsd-update Teil des Betriebssystems und muss nicht mehr zusätzlich installiert werden!
1.82.7.3. Anwendung
Nun sollen die Betriebssystemlöcher gesucht und gestopft werden (falls möglich):
# freebsd-update fetch
# freebsd-update install
Jetzt noch Neustarten und schon sollten alle bisher bekannten Betriebssystem-Sicherheitslücken geschlossen sein, falls eine Release-Betriebssystemversion verwendet wird, keine Stack Protection aktiviert ist und nur der GENERIC-Kernel verwendet wird!
Kontrollieren Sie nach dem Neustart den Patchlevel:
# uname -r 6.2-RELEASE-p2
Benutzer von Multiprozessoren-Systemen können auch von freebsd-update profitieren: FreeBSD-Security: 2005-June/002975
1.82.7.4. Problemfälle
Es kann vorkommen, dass sich freebsd-update weigert, ein Sicherheitsupdate einzuspielen. Es weichen einige lokale Dateien von den originalen Release-Dateien ab. Wenn Sie sich ganz sicher sind, dass Sie den GENERIC-Kernel verwenden und keine „make world“-Spezialoptionen in /etc/make.conf gesetzt haben, so können Sie freebsd-update zur Installation des Sicherheitsupdates zwingen. Dabei werden die vom Sicherheitsloch betroffenen Dateien ohne Vorbehalt überschrieben:
freebsd-update –branch crypto fetch freebsd-update install
Setzen Sie die Option "--branch crypto" nur im Problemfall ein!
Für mehr Informationen zur Option „–branch crypto“ siehe bitte:
freebsd-update
und FreeBSD-Questions:
2005-June/091380
1.82.8. Make World
Sie können freebsd-update aus einem der obengenannten Gründen nicht
einsetzen, was nun? Ihnen bleibt nicht anderes übrig, als mit csup
die mit dem entsprechenden Patch versehenen Betriebssystem-Quellcode
herunterzuladen und das Betriebssystem zu aktualisieren:
# csup -g /etc/source-supfile
Kontrollieren Sie, ob der Betriebssystem-Quellcode unter /usr/src
auch den Patch enthält more /usr/src/UPDATING
sollte mit dem
entsprechenden Patch-Eintrag versehen sein. Zum Beispiel:
20051215:
The setkey(8) utility was moved from /usr/sbin/setkey to /sbin/setkey.
You may want to update scripts which depend on its location.
20051108:
rp(4)'s device files now contain the unit number.
Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
20051101:
FreeBSD 6.0-RELEASE
Aktualisieren Sie das Betriebssystem wie im Kapitel: FreeBSD - Make World: Betriebssystem aktualisieren beschrieben!
Unter BSD-Hacks-Kapitel 67 wird eine Lösung vorgestellt, welche die obengenannten Schritte automatisch ausführt.
1.82.9. Siehe auch
http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/cvsup.html
http://www.onlamp.com/lpt/a/6543 - Make world bei vielen Rechnern lässt sich stark beschleunigen durch ein „FreeBSD Build System“
http://www.daemonology.net/freebsd-upgrade-6.0-to-6.1/ - Binären Upgrade durchführen
Zuletzt geändert: 2023-07-22