---
name: "beinstall"
section: "8"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/beinstall"
---

# beinstall(8)

install a boot environment using the current FreeBSD source tree

## NAME

**beinstall.sh** – install a boot environment using the current FreeBSD source tree

## SYNOPSIS

**beinstall.sh** \[*options* *...*\]

## DESCRIPTION

**beinstall.sh** installs a boot environment using the current FreeBSD source tree. **beinstall.sh** also automatically performs */etc* updates (using [etcupdate(8)](/etcupdate/8.md)) and package updates using pkg-upgrade(8) automatically in the new boot environment sandbox.

Upon successful completion, the system will be ready to boot into the new boot environment. Upon failure, the target boot environment will be destroyed. In all cases, the running system is left untouched and a reboot into a partially updated system (due to install or hardware failure) cannot happen. Additionally, the full installation process requires only one reboot as it is performed in a new boot environment.

**beinstall.sh** requires a fully built world and kernel. It also requires pkg(8), which is not present in the base system and has to be installed manually.

The *options* provided to **beinstall.sh** are world and kernel flags like KERNCONF as described in [build(7)](/build/7.md).

## ENVIRONMENT

User modifiable variables. Set these in the environment if desired:

- BE\_UTILITY (default: “bectl”)

  Utility to manage ZFS boot environments. This can be either [bectl(8)](/bectl/8.md) from the base system or beadm(1) from ports (sysutils/beadm).

- CONFIG\_UPDATER (default: “etcupdate”)

  Config updater: [etcupdate(8)](/etcupdate/8.md) is supported. Set to an empty string to skip.

- ETCUPDATE\_FLAGS (default: “-F”)

  Flags for [etcupdate(8)](/etcupdate/8.md) if used.

- NO\_PKG\_UPGRADE (default: “”)

  If not empty, “pkg upgrade” will be skipped.

## FILES

- **src/***tools/build/beinstall.sh*

  Place where **beinstall.sh** lives in the src tree.

## SEE ALSO

[build(7)](/build/7.md), [development(7)](/development/7.md), [bectl(8)](/bectl/8.md), [etcupdate(8)](/etcupdate/8.md), pkg(8)

## HISTORY

**beinstall.sh** is inspired by and similar in function to Solaris/illumos-style upgrades.

The **beinstall.sh** manual page first appeared in FreeBSD 12.0.

## AUTHORS

The **beinstall.sh** script was implemented by Will Andrews ⟨*will@FreeBSD.org*⟩. This manual page was written by Mateusz Piotrowski ⟨*0mp@FreeBSD.org*⟩.
