[3.4 -> 3.5] | [3.5 -> 3.6] | [3.6 -> 3.7] | [3.7 -> 3.8] | [3.9 -> 4.0] | [FAQ-Index]
Es wird dringend dazu geraten, diesen Prozess zu lesen und voll und ganz zu verstehen, bevor du ihn durchführst. Wenn du das hier beschriebene auf einer wichtigen oder physikalisch entfernten Maschine machst, solltest du diesen Prozess erst auf einer identischen lokalen Maschinen versuchen, um sicherzustellen, dass alles funktioniert, bevor du dich an die wichtige oder entfernte Maschine wagst.
Upgrading ist ein bequemer Weg, um dein OpenBSD-System auf die aktuellste Version zu bringen. Jedoch sind die Ergebnisse nicht beabsichtigt, genau so zu sein wie eine Installation, bei der alles gelöscht und wieder aufgespielt wird. Insbesondere alte Bibliotheksdateien werden beim Upgradeprozess nicht deinstalliert, da sie von alten Applikationen, die vielleicht später noch aktualisiert werden, noch benötigt werden könnten. Wenn du WIRKLICH all diese alten Dateien loswerden möchtest, wärst du mit einer völligen Neuinstallation vermutlich besser dran.
Inhaltsverzeichnis:
Aufgrund zusätzlicher Debuggingsymbole sind die Bibliotheksdateien erheblich größer geworden. Auf der i386-Plattform zum Beispiel nahm der benötigte Platz des /usr/lib-Verzeichnisses von 47,7 MB (3.8) auf 209 MB (3.9) zu. Stelle sicher, dass du genügend freien Speicher hast, bevor du mit dem Upgrade beginnst.
Überprüfe, ob du irgendwelche Modifikationen an deinem Kernel vorgenommen hast. Zum Beispiel könntest du dein Netzwerkdevice mittels config(8) geändert haben, um eine nicht standardmäßige Einstellung verwenden zu können. Schreib die Änderungen auf, sodass du sie ebenfalls auf den neuen 3.9-Kernel anwenden kannst.
pfsync(4) verwendet nun ein neues Format - »keep state« funktioniert zwischen 3.8- und 3.9-Systemen nicht. Alle Verbindungen von nicht zutreffenden Systemen werden beendet, wenn du den Master umstellst, da States zwischen den Systemen nicht ausgetauscht werden. Du kannst die Auswirkung hiervon minimieren, indem du erst deine Backupsysteme upgradest, sodass nur ein einziges Mal aktive States verloren gehen.
Benutzer von carp(4), die einem einzelnen carp(4)-Interface mehr als eine Adresse zugewiesen haben, werden ein weiteres Problem während dem Upgrade feststellen: Interfaces werden nun nach Adresse sortiert, sodass es nicht mehr so wichtig wie bisher ist, Aliases in der exakt gleichen Reihenfolge zu haben. Das heißt jedoch, dass es eventuell Probleme zwischen alten und neuen Systemen geben wird. Du kannst die Aliases auf den alten Systemen notfalls manuell sortieren, wenn du dieses mögliche Problem auf jeden Fall umgehen willst.
ftp-proxy(8) wurde geändert (mehr Details weiter unten), deine pf.conf(5)-Datei muss eventuell aktualisiert werden.
ancontrol(8) wurde mit einer weiteren Funktion in ifconfig(8) ersetzt. Dies könnte Auswirkungen darauf haben, wie du deine Drahtlosinterfaces konfigurierst.
Manchmal muss man ein Upgrade einer Maschine durchführen, wenn man nicht auf einfache Weise den normalen Upgradeprozess durchführen kann. Man kann dies normalerweise durchführen, indem man vorsichtig einen Prozess befolgt, der einem source-basierten Upgrade sehr ähnlich ist:
export RELEASEPATH=/DeinPfad
cd ${RELEASEPATH}
rm /obsd ; ln /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd
cp bsd.rd bsd.mp /
Achte auf die zusätzlichen Schritte, um den primären Kernel zu
kopieren: Diese werden durchgeführt, um zu gewährleisten, dass immer
eine funktionsfähige Kopie des Kernels auf der Platte ist, sodass das
System booten kann, falls ein Stromausfall oder ein Systemabsturz zu
sehr ungüstiger Zeit eintreten.
cd /
tar xzpf ${RELEASEPATH}/base39.tgz "*etc/firmware/*"
export RELEASEPATH=/yourpath
cd /
tar xzpf ${RELEASEPATH}/base39.tgz
tar xzpf ${RELEASEPATH}/comp39.tgz
tar xzpf ${RELEASEPATH}/game39.tgz
tar xzpf ${RELEASEPATH}/man39.tgz
tar xzpf ${RELEASEPATH}/misc39.tgz
tar xzpf ${RELEASEPATH}/xbase39.tgz
tar xzpf ${RELEASEPATH}/xfont39.tgz
tar xzpf ${RELEASEPATH}/xserv39.tgz
tar xzpf ${RELEASEPATH}/xshare39.tgz
Hinweis: Nicht alle Dateisets müssen für alle Einsatzgebiete
installiert werden, wenn du jedoch ein Dateiset ursprünglich installiert
hast, solltest du es jetzt doch mit einem neuen Dateiset upgraden.
Hinweis: Die Dateien in /etc werden weiter unten getrennt behandelt, sodass etc39.tgz und xetc39.tgz an dieser Stelle NICHT entpackt werden.
cd /dev
./MAKEDEV all
Nov 1 12:47:05 puffy sm-mta[16733]: filesys_update failed: No such file or dire
ctory, fs=., avail=-1, blocksize=380204
Diese Nachrichten können unbesorgt ignoriert werden, du könntest aber
auch sendmail(8) während dem Upgradeprozess beenden.
echo 'ftpproxy_flags=""' >> /etc/rc.conf.local
Der neue Proxy verwendet Anker, um Datenverbindungen zuzulassen. Das bedeutet, dass deine bestehende /etc/pf.conf dementsprechend angepasst werden muss. In der NAT-Sektion musst du Folgendes einfügen:
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
Diese Einträge sind zwingend, selbst wenn du sonst kein NAT
verwendest. Die folgende Regel, die vermutlich schon für den alten
ftp-proxy angelegt wurde, muss bleiben:
rdr pass on $int_if proto tcp from $lan to any port 21 -> \
127.0.0.1 port 8021
In der Regelsektion wird Folgendes benötigt:
anchor "ftp-proxy/*"
Regeln, die FTP-Kontrollverbindungen
(Zielport 21/tcp) für den Proxy durchlassen, müssen bleiben.
Regeln, die FTP-Datenverbindungen durchlassen, werden nicht länger
benötigt. Diese Regeln könnten »user proxy« oder »to port > 49151«
enthalten.
Es wurde darauf geachtet, dass die Kommandozeilenoptionen so ähnlich
wie möglich blieben, doch einige unterscheiden sich. Wirf einen Blick
auf die
ftp-proxy(8)-Manualseite.
Ein Spezialfall sollte noch erwähnt werden: Wenn du alte Clients hast, die auf Datenverbindungen im aktiven Modus angewiesen sind (diese verwenden 20/tcp als Quellport), musst du die Option »-r« verwenden (beim alten Proxy »-u root«).
Führe ftp-proxy mit »-d -D7« aus, wenn du Probleme feststellst und herausfinden möchtest, wo der Fehler liegt.
cd /tmp
tar xzpf ${RELEASEPATH}/etc39.tgz
Dateien, die ordnungsgemäß von etc39.tgz »so wie sie sind«
kopiert werden können:
daily
ipsec.conf
magic
monthly
netstart
rc
security
services
weekly
mtree/*
Bedenke, dass es möglich IST, all diese Dateien lokal zu modifizieren.
Solltest du sie also modifiziert haben, musst du sie manuell anpassen.
Hier sind Copy&Paste-Zeilen, um diese Dateien zu kopieren,
angenommen, dass du etc39.tgz in dem zuvor empfohlenen
Verzeichnis abgelegt hast:
cd /tmp/etc
cp daily ipsec.conf magic monthly netstart rc security services weekly /etc
cp mtree/* /etc/mtree/
Dateien, die per Hand angepasst werden müssen, sodass alle lokalen Änderungen beibehalten werden (falls sie vom Original abweichen) - ansonsten kannst du sie auch einfach kopieren:
changelist
inetd.conf
lynx.cfg
rc.conf
ssh/ssh_config
ssh/sshd_config
sysctl.conf
Die Änderungen dieser Dateien befinden sich in
dieser Patchdatei. Du kannst
versuchen, sie zu verwenden, indem du das Folgende als root ausführst:
cd /
patch -C -p0 < upgrade39.patch
Hiermit wird geprüft, wie gut der Patch sich in DEIN System einbinden
lässt. Um ihn tatsächlich einzubinden, lass die Option -C weg.
Beachte, dass es sehr wahrscheinlich ist, dass wenn du diese Dateien
modifiziert, nicht immer auf dem aktuellsten Stand gehalten hast oder
von einem Snapshot von 3.8 aus upgradest, dieser Patch nicht richtig
angewandt werden kann.
In diesen Fällen musst du die Änderungen manuell vornehmen.
Teste diesen Prozess bitte, bevor du dich darauf verlässt, dass alles
funktioniert, wenn du ihn an einem schwer zu erreichenden System
anwendest.
Die folgenden Dateien haben Änderungen erfahren, die du dir genauer ansehen solltest, da sie sehr wahrscheinlich nicht direkt kopiert oder eingepflegt werden können (d. h. wenn du pf.conf verwendest, dann solltest du dir die empfohlene Änderung der Sicherheitsrichtlinie angucken und für dich selbst entscheiden, ob sie für deine Anwendungen eingesetzt werden kann):
hostapd.conf
pf.conf
spamd.conf
Lösche die libresolv-Dateien, da sie nicht länger benötigt werden:
rm /usr/lib/libresolv*
Verwende schlussendlich
mtree(8),
um alle neuen Verzeichnisse zu erstellen:
mtree -qdef /etc/mtree/4.4BSD.dist -p / -u
Wenn du den Anweisungen gefolgt bist, wie man einen Upgradeprozess ohne Installationsmedien durchführt, hast du diesen Schritt bereits absolviert. Wenn du jedoch Installationsmedien und unter 3.8 einen angepassten Kernel verwendet hast, wirst du das gleiche vermutlich auch unter 3.9 machen wollen. Dabei kann es sich um so einfache Dinge wie eine Änderung eines bestimmtes Devices mittels config(8) handeln, doch könnte es genausogut bedeuten, dass du den Kernel neuerzeugen musst, da sich eine von dir benötigte Option nicht im GENERIC-Kernel befindet. Lies bitte FAQ 5 - Das System aus dem Quelltext erzeugen, bevor du in Erwägung ziehst, deinen Kernel neu zu erzeugen.
# pkg_add -ui -F update -F updatedepends
Dabei gibt -u den Updatemodus an und -i den
interaktiven Modus, sodass pkg_add dich um Rat bittet, sollten
Probleme auftreten.
Lies die
pkg_add(1)-Manualseite
und das Kapitel Verwaltung der Packages
der FAQ für weitere Informationen.
[3.4 -> 3.5] | [3.5 -> 3.6] | [3.6 -> 3.7] | [3.7 -> 3.8] | [3.9 -> 4.0] | [FAQ-Index]