hey, I wrote this script to replace sysupgrade (but maintainable and
not using a weird shell library), would be nice to import it.
So far I've tested it upgrading across multiple major releases
and branches.
NBUPGRADE(8) System Manager's Manual NBUPGRADE(8)
NAME
nbupgrade - tool for unattended upgrades of NetBSD
SYNOPSIS
nbupgrade [-cfknp] [-r version] [-s set]
DESCRIPTION
nbupgrade is a script for performing unattended upgrades of NetBSD. It
is primarily intended for use cases where sysinst(8) may not be suitable,
for example, inside system management scripts, and on machines that lack
a user interface or removable media from which to boot. It also works
inside a chroot(8).
NetBSD maintains ABI/API compatibility for past releases. This means
that new kernels are able to run old userspace programs, but old kernels
are not able to run new userspace programs. For this reason, nbupgrade
will prioritize upgrading the kernel when its version number is
significantly older than the target, or when targeting the unstable
branch.
The following options are available:
-r version
Specify the target version for the upgrade.
This may be a version number (e.g. "11.3"), a stable branch name
(e.g. "netbsd-11"), or "head" to target the unstable version.
By default, the version number of the currently running kernel is
used.
-f Do not perform an upgrade, only fetch the files required to do
so. Checksums will also be compared to verify that the files
match.
-k Only upgrade the kernel. An old userspace will be ignored. This
option is useful for users who wish to test a newer kernel while
maintaining full compatibility with an older release.
-n Do not perform an upgrade. Useful with the -c and -p options.
-p Run post-install operations, including running etcupdate(8) and
postinstall(8) checks. These require user input, so are not
performed automatically.
-c Clean up files after an upgrade. nbupgrade saves some temporary
files on the system, and old kernel modules and system files may
linger after a successful upgrade.
This should be the last upgrade-related command you run, after
checking the full output of uname(1), including the release
version with -r.
-s set Install extra sets. Usually, nbupgrade will look at the existing
system to determine which sets are installed, and target those
for upgrading. Rarely, new sets are available in new NetBSD
releases, but they will not be installed unless added with this
flag.
This option can also be used to add new sets without upgrading
the system.
When combined with -f, this option will cause extra sets to be
fetched but not installed.
EXAMPLES
Upgrade to NetBSD 11.0, installing the extra sets base32 and base64:
# nbupgrade -r 11.0
# shutdown -r now
# nbupgrade -pc -s "base32 base64"
Fetch the sets from the stable branch netbsd-11:
# nbupgrade -r netbsd-11 -f
Install a CURRENT kernel:
# nbupgrade -r head -k
SEE ALSO
nbupgrade.conf(5), etcupdate(8), postinstall(8), sysinst(8)
AUTHORS
nbupgrade was written by Nia Alarie <nia%NetBSD.org@localhost>.
NetBSD 10.0 April 23, 2024 NetBSD 10.0
Attachment:
nbupgrade.tar.gz
Description: Binary data