The Handbook

    Theme
    • Guides
        • Check a system before installing FreeBSD
        • Orient a Linux administrator on FreeBSD
        • Supported FreeBSD releases
        • Choose a FreeBSD documentation and support channel
        • Move files safely without GNU mv -t
        • Update, upgrade, or update packages?
        • Upgrade 14.4 or 15.0 to FreeBSD 15.1
        • Choose packages, ports, or poudriere
        • Choose the quarterly or latest package branch
        • Choose a FreeBSD download or package mirror
        • Make a system setting persistent
        • Configure locale, keyboard, and time zone
        • Configure a serial console for recovery
        • Choose a custom kernel, module, or loader setting
        • Run a Linux binary with the compatibility layer
        • Check desktop and laptop hardware before installation
        • Choose and check a graphics driver
        • Choose Xorg or Wayland
        • Build a maintainable desktop baseline
        • Install and check a desktop browser
        • Check laptop Wi-Fi, power, and suspend
        • Check multimedia readiness
        • Choose and configure a printing stack
        • Run Windows applications with Wine
        • Snapshot and replicate a ZFS dataset
        • Choose a filesystem and storage layout
        • Operate ZFS without losing the recovery path
        • Restore files from a ZFS snapshot
        • Read ZFS pool health and run a scrub
        • Replace a failed device in a ZFS mirror
        • Replicate a ZFS dataset over SSH
        • Change PF safely on a remote host
        • Configure a narrow WireGuard tunnel
        • Plan a FreeBSD home server
        • Choose a mail server or an outgoing relay
        • Publish a network service safely
        • Choose a jail network model
        • Choose native jails or a jail manager
        • Choose a jail or a bhyve virtual machine
        • Establish a FreeBSD security baseline
        • Choose a MAC policy
        • Audit security-relevant activity
        • Start a DTrace performance investigation
    • Integrations
        • Create a first jail with Bastille
        • Compare jail managers and OCI tooling
        • Publish a Bastille service through PF
        • Mount a ZFS dataset in a Bastille jail
        • Update and upgrade Bastille jails
        • Back up and restore a Bastille jail
        • Prepare bhyve and vm-bhyve
        • Choose NFS or Samba for file sharing
        • Choose ZFS backup automation
        • Operate a signed poudriere repository
        • Manage FreeBSD configuration with Ansible or Salt
        • Run Motion with webcamd on FreeBSD
        • Design a reverse proxy, certificates, and monitoring
    • FAQ
      • Troubleshooting
          • Recover an interrupted freebsd-update run
          • Resolve a package repository or ABI mismatch
          • Diagnose the FreeBSD boot path
          • Recover with a ZFS boot environment
          • Diagnose DNS, routing, and firewall paths
          • Diagnose network mbuf exhaustion
          • Bind a service to a low port without running it as root
          • Diagnose audio output or input
          • Diagnose webcamd, cuse, and a webcam
          • Fix USB device permissions without opening every device
      • About this handbook
      • Synopsis
      • Choose the operation
      • Update a distribution-set base system
      • Update third-party packages
      • Upgrade to another release
      • Primary references

      Update, upgrade, or update packages?

      Last reviewed
      13 August 2026
      Applies to
      15.1-RELEASE, 15.0-RELEASE, 14.4-RELEASE

      Synopsis #

      FreeBSD uses separate operations for security and errata updates to the base system, upgrades between releases, and updates to third-party packages. FreeBSD 15 also offers pkgbase, so the base-system maintenance command depends on how that system was installed.

      Before making a change, identify the installed release and the intended outcome:

      $ freebsd-version -kru
      

      The three values report the running kernel, installed kernel, and installed userland. A mismatch can be expected between installing a kernel update and rebooting.

      Confirm that the installed release still receives fixes on the supported FreeBSD releases page .

      Choose the operation #

      Intended resultDistribution-set base systemPackages installed with pkg
      Apply security and errata fixes within the current releasefreebsd-update fetch followed by freebsd-update installpkg update followed by pkg upgrade
      Move to another FreeBSD releaseFollow the release-upgrade procedure for freebsd-updateUpgrade packages after the base system at the point specified by the official procedure
      Maintain a pkgbase installationUse the configured pkgbase repositories and pkg workflowUse pkg

      Do not mix the distribution-set and pkgbase procedures for the base system. The installation method is part of the system’s maintenance model.

      Update a distribution-set base system #

      Run the fetch and install phases as root:

      # freebsd-update fetch
      # freebsd-update install
      

      Read the output before proceeding. If a kernel update was installed, reboot before relying on the new kernel:

      # shutdown -r now
      

      After the reboot, confirm the versions again:

      $ freebsd-version -kru
      

      freebsd-update rollback can roll back the most recent installed update, but it is not a substitute for a tested backup and may itself require a reboot.

      The binary updater maintains the GENERIC kernel. A host with a custom kernel needs an explicit source, rebuild, installation, and fallback plan after relevant updates. See Choose a custom kernel, module, or loader setting before making that maintenance exception permanent.

      Update third-party packages #

      Refreshing repository metadata and upgrading installed packages are separate from updating the base system:

      # pkg update
      # pkg upgrade
      

      Review the proposed removals, replacements, and repository changes before confirming. Services that load updated libraries generally need to be restarted.

      Upgrade to another release #

      A release upgrade changes more than patch-level updates. Back up the system, verify free space, read the target release notes and errata, and use the exact sequence in the official procedure. The sequence contains multiple install and reboot phases; omitting one can leave the running kernel and userland out of sync.

      For a distribution-set installation, begin with the FreeBSD Handbook upgrade procedure . For pkgbase, use the pkgbase documentation that matches the installed release and repository configuration.

      An upgrade to 15.1-RELEASE can begin directly from 14.4-RELEASE or 15.0-RELEASE. An older installation must first be upgraded incrementally to one of those releases. Follow the 15.1-RELEASE upgrading instructions rather than inferring a sequence from version numbers.

      The 15.1 upgrade checklist turns those release instructions into a preparation, execution, and verification path. If a saved freebsd-update transaction stops between phases, use the interrupted-update recovery guide instead of deleting its state or starting a different target upgrade.

      Primary references #

      • FreeBSD Handbook: Updating and Upgrading FreeBSD
      • freebsd-update(8)
      • freebsd-version(1)
      • pkg(8)

      Independent documentation. Not affiliated with or endorsed by the FreeBSD Project or the FreeBSD Foundation.

      Report a bug
      • Synopsis
      • Choose the operation
      • Update a distribution-set base system
      • Update third-party packages
      • Upgrade to another release
      • Primary references