[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] | [4.2 -> 4.3] | [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 auf vielen Systemen, die kein X benötigen, xbase42.tgz installiert werden muss. Falls du dies nicht machst und ein Paket installieren willst, das libexpat benötigt, wird pkg_add(1) eine Fehlermeldung ausgeben.
Beachte ebenfalls, dass die Übersetzung von Portierungen nur mit einer vollständigen Installation unterstützt wird; darunter fallen auch alle X-Dateisets.
Nachdem du all deine Pakete auf 4.2-Versionen aktualisiert hast, entferne das alte expat-Paket von deinem System:
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.# pkg_delete expat
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 ändert 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 Binärdateien 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.
Noch einmal: Diese Änderung ist KEIN Bestandteil des standardmäßigen Upgradeprozesses.--- ./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
Damit ein Großteil der Aufrufe weiterhin wie erwartet funktionieren, fügt die weiter unten aufgeführte Korrekturroutine 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:
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 Korrektur eingespielt wurde.%wheel ALL=(ALL) SETENV: ALL -- or -- %wheel ALL=(ALL) NOPASSWD: SETENV: ALL
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ünstiger 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:
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: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
cd /tmp/etc cp magic man.conf netstart rc rc.conf rpc services /etc cp mtree/* /etc/mtree/ 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:
Die Änderungen dieser Dateien befinden sich in dieser Korrekturroutine. Du kannst versuchen, sie zu verwenden, indem du das Folgende als root ausführst: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
Hiermit wird geprüft, wie gut die Korrektur 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 Schnappschuss von 3.9 aus upgradest, diese Korrektur 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.cd / patch -C -p0 < upgrade42.patch
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):
Verwende schlussendlich newaliases(8), um die Alias-Datenbank zu aktualisieren, und mtree(8), um alle neuen Verzeichnisse zu erstellen:etc/bgpd.conf etc/mail/spamd.conf etc/ospfd.conf etc/ssh/sshd_config
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 genauso gut 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 Pakete ist bekannt, dass es signifikante Upgradeprobleme gibt, die eine Großzahl der Anwender betreffen werden. Dass ein Pakete 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 upgegradet werden können.
Bevor du weitermachst, solltest du über die folgenden großen Änderungen im 4.2-Release informiert sein:
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)-Handbuchseite und das Kapitel Verwaltung der Pakete der FAQ für weitere Informationen.# pkg_add -ui -F update -F updatedepends
Du wirst sehr wahrscheinlich eine Ausgabe wie diese sehen, wenn du die genannten Kommandos ausführst:
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 Paket-Upgrade nun beenden, xbase42.tgz installieren und das Paket-Upgrade erneut starten.Looking for updates: complete Cannot find updates for expat-2.0.0 Proceed? [y/N]
Zum Schluss - wenn alle Pakete upgegradet wurden - entferne das alte expat-Paket 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] | [4.2 -> 4.3] | [FAQ-Index]