Packages have been available since link:https://lists.freebsd.org/archives/freebsd-pkgbase/2023-October/000221.html[October 2023], considered experimental for FreeBSD's 14 Release.
-Starting from 15.0-RELEASE, Base System packages will be the default and officially supported way to both install new FreeBSD instances, and also to update and upgrade between minor and major releases.
+Starting from 15.0-RELEASE, Base System Packages will be supported as a tech preview to install new FreeBSD instances, and also to update and upgrade between minor and major releases.
-[NOTE]
-====
-From 15.0-RELEASE onwards, the long-running man:freebsd-update[8] tool will only be supported on the earlier 13 and 14 release branches.
-====
-
-Base System Packages replace:
+Base System Packages is eventually going to replace:
* tarball distribution sets, such as `base.txz` or `kernel.txz`, which are historically used for installation of the OS with man:bsdinstall[8]
* man:freebsd-update[8] for updates to the OS.
+[WARNING]
+====
+The replacement of distribution sets by Base System Packages will still take some time until this is fully stable
+====
+
Base System packages complement crossref:cutting-edge[makeworld,"building and installing from source"], which is still available for those who wish to build their own custom kernels or userland.
It is also possible to build custom base system packages from local sources, as well as just relying on officially provided packages.
To upgrade the system, change the configuration file according to the desired release, and run:
@@ -1223,17 +1231,45 @@
# shutdown -r now
....
+[[pkgbase-major-upgrade]]
==== Performing Major version upgrades
+When running ZFS, boot environments are an easy option to upgrade the system without interrupting running software and then upgrade into the upgraded system.
+When not running ZFS, consider backing up the system before upgrading to a newer version.
-When running ZFS, consider creating a boot environment before upgrading to a newer version.
-To create a new boot environment using the man:bectl[8] tool run:
+===== Preparations
+Change `/usr/local/etc/pkg/repos/FreeBSD-base.conf` to target the correct major release like `base_release_0` for 15.0-RELEASE, to look like this:
+
+[WARNING]
+====
+This file might change to be included in RELEASE with a different path.
+Upgrading from 14 to 15 with pkgbase is not officially supported (because pkgbase was not officially supported in 14)! FreeBSD 15 is the first FreeBSD with pkgbase as a technical preview.
+At the time of this writing in some edge-cases the major upgrade removes pkg and therefore segfaults.
+This is considered a (link:https://github.com/freebsd/pkg/issues/2475[known issue]) for 15.0-RELEASE.
+To work around this issue lock pkg before upgrading.
[source,shell]
....
-# bectl create 14.2-RELEASE-p4
+# pkg -c /mnt/upgrade lock pkg
....
-Use this boot environment to start the system as it was before the update if something goes wrong.
+After upgrading from 14 to 15 please consider to install a package set like `FreeBSD-set-minimal`.
+====
+
Save a list of the non-base packages in case they are needed later:
-The next step will upgrade the system to the specified version.
+The next step will upgrade the boot environment to the specified version.
[WARNING]
====
@@ -1263,6 +1302,53 @@
Be careful.
====
+Set the environment variable ABI to upgrade the major version (replace amd64 with the architecture and 15 with the targeted version). Set the pkg-static chroot directory to the boot environment mountpoint.