1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
|
.\" SPDX-License-Identifier: ISC
.\"
.\" Copyright (c) 2025 Lexi Winter.
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd April 14, 2026
.Dt FREEBSD-BASE 7
.Os
.Sh NAME
.\" .Nm pkgbase
.Nm freebsd-base
.Nd base system packages
.Sh DESCRIPTION
The
.Fx
base system may be installed as a set of
.Xr pkg 8
packages, which supersedes the traditional method of installing using
.Xr tar 1
archives.
.Pp
All base packages have names beginning with the string
.Dq "FreeBSD-" ,
and have an origin beginning with
.Dq base/ .
In the default system configuration, the repository containing these
packages is called
.Dq FreeBSD-base ,
but any name may be used.
The repository name can be used with
.Xr pkg 8
to restrict package operations to the base system packages.
.Pp
Packages for all supported
.Fx
releases as well as active
.Dq STABLE
and
.Dq CURRENT
.\" re@ will provide their own repository before release, at which
.\" point this text will need updating.
branches are hosted on the Internet at
.Lk 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.
.Pp
Alternatively, packages may be built from the system source tree
according to the instructions in
.Xr build 7 ,
allowing the system to be updated from source code using packages.
.Sh 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
.Sy FreeBSD-foo ,
the following subpackages may be available:
.Pp
.Bl -tag -width "FreeBSD-foo-dev-lib32" -compact
.It Sy "Package name"
.Sy "Description"
.It FreeBSD-foo
Base files for the package (typically executables)
.It FreeBSD-foo-lib
Native runtime libraries
.It FreeBSD-foo-lib32
32-bit compatibility runtime libraries
.It FreeBSD-foo-dev
Development files (headers and static libraries)
.It FreeBSD-foo-dev-lib32
32-bit development files
.It FreeBSD-foo-dbg
Debugging symbols
.It FreeBSD-foo-man
Manual pages.
Manual pages are only packaged separately if the
.Sy WITH_MANSPLITPKG
.Xr src.conf 5
option was enabled when building the system, which is not the default.
.El
.Pp
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
.Sy -dev
subpackage is not present.
.Sh 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.
.Pp
Package sets are provided as packages named
.Sy FreeBSD-set-<name> .
The following package sets are available in the base system:
.Bl -tag -width "minimal-jail"
.It minimal
The minimal set of packages required to bring up a multi-user
.Fx
system.
This includes the core system, along with packages required for
hardware support (such as
.Xr devmatch 8
and downloadable firmware), and basic networking, including DHCP and
IEEE Std 802.11\(tm wireless networks.
.It minimal-jail
The equivalent of
.Sy minimal
for systems running in a
.Xr jail 8
environment.
This set excludes hardware support not typically required for jails.
.It devel
Development tools, including C/C++ compilers, the link loader, and
other tools such as
.Xr ar 1
and
.Xr nm 1 .
This set also includes native development files (headers and static
libraries) for all packages.
.It optional
Optional software which is not part of either the
.Sy devel
or
.Sy minimal
sets.
.It optional-jail
The equivalent of
.Sy optional
for systems running in a
.Xr jail 8
environment.
This set excludes system functionality which typically does not work
or is not useful in a jail.
.It lib32
32-compatibility libraries, for running 32-bit applications on a
64-bit host system.
This set includes both runtime libraries and development files.
.It base
The complete base system, excluding tests, the system source code,
and debugging symbols.
Installing the
.Sy base
set is equivalent to installing
.Sy minimal ,
.Sy devel
and
.Sy optional .
.It base-jail
The equivalent of
.Sy base
for systems running in a
.Xr jail 8
environment.
This set excludes system functionality which typically does not work
or is not useful in a jail.
Installing the
.Sy base-jail
set is equivalent to installing
.Sy minimal-jail ,
.Sy devel
and
.Sy optional-jail .
.It src
The system source tree for the userland and kernel, installed in
.Pa /usr/src .
.It tests
The system test suite, installed in
.Pa /usr/tests .
.It kernels
All available system kernels.
.El
.Sh EXAMPLES
.Ss Install a single piece of userland
Install the
.Xr vi 1
text editor on the running system:
.Bd -literal -offset indent
pkg install FreeBSD-vi
.Ed
.Ss Install userland to a jail
Install a new
.Xr jail 8
system using the
.Sy minimal-jail
package set:
.Bd -literal -offset indent
pkg -r /jails/myjail install FreeBSD-set-minimal-jail
.Ed
.Ss Install native compilers
Install C/C++ compilers on the running system:
.Bd -literal -offset indent
pkg install FreeBSD-set-devel
.Ed
.Ss Update the currently running system
Apply available updates to the running system:
.Bd -literal -offset indent
pkg upgrade -r FreeBSD-base
.Ed
.Ss 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):
.Bd -literal -offset indent
pkg -r /ppcdev -oABI=FreeBSD:16:powerpc64le \e
install FreeBSD-set-devel
.Ed
.Ss Unregister a currently running system
Systems managed through
.Xr pkg 8
can be unregistered from the package manager \(em
for example to upgrade in-place via
.Dq make installworld .
See
.Xr build 7 .
.Pp
To unregister the base system from the package manager:
.Bd -literal -offset indent
pkg unregister -fg 'FreeBSD-\e*'
.Ed
.Pp
Then, disable the base system package repository.
If a configuration file was created in
.Pa /usr/local/etc/pkg/repos/
to enable base system packages, remove it:
.Bd -literal -offset indent
rm /usr/local/etc/pkg/repos/FreeBSD-base.conf
.Ed
.Pp
Alternatively, if it is desired to keep it,
edit the file and change
.Dq Li enabled:
to
.Dq Li no
to disable the entry.
.Pp
.Sy Warning :
This is a destructive action
which will prevent updating the base system via
.Xr pkg 8 .
.Sh SEE ALSO
.Xr build 7 ,
.Xr pkg 8 ,
.Xr src.conf 5
.Sh HISTORY
Support for installing the base system as packages was introduced in
.Fx 15.0 .
Earlier releases supported a subset of this functionality.
Support for unregistering an existing installation appeared in pkg 2.5.
.Sh CAVEATS
Upgrading from a RELEASE to a STABLE or CURRENT branch requires
.Dq Li pkg upgrade -f .
|