Hallo userlr,
ich bin vor etwa drei Jahren durchweg auf allen Rechnern auf OpenBSD-current umgestiegen. In dieser ganzen Zeit hatte ich genau _einmal_ ein Problem, weil etwas "quer" lag und das System instabil war. Nach keinen 24 Stunden war das Thema mit dem nächsten Update behoben. Was ich sagen will: Anders als bei anderen unixoiden ist bei OpenBSD die ~current-Version sehr stabil!
Genug der Vorworte: Hier mein Weg, das System zu aktualisieren. Bewußt nicht per cron-job, sondern täglich per manueller Inspektion! Wenn Du in den Skripten die Pfade entsprechend anpaßt, geht es auch mit ~stable. Hier zeige ich meinen Weg für amd64-current.
(1)
Ich leiste mir den "Luxus", alle Sourcen auf den Rechnern vorzuhalten. Muß man nicht unbedingt, aber wenn man mal das System "from scratch" kompilieren will, ist halt alles schon vorhanden. Details findest Du hier:
http://www.openbsd.org/anoncvs.html
Weitere Besonderheiten:
a: Ich setze /usr nach dem Start in der /etc/rc.local auf "read-only". Daher muß bei den Update-Operationen /usr zunächst zunächst beschreibbar gesetzt und am Ende dies wieder aufgehoben werden.
b: Auf meinen Rechnern ist kein Platz für gamesXX.tgz.
c: Mein nächstgelegender Mirror ist ftp.hostserver.de.
d: Ich starte jedes Sytem auf der Konsole, nicht xdm/gdm/kdm/'whateverdm'...
(2)
Im ersten Schritt überprüfe ich, ob die jeweilge ~current-Version noch aktuell ist und weiterhin, ob auch die packages aktualisiert wurden. Ersteres ist jeweils 2x im Jahr spannend - wenn der Versionssprung auf die Folgeversion ansteht (also etwa Januar/Februar 5.8 => 5.9), ansonsten überprüfe ich anhand des Datums, ob sich überhaupt etwas geändert hat; zweiteres ist während eines Hackathons sinnvoll, da dann mitunter bis zu drei Aktualisierungen am Tag verteilt werden, die alle lediglich den Kernel betreffen - dann fahre ich eine Aktualisierung nur, wenn auch die packages aktualisiert wurden.
'# sh update_current.sh' führt folgendes Skript aus (ja, ja: lynx ist nicht in base... ; ftp geht auch) [Der Vollständigkeit halber: Mittels "q" + "y" kommst Du aus den beiden Programmaufrufen _jeweils_ wieder heraus.]
(3)
Das jeweilige Basis-System aktualisiere ich mit folgendem Skript "update_current.sh":
(
WARNUNG: ~/Downloads/amd64/ muß exisitieren, sonst werden die Dateien unter ~/ gelöscht!!!)
#!/bin/sh
#
print "Laufwerk wechseln"
cd ~/Downloads/amd64/
print "Dateien loeschen"
rm *
print "Dateien von
http://ftp.hostserver.de neu holen"
export SERVER=
http://ftp.hostserver.de
export ARCH=amd64
export VERSION=58 # <=== HIER AKTUALISIEREN, WENN VERSIONSWECHSEL
ftp -4 -a \
$SERVER/pub/OpenBSD/snapshots/$ARCH/BOOT{IA32,X64}.EFI \
$SERVER/pub/OpenBSD/snapshots/$ARCH/INSTALL.$ARCH \
$SERVER/pub/OpenBSD/snapshots/$ARCH/index.txt \
$SERVER/pub/OpenBSD/snapshots/$ARCH/SHA256{,.sig} \
$SERVER/pub/OpenBSD/snapshots/$ARCH/bsd{,.rd,.mp} \
$SERVER/pub/OpenBSD/snapshots/$ARCH/{base,comp,man}$VERSION.tgz \
$SERVER/pub/OpenBSD/snapshots/$ARCH/x{base,font,serv,share}$VERSION.tgz
#
# signify(1)
#
doas signify -C -p /etc/signify/openbsd-$VERSION-base.pub -x SHA256.sig INSTALL.$ARCH
doas signify -C -p /etc/signify/openbsd-$VERSION-base.pub -x SHA256.sig bsd{,.rd,.mp}
doas signify -C -p /etc/signify/openbsd-$VERSION-base.pub -x SHA256.sig {base,comp,man}$VERSION.tgz
doas signify -C -p /etc/signify/openbsd-$VERSION-base.pub -x SHA256.sig x{base,font,serv,share}$VERSION.tgz
#
print "Altes /bsd.rd sichern"
doas cp /bsd.rd /bsd.rd.1
print "Neues /bsd.rd kopieren"
doas cp -p bsd.rd /
print "Neues bsd.mp als /bsd kopieren"
doas cp -p bsd.mp /bsd
print "/usr RW mounten"
doas mount -uw /usr
print "untar xfonts"
doas tar -C / -xzphf xfont$VERSION.tgz
print "untar xserv"
doas tar -C / -xzphf xserv$VERSION.tgz
print "untar xshare"
doas tar -C / -xzphf xshare$VERSION.tgz
print "untar man"
doas tar -C / -xzphf man$VERSION.tgz
print "untar comp"
doas tar -C / -xzphf comp$VERSION.tgz
print "untar xbase"
doas tar -C / -xzphf xbase$VERSION.tgz
print "untar base"
doas tar -C / -xzphf base$VERSION.tgz
print "run sysmerge"
doas sysmerge
print "upgrade /dev"
cd /dev
doas ./MAKEDEV all
print "mount /usr RO"
doas mount -ur /usr
cd /home/sw
(4)
NACH EINEM NEUSTART geht es mit folgendem Skript "update_system.sh" weiter:
(Es kann aber bereits mit dem System gearbeitet werden!)
(/usr/src und /usr/xenocara sind hilfreich, um ggf. aus /usr/ports zu installieren)
#!/bin/sh
#
cd /tmp
doas mount -uw /usr
#
print "package checks"
doas pkg_check -I
#
print "packages updaten"
doas pkg_add -ui
#
print "/usr/src updaten"
cd /usr/src
doas cvs -qd $CVSROOT up -Pd
#
print "/usr/xenocara updaten"
cd /usr/xenocara
doas cvs -qd $CVSROOT up -Pd
#
print "/usr/ports updaten"
cd /usr/ports
doas cvs -qd $CVSROOT up -Pd
#doas make clean && sudo make index
#
cd
print "locate-db updaten"
doas /usr/libexec/locate.updatedb
doas mount -ur /usr
Soweit mein Weg. Dauert je nach dem, wieviele packages aktualisiert werden, 20~30 Minuten (daheim). Wie heißt es so schön in den Foren: YMMV :-)
Ich hoffe, Du kannst mit diesen Hinweisen etwas anfangen, um einen für Dich passenden Weg zu finden, das System aktuell zu halten.
Beste Grüße,
SteWo