FREEBSD-BASE(7)
π freebsd-base(7) β the girliepop guide to base system packages
okay so this is freebsd-base, straight out of the Miscellaneous Information Manual, and honestly? it's giving "the future is now" β¨
πΈ NAME πΈ
freebsd-base β base system packages. that's it, that's the vibe. π
β¨ DESCRIPTION β¨
bestie, listen. the FreeBSD base system can be installed as a whole set of pkg(8) packages, and this supersedes the traditional method of installing using tar(1) archives. like, the old way is out, the new way ate. π₯
every base package has a name that starts with the string βFreeBSD-β, and has an origin beginning with βbase/β. in the default system configuration, the repository containing these packages is called βFreeBSD-baseβ, but honestly any name may be used β you do you. π the repository name can be used with pkg(8) to restrict package operations to just the base system packages, which is lowkey essential.
packages for all supported FreeBSD releases as well as active βSTABLEβ and βCURRENTβ branches are hosted on the Internet at https://pkg.freebsd.org. these packages get updated when new errata or security updates are released (for supported release versions), or twice daily for development branches. twice daily!! the dedication, the main character energy. π
alternatively, packages may be built from the system source tree according to the instructions in build(7), which lets you update the system from source code using packages. options, we love options. π¦
π PACKAGE ORGANISATION π
so to allow customisation of the installed system, each package is split into several subpackages which contain different components of the package. for the package FreeBSD-foo, the following subpackages may be available:
FreeBSD-fooβ base files for the package (typically executables)FreeBSD-foo-libβ native runtime librariesFreeBSD-foo-lib32β 32-bit compatibility runtime librariesFreeBSD-foo-devβ development files (headers and static libraries)FreeBSD-foo-dev-lib32β 32-bit development filesFreeBSD-foo-dbgβ debugging symbolsFreeBSD-foo-manβ manual pages. manual pages are only packaged separately if theWITH_MANSPLITPKGsrc.conf(5)option was enabled when building the system, which is not the default. (iykyk)
the exact set of available subpackages differs for each individual package. for example, some packages may not provide any development files, in which case the -dev subpackage is not present. no dev files, no dev subpackage β simple as that. π
π PACKAGE SETS π
package sets are meta-packages which do not contain any files themselves, but depend on a selection of other packages, such that each package set allows the complete set of packages for a supported workload to be installed. meta! iconic behaviour honestly. β¨
package sets are provided as packages named FreeBSD-set-<name>. the following package sets are available in the base system:
minimalβ the minimal set of packages required to bring up a multi-user FreeBSD system. this includes the core system, along with packages required for hardware support (such asdevmatch(8)and downloadable firmware), and basic networking, including DHCP and IEEE Std 802.11β’ wireless networks. πminimal-jailβ the equivalent ofminimalfor systems running in ajail(8)environment. this set excludes hardware support not typically required for jails.develβ development tools, including C/C++ compilers, the link loader, and other tools such asar(1)andnm(1). this set also includes native development files (headers and static libraries) for all packages. compilers!! we love her πoptionalβ optional software which is not part of either thedevelorminimalsets.optional-jailβ the equivalent ofoptionalfor systems running in ajail(8)environment. this set excludes system functionality which typically does not work or is not useful in a jail.lib32β 32-compatibility libraries, for running 32-bit applications on a 64-bit host system. this set includes both runtime libraries and development files.baseβ the complete base system, excluding tests, the system source code, and debugging symbols. installing thebaseset is equivalent to installingminimal,develandoptional.base-jailβ the equivalent ofbasefor systems running in ajail(8)environment. this set excludes system functionality which typically does not work or is not useful in a jail. installing thebase-jailset is equivalent to installingminimal-jail,develandoptional-jail.srcβ the system source tree for the userland and kernel, installed in/usr/src.testsβ the system test suite, installed in/usr/tests.kernelsβ all available system kernels. all of them. π
π₯ EXAMPLES π₯
install a single piece of userland
install the vi(1) text editor on the running system:
pkg install FreeBSD-vi
install userland to a jail
install a new jail(8) system using the minimal-jail package set:
pkg -r /jails/myjail install FreeBSD-set-minimal-jail
install native compilers
install C/C++ compilers on the running system:
pkg install FreeBSD-set-devel
update the currently running system
apply available updates to the running system:
pkg upgrade -r FreeBSD-base
install cross compilers
install the development toolchain for FreeBSD/powerpc64le in an alternate root (for example, to support cross-compiling software for a different target than the host system):
pkg -r /ppcdev -oABI=FreeBSD:16:powerpc64le \
install FreeBSD-set-devel
adding a locally built repository for snapshots
disable the predefined repository, and add a local repo for locally built base system packages:
cat << EOF > /usr/local/etc/pkg/repos/FreeBSD.conf
FreeBSD-base: { enabled: no }
FreeBSD-local: {
url: "file:///usr/obj/usr/src/repo/${ABI}/latest",
enabled: yes
}
EOF
the packages are created by the build(7) system at ${REPODIR}/${PKG_ABI}/<VERSION>, which defaults to the example directory. π
note: the repo must have a different name than the predefined repository. no duplicates, bestie. π
unregister a currently running system
systems managed through pkg(8) can be unregistered from the package manager β for example to upgrade in-place via βmake installworldβ. see build(7).
to unregister the base system from the package manager:
pkg unregister -fg 'FreeBSD-\*'
then, disable the base system package repository. if a configuration file was created in /usr/local/etc/pkg/repos/ to enable base system packages, remove it:
rm /usr/local/etc/pkg/repos/FreeBSD-base.conf
alternatively, if it is desired to keep it, edit the file and change βenabled:β to βnoβ to disable the entry.
warning: this is a destructive action which will prevent updating the base system via pkg(8). like, fr fr, be careful. π
π¦ SEE ALSO π¦
πΈ HISTORY πΈ
support for installing the base system as packages was introduced in FreeBSD 15.0. earlier releases supported a subset of this functionality. support for unregistering an existing installation appeared in pkg 2.5. glow-up timeline honestly. β¨
β CAVEATS β
upgrading from a RELEASE to a STABLE or CURRENT branch requires βpkg upgrade -fβ. don't forget the -f, bestie, it literally will not work otherwise. π
mwah π this page came from the Debian flavour of the Miscellaneous Information Manual, dated April 23, 2026 β and that's the whole FREEBSD-BASE(7) tea. slay, install responsibly, and go touch some /usr/src. π«Άπ
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π the page's license: ISC
- Copyright (c) 2025 Lexi Winter
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms