Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FREEBSD-BASE(7) 	 Miscellaneous Information Manual	 FREEBSD-BASE(7)

NAME
     freebsd-base -- base system packages

DESCRIPTION
     The FreeBSD base system may be installed as a set of pkg(8) packages, which
     supersedes the traditional method of installing using tar(1) archives.

     All base packages have names beginning with the string "FreeBSD-", and have
     an origin beginning with "base/".	In the default system configuration, the
     repository containing these packages is called "FreeBSD-base", but any name
     may be used.  The repository name can be used with pkg(8) to restrict pack-
     age operations to the base system packages.

     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 are updated when new errata or security updates are released
     (for supported release versions), or twice daily for development branches.

     Alternatively,  packages may be built from the system source tree according
     to the instructions in build(7), allowing the system  to  be  updated  from
     source code using packages.

PACKAGE ORGANISATION
     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:

     Package name	    Description
     FreeBSD-foo	    Base files for the package (typically executables)
     FreeBSD-foo-lib	    Native runtime libraries
     FreeBSD-foo-lib32	    32-bit compatibility runtime libraries
     FreeBSD-foo-dev	    Development files (headers and static libraries)
     FreeBSD-foo-dev-lib32  32-bit development files
     FreeBSD-foo-dbg	    Debugging symbols
     FreeBSD-foo-man	    Manual pages.  Manual pages are only packaged  sepa-
			    rately  if	the  WITH_MANSPLITPKG src.conf(5) option
			    was enabled when building the system, which  is  not
			    the default.

     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.

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 al-
     lows the complete set of packages for a supported workload to be installed.

     Package  sets  are provided as packages named FreeBSD-set-<name>.	The fol-
     lowing 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 as devmatch(8)
		   and downloadable firmware), and basic  networking,  including
		   DHCP and IEEE Std 802.11tm wireless networks.

     minimal-jail  The	equivalent  of	minimal for systems running in a jail(8)
		   environment.  This set excludes hardware  support  not  typi-
		   cally required for jails.

     devel	   Development	 tools,  including  C/C++  compilers,  the  link
		   loader, and other tools such as ar(1) and  nm(1).   This  set
		   also  includes  native  development files (headers and static
		   libraries) for all packages.

     optional	   Optional software which is not part of either  the  devel  or
		   minimal sets.

     optional-jail
		   The	equivalent  of optional for systems running in a jail(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  li-
		   braries and development files.

     base	   The	complete base system, excluding tests, the system source
		   code, and debugging symbols.   Installing  the  base  set  is
		   equivalent to installing minimal, devel and optional.

     base-jail	   The equivalent of base for systems running in a jail(8) envi-
		   ronment.   This set excludes system functionality which typi-
		   cally does not work or is not useful in a  jail.   Installing
		   the	base-jail  set is equivalent to installing minimal-jail,
		   devel and optional-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.

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 tar-
     get 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.

   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).

SEE ALSO
     build(7), pkg(8), src.conf(5)

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.

CAVEATS
     Upgrading	from  a  RELEASE  to  a  STABLE  or CURRENT branch requires "pkg
     upgrade -f".

FreeBSD 16.0 CURRENT		 April 23, 2026 		 FREEBSD-BASE(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=freebsd-base&manpath=FreeBSD+16.0-CURRENT>

home | help