[FAQ Index] | [6.3 -> 6.4] [6.5 -> 6.6]
Upgrades are only supported from one release to the release immediately following it. Read through and understand this process before attempting it. For critical or physically remote machines, test it on an identical, local system first.Start by performing the pre-upgrade steps. Next, boot from the install kernel, bsd.rd: use bootable install media, or place the 6.5 version of
bsd.rd
in the root of your filesystem and instruct the boot
loader to boot this kernel.
Once this kernel is booted, choose the (U)pgrade
option and follow the
prompts.
Apply the configuration changes and
remove the old files.
Finish up by upgrading the packages: pkg_add -u
.
Alternatively, you can use the manual upgrade process.
You may wish to check the errata page or upgrade to the stable branch to get any post-release fixes.
bsd.rd
.
Download the ramdisk kernel and the cryptographically signed checksum file
for your architecture.
bsd.rd
SHA256.sig
Verify them using signify(1):
$ signify -C -p /etc/signify/openbsd-65-base.pub -x SHA256.sig bsd.rd Signature Verified bsd.rd: OK
announce
keyword was deprecated in
bgpd.conf(5).
It has now been removed and must be replaced with export
.
rdomain
sections in bgpd.conf need to be replaced with
vpn "description" on mpeX
sections.
Both descr
and depend on mpeX
need to be removed
from the VPN configuration.
A possible configuration is now:
vpn "description" on mpe1 { rd 65002:1 import-target rt 65002:42 export-target rt 65002:42 network 192.168.1/24 }
curve25519
in
iked.conf(5)
(it is not the default), switch to another group before updating.
Configure the responder to allow both curve25519 and another PFS group, e.g.
... ikesa enc aes-256 prf hmac-sha2-256 auth hmac-sha2-256 group curve25519 \ ikesa enc aes-256 prf hmac-sha2-256 auth hmac-sha2-256 group brainpool512 \ ...Then switch the initiators to the other group, then upgrade and switch back as wanted.
/etc/malloc.conf
symbolic link.
Instead, the new
sysctl(8)
variable vm.malloc_conf
is used.
This makes processes no longer dependent on the file system for their malloc
options.
Set it at boot time by adding a line such as:
vm.malloc_conf=CFto your
/etc/sysctl.conf
, or at runtime with
sysctl(8).
kern.witnesswatch
sysctl variable has been renamed
to kern.witness.watch
.
An old configuration might look like this:
set-window-option -g window-status-fg color244 set-window-option -g window-status-bg color222 set-window-option -g window-status-attr boldThe new format uses a standard variable name ending with -style and takes a list of attributes and values. The updated version of the previous example would look like this:
set-window-option -g window-status-style "fg=color244 bg=color222 bold"
link0
flag with txprio
.
Forcing the priority field in the
vlan(4) and svlan(4)
protocol headers is now configured with the
ifconfig(8)
txprio
configuration option.
This replaces the use of the link0
flag which used the
llprio
in the packet priority field instead.
Xorg
binary is no longer installed setuid,
so startx(1)
can no longer be used by non-root users.
The xenodm(1)
display manager has to be used instead.
To set it up:
# rcctl enable xenodm # rcctl start xenodmIf you wish to customize X you need to create an executable
.xsession
file.
/usr/include/openssl/asn1_mac.h
.
rm /usr/include/openssl/asn1_mac.h
rm /usr/bin/c2ph \ /usr/bin/pstruct \ /usr/libdata/perl5/Locale/Codes/API.pod \ /usr/libdata/perl5/Module/CoreList/TieHashDelta.pm \ /usr/libdata/perl5/Unicode/Collate/Locale/bg.pl \ /usr/libdata/perl5/Unicode/Collate/Locale/fr.pl \ /usr/libdata/perl5/Unicode/Collate/Locale/ru.pl \ /usr/libdata/perl5/unicore/lib/Sc/Cham.pl \ /usr/libdata/perl5/unicore/lib/Sc/Ethi.pl \ /usr/libdata/perl5/unicore/lib/Sc/Hebr.pl \ /usr/libdata/perl5/unicore/lib/Sc/Hmng.pl \ /usr/libdata/perl5/unicore/lib/Sc/Khar.pl \ /usr/libdata/perl5/unicore/lib/Sc/Khmr.pl \ /usr/libdata/perl5/unicore/lib/Sc/Lana.pl \ /usr/libdata/perl5/unicore/lib/Sc/Lao.pl \ /usr/libdata/perl5/unicore/lib/Sc/Talu.pl \ /usr/libdata/perl5/unicore/lib/Sc/Tibt.pl \ /usr/libdata/perl5/unicore/lib/Sc/Xsux.pl \ /usr/libdata/perl5/unicore/lib/Sc/Zzzz.pl \ /usr/share/man/man1/c2ph.1 \ /usr/share/man/man1/pstruct.1 \ /usr/share/man/man3p/Locale::Codes::API.3p
pg_upgrade
as described in the
postgresql-server pkg-readme
or do a dump/restore.
csi
and csc
have been renamed
to chicken-csi
and chicken-csc
to avoid conflicts
with lang/mono
.
/etc/dnscrypt-proxy.toml
fits their needs.
/usr/local/share/doc/opendnssec/MIGRATION
after the update.
py3-netaddr
for the ipaddr
filter) and to review the potential uses of
ansible_python_interpreter
.
/etc/gitea/conf/app.ini
to /etc/gitea/app.ini
and the GITEA_CUSTOM
directory location has changed from
/etc/gitea
to /var/gitea/custom
.
Gitea's ROOT_PATH
for logs has changed from
/var/gitea/log
to /var/log/gitea
.
When upgrading, move /etc/gitea
to the new location:
# mv /etc/gitea/conf/app.ini /etc/gitea/app.inichange the
ROOT_PATH
location in [log]
section of
/etc/gitea/conf/app.ini
:
[log] ROOT_PATH = /var/log/giteaand move custom files from
/etc/gitea
to
/var/gitea/custom
, if any.
~/.goaccessrc
or /etc/goaccess.conf
) to include
one or the other of the following two lines:
geoip-database /var/db/GeoIP/GeoLite2-Country.mmdb # installed by default geoip-database /var/db/GeoIP/GeoLite2-City.mmdb # requires "geolite2-city"
Sometimes, you need to do an upgrade of a machine for which the normal upgrade process is not possible. The most common case is a machine in a remote location and there is no easy access to the system console.
softdep
mount option in
/etc/fstab
and rebooting before undertaking a manual upgrade.
Having at least 500MB free on /usr
would be recommended.
sd0
is your boot disk:
installboot sd0
If using the multiprocessor kernel:
cd /usr/rel # where you put the release files ln -f /bsd /obsd && cp bsd.mp /nbsd && mv /nbsd /bsd cp bsd.rd / cp bsd /bsd.spIf using the single processor kernel:
cd /usr/rel # where you put the release files ln -f /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd cp bsd.rd bsd.mp / # may give a harmless warning
sha256 -h /var/db/kernel.SHA256 /bsd
base65.tgz
last, because the new base system,
in particular tar(1),
gzip(1) and
reboot(8),
will not work with the old kernel.
Either untar the needed filesets manually
cp /sbin/reboot /sbin/oreboot tar -C / -xzphf xshare65.tgz tar -C / -xzphf xserv65.tgz tar -C / -xzphf xfont65.tgz tar -C / -xzphf xbase65.tgz tar -C / -xzphf man65.tgz tar -C / -xzphf game65.tgz tar -C / -xzphf comp65.tgz tar -C / -xzphf base65.tgz # Install last! /sbin/orebootor, if you use ksh(1), you can do
cp /sbin/reboot /sbin/oreboot for _f in [!b]*65.tgz base65.tgz; do tar -C / -xzphf "$_f" || break; done /sbin/orebootNote that tar(1) can expand only one archive per invocation, so a simple glob won't work.
/dev
.
Run
MAKEDEV(8):
cd /dev ./MAKEDEV all
sd0
is your boot disk:
installboot sd0
sysmerge
fw_update
dmesg -s
)
and correct any failures as necessary.
All the steps following configuration changes
above also apply to manual upgrades.
Finally, remove /sbin/oreboot
and update packages:
pkg_add -u
.
Reboot once more to make sure you run on your own kernel generated by KARL.
[FAQ Index] | [6.3 -> 6.4] [6.5 -> 6.6]