[3.4 -> 3.5] | [3.5 -> 3.6] | [3.6 -> 3.7] | [3.7 -> 3.8] | [3.8 -> 3.9] | [3.9 -> 4.0] | [4.0 -> 4.1] | [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:
Das bedeutet, dass du viele Systeme, die bisher ohne X ausgekommen sind, xbase42.tgz installieren müssen. Falls du dies nicht machst und ein Package installieren willst, das libexpat benötigt, wird pkg_add(1) eine Fehlermeldung ausgeben.
Beachte ebenfalls, dass die Übersetzung von Ports nur mit einer vollständigen Installation unterstützt wird; darunter fallen auch alle X-Dateisets.
Nachdem du all deine Packages auf 4.2-Versionen aktualisiert hast, entferne das alte expat-Package von deinem System:
# pkg_delete expat
Dies wird große Auswirkung für eine Großzahl der Anwender haben!
Es war eine unglückliche Entscheidung, dessen große Wirkung nicht
frühzeitig erkannt wurde. In Version 4.3 wird libexpat Teil von
base43.tgz sein, so dass das Problem dann behoben ist.
Mit der Unterstützung der neuesten Versionen von X.org wurde die Unterstützung für XF3 auf der i386-Plattform eingestellt (die einzige Plattform, die diese Unterstützung noch hatte). XF3 wurde für die Unterstützung sehr alter Videochipsätze benötigt, die mit XF4 oder X.org nicht mehr genutzt werden konnten. Es werden wohl nicht sonderlich viele Leute etwas davon merken.
Die neue X.org-Version äntert eine Großzahl Konfigurationsdateien, so dass eine eigene Sektion in diesem Upgradeprozess für X-Anwender angelegt wurde.
pciide1 at pci0 dev 31 function 2 "Intel 82801GBM AHCI SATA" rev 0x02: DMA, chanel 0 wired to native-PCI, channel 1 wired to native-PCIkönnte nun so aufgelistet werden:
pciide1: using apic 2 int 11 (irq 11) for native-PCI interrupt
wd0 at pciide1 channel 0 drive 0: <FUJITSU MHV2080BH>
wd0: 16-sector PIO, LBA48, 76319MB, 156301488 sectors
wd0(pciide1:0:0): using PIO mode 4, Ultra-DMA mode 5
ahci0 at pci0 dev 31 function 2 "Intel 82801GBM AHCI SATA" rev 0x02: AHCI 1.1: apic 2 int 16 (irq 11)Dies wird Probleme für jene verursachen, die ihre Systeme remote upgraden, da die fstab-Datei nicht »korrekt« ist und das System den Bootvorgang nicht abschließen kann. Unglücklicherweise ist die Handhabung der Platten abhängig von vielen Aspekten, einschließlich der BIOS-Konfigurationen. FALLS du also ein AHCI-SATA-Interface hast, musst du mit einer gleich konfigurierten lokalen Maschine testen, um zu testen, ob die /etc/fstab-Datei angepasst werden muss.
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, FUJITSU MHV2080B, 0084> SCSI2 0/direct fixed
sd0: 76319MB, 76319 cyl, 64 head, 32 sec, 512 bytes/sec, 156301488 sec total
Vermutlich werden nur wenige Anwender hiervon betroffen sein, da ahci(4)-Geräte bisher eher gering verbreitet sind; es werden aber immer mehr.
allow from any inet prefixlen 8 - 24
deny from any inet6 prefixlen > 64
Als Erinnerung: bgplg und zugehörige Binarys werden während der Installation und während des Upgrades deaktiviert. Wenn du sie verwendest, dann musst du sie wie in bgplg(8) beschrieben wieder aktivieren.
--- ./etc/ssh/sshd_config Sat Mar 10 20:31:32 2007
+++ ../42/etc/ssh/sshd_config Tue Aug 28 11:59:52 2007
@@ -11,3 +11,2 @@
#Port 22
-#Protocol 2,1
#AddressFamily any
@@ -15,2 +14,7 @@
#ListenAddress ::
+
+# Disable legacy (protocol version 1) support in the server for new
+# installations. In future the default will change to require explicit
+# activation of protocol 1
+Protocol 2
Noch einmal: Diese Änderung ist KEIN Bestandteil des standardmäßigen
Upgradeprozesses.
Damit ein Großteil der Aufrufe weiterhin wie erwartet funktionieren, fügt der weiter unten aufgeführte Patch die Zeile »Defaults env_keep« in deine /etc/sudoers-Datei ein und ansonsten versuchen, dass die Datei wie die in etc42.tgz aussieht - beides könnte fehlschlagen. In diesem Fall sicherstellen, dass deine sudoers-Datei eine Zeile wie diese enthält:
%wheel ALL=(ALL) SETENV: ALL
-- or --
%wheel ALL=(ALL) NOPASSWD: SETENV: ALL
Hier wird angenommen, dass du möchtest, dass die Benutzer in der
Gruppe »wheel« volle sudo-Rechte erhalten. Es ist wahrscheinlich ratsam
zu testen, ob sudo(8) erwartungsgemäß arbeitet, bevor du dich vom System
abmeldest, nachdem die Patchdatei eingespielt wurde.
FALLS deine Netzwerkkarte dazugehört, musst du auf jeden Fall deine /etc/hostname.deX (Hinweis: Hardlink) und deine pf.conf anpassen.
Noch einmal: Dies gilt nur für die Alpha-Plattform.
Den Installationskernel kannst du recht einfach booten, indem du die 4.2-Version von bsd.rd im Wurzelverzeichnis deines Bootlaufwerks ablegst und dem Bootloader mitteilst, dass er mit der neuen bsd.rd-Datei booten soll. Auf amd64 und i386 machst du das, indem du »boot bsd.rd« am ersten boot>-Prompt angibst.
Manchmal muss man ein Upgrade einer Maschine durchführen, wenn man nicht auf einfache Weise den normalen Upgradeprozess durchführen kann. Der häufigste Grund hierfür ist, dass sich die Maschine an einem anderen Ort befindet und man daher keinen Zugriff auf die Systemkonsole hat. Man kann dies normalerweise durchführen, indem man vorsichtig diesen Prozess befolgt:
export RELEASEPATH=/usr/rel # wo du die Dateien ablegst
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 -C / -xzphf ${RELEASEPATH}/base42.tgz ./etc/firmware
export RELEASEPATH=/usr/rel
cd ${RELEASEPATH}
tar -C / -xzphf base42.tgz
tar -C / -xzphf comp42.tgz
tar -C / -xzphf game42.tgz
tar -C / -xzphf man42.tgz
tar -C / -xzphf misc42.tgz
tar -C / -xzphf xbase42.tgz
tar -C / -xzphf xfont42.tgz
tar -C / -xzphf xserv42.tgz
tar -C / -xzphf xshare42.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 etc42.tgz und xetc42.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 an dieser Stelle unbesorgt ignoriert werden,
du könntest aber auch sendmail(8) während dem Upgradeprozess beenden.
Zu diesem Zeitpunkt arbeitet sendmail noch nicht richtig und muss
(als Teil des Reboots) neugestartet werden, bevor man erwarten kann,
dass er E-Mails richtig verarbeitet.
Du solltest die etc42.tgz-Dateien in ein temporäres Verzeichnis entpacken:
tar -C /tmp -xzphf ${RELEASEPATH}/etc42.tgz
Dateien, die ordnungsgemäß von etc42.tgz »so wie sie sind«
kopiert werden können:
etc/magic
etc/man.conf
etc/netstart
etc/rc
etc/rc.conf
etc/rpc
etc/services
etc/mail/helpfile
etc/mail/localhost.cf
etc/mail/sendmail.cf
etc/mail/submit.cf
etc/mtree/4.4BSD.dist
etc/mtree/BSD.local.dist
etc/mtree/special
Bedenke, dass es möglich IST, all diese Dateien lokal zu modifizieren.
Solltest du sie also modifiziert haben, musst du sie manuell anpassen.
Achte besonders auf mail/*, wenn du eine angepasste
Sendmail(8)-Konfiguration verwendest. Hier sind Copy&Paste-Zeilen,
um diese Dateien zu kopieren, angenommen, dass du etc42.tgz
in dem zuvor empfohlenen Verzeichnis abgelegt hast:
cd /tmp/etc
cp magic man.conf netstart rc rc.conf rpc services /etc
cp mail/helpfile mail/localhost.cf mail/submit.cf /etc/mail
cp mail/sendmail.cf /etc/mail # Careful on this one!!
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:
etc/ntpd.conf
etc/sensorsd.conf
etc/ssh/ssh_config
etc/ssl/x509v3.cnf
etc/sudoers
etc/sysctl.conf
etc/wsconsctl.conf
var/www/conf/httpd.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 < upgrade42.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.9 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 bgpd.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):
etc/bgpd.conf
etc/mail/spamd.conf
etc/ospfd.conf
etc/ssh/sshd_config
Verwende schlussendlich
newaliases(8), um die Alias-Datenbank zu aktualisieren, und
mtree(8),
um alle neuen Verzeichnisse zu erstellen:
newaliases
mtree -qdef /etc/mtree/4.4BSD.dist -p / -u
Wenn du den Anweisungen gefolgt bist, wie man einen Upgradeprozess ohne Installationskernel durchführt, hast du diesen Schritt bereits absolviert. Wenn du jedoch den Installationskernel und unter 4.1 einen angepassten Kernel verwendet hast, wirst du das gleiche vermutlich auch unter 4.2 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.
Die Dateien, die du am wahrscheinlichsten speichern solltest, sind /etc/X11/xorg.conf und /etc/X11/xinit/xinitrc. Da X nun sehr oft OHNE xorg.conf-Datei läuft, könntest du erst einmal versuchen, ob du auch ohne zurückkopierte Datei auskommst.
Entpacke xetc42.tgz so, wie du auch andere Dateisets extrahierst:
export RELEASEPATH=/usr/rel
cd ${RELEASEPATH}
tar -C / -xzphf xetc42.tgz
Vom folgenden Package ist bekannt, dass es signifiakten Upgradeprobleme gibt, die eine Großzahl der Anwender betreffen werden. Dass ein Package nicht in dieser Liste geführt wird, bedeutet nicht, dass es nicht eventuell doch Probleme geben wird. Du musst selbst überprüfen, ob die Anwendungen, die DU verwendest, auch problemlos geupgradet werden können.
Bevor du weitermachst, solltest du über die folgenden großen Änderungen im 4.2-Release informiert sein:
# 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.
Du wirst sehr wahrscheinlich eine Ausgabe wie diese sehen, wenn du die genannten Kommandos ausführst:
Looking for updates: complete
Cannot find updates for expat-2.0.0
Proceed? [y/N]
Dies weist darauf hin, dass du das libexpat-Problem hast und nun
xbase42.tgz wie zuvor beschrieben installieren musst. Wenn du
xbase42.tgz nicht installiert hast, dann solltest du das Packageupgrade
nun beenden, xbase42.tgz installieren und das Packageupgrade erneut
starten.
Zum Schluss - wenn alle Packages geupgradet wurden - entferne das alte expat-Package von deinem System:
# pkg_delete expat
[3.4 -> 3.5] | [3.5 -> 3.6] | [3.6 -> 3.7] | [3.7 -> 3.8] | [3.8 -> 3.9] | [3.9 -> 4.0] | [4.0 -> 4.1] | [FAQ-Index]