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  configu-
       ration,	 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	 package 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 ac-
       cording to the instructions in build(7),	allowing the system to be  up-
       dated 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 executa-
			      bles)
       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
			      separately  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 them-
       selves, but depend on a selection of other  packages,  such  that  each
       package	set  allows the	complete set of	packages for a supported work-
       load to be installed.

       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
		     as	devmatch(8) and	downloadable firmware),	and basic net-
		     working,  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 typically 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 function-
		     ality which typically does	not work or is not useful in a
		     jail.

       lib32	     32-compatibility libraries, for running  32-bit  applica-
		     tions  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 the base
		     set  is  equivalent  to  installing  minimal,  devel  and
		     optional.

       base-jail     The  equivalent  of base 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.
		     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,  in-
		     stalled 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	alter-
       nate root (for example, to support cross-compiling software for a  dif-
       ferent 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	direc-
       tory.

       Note: The repo must have	a different name than the  predefined  reposi-
       tory.

   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  functional-
       ity.   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=pkgbase&sektion=7&manpath=FreeBSD+16.0-CURRENT>

home | help