-
Notifications
You must be signed in to change notification settings - Fork 6
Installing Packages
NextBSD uses pkg(8), the same package manager as FreeBSD, and the kernel is
ABI-compatible — so ordinary FreeBSD packages install and run.
There are two repositories in play: FreeBSD's (for third-party software) and NextBSD's own (for the OS itself).
Nothing to set up — it is already configured. Every published .img and
.iso ships with both package repositories enabled, so pkg works the moment
you boot:
| File | Repository |
|---|---|
/usr/local/etc/pkg/repos/NextBSD.conf |
NextBSD's own base, kernel and userland |
/usr/local/etc/pkg/repos/FreeBSD.conf |
FreeBSD's ports repository, for third-party software |
/usr/local/etc/pkg.conf |
Pins the ABI to FreeBSD:15:<arch>
|
The NextBSD repository points at the per-architecture continuous release, so it tracks whatever CI published most recently.
pkg update
pkg upgrade # rolling: picks up each new snapshotA booted image already has NextBSD-everything installed, so pkg upgrade is
the normal way to move a system forward. If you ever need to reinstall the set
explicitly:
pkg install NextBSD-everything # base + kernel + userland| Package | amd64 | arm64 | Contents |
|---|---|---|---|
NextBSD-freebsd-compat |
✓ | ✓ | Base: libc, PAM, FreeBSD-source commands |
NextBSD-kernel |
✓ | ✓ | The kernel |
NextBSD-kernel-extensions |
✓ | ✓ | Driver kexts — 17 on amd64, the 7-kext virtio-gpu stack on arm64 |
NextBSD-userland |
✓ | ✓ | Darwin Mach runtime and daemons |
NextBSD-everything |
✓ | ✓ | Meta-package depending on all of the above |
Packages are currently unsigned — the shipped config sets
signature_type: none, sopkgcannot verify authenticity. Signing is one of the remaining pre-production steps.
You should not need this, but if the file is lost or you are bootstrapping
NextBSD packages onto a system that did not come from a published image, write
/usr/local/etc/pkg/repos/NextBSD.conf as:
NextBSD: {
url: "https://github.com/nextbsd-redux/nextbsd-pkg/releases/download/continuous-amd64",
enabled: yes,
signature_type: none,
}
Swap continuous-amd64 for continuous-arm64 on AArch64.
pkg update # refresh repository catalogues
pkg search nginx # find something
pkg install nginx # install it
pkg info # what's installed
pkg info -l nginx # what files a package owns
pkg delete nginx # remove it
pkg upgrade # update everything
pkg autoremove # drop orphaned dependenciesThird-party packages land under /usr/local, exactly as on FreeBSD.
A package that installs an rc.d script will not start the FreeBSD way — there
is no rc.conf here. You need a launchd job plist in
/Local/Library/LaunchDaemons/ instead. See
Service Management with launchd for how to
write one, including the foreground-flag trap that catches most people.
Continuous builds republish on every merge to main, so pkg upgrade against
the NextBSD repository tracks the rolling stream. There is no stable release
train yet — see the continuous release
for what is current.
Check what you are running:
nextbsd-version # userland build stamp
nextbsd-version -k # installed kernel
nextbsd-version -r # running kernelNextBSD is pre-production — continuous builds only, no stable release yet. Questions are welcome in Discussions.