Skip to content

Installing Packages

pkgdemon edited this page Aug 21, 2026 · 4 revisions

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

The NextBSD repository

NextBSD publishes its own base, kernel and userland as packages, which is how you move a running system forward without reinstalling.

Drop a config file matching your architecture into /usr/local/etc/pkg/repos/NextBSD.conf:

amd64

NextBSD: { url: "https://github.com/nextbsd-redux/nextbsd-pkg/releases/download/continuous-amd64", enabled: yes }

arm64

NextBSD: { url: "https://github.com/nextbsd-redux/nextbsd-pkg/releases/download/continuous-arm64", enabled: yes }

Then:

pkg update
pkg install NextBSD-everything    # base + kernel + userland
pkg upgrade                       # rolling — picks up each new snapshot

What is in it

Package amd64 arm64 Contents
NextBSD-freebsd-compat Base: libc, PAM, FreeBSD-source commands
NextBSD-kernel The kernel
NextBSD-kernel-extensions Driver kexts (amd64 only today)
NextBSD-userland Darwin Mach runtime and daemons
NextBSD-everything Meta-package depending on all of the above

Packages are currently unsigned. Signing is one of the remaining pre-production steps, so pkg will not be able to verify authenticity yet.

Everyday package use

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 dependencies

Third-party packages land under /usr/local, exactly as on FreeBSD.

Starting what you installed

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.

Keeping a system current

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 kernel

Clone this wiki locally