pkgng Ships, Replacing FreeBSD's Aging pkg_* Tools
First released August 30, 2012 after two years of development, pkgng consolidated FreeBSD's fragmented package tools into a single command backed by a real database — and became official in FreeBSD 10.
pkgng — the package management tool now simply known as pkg — had its first release on August 30, 2012, after development began in 2010 specifically to replace FreeBSD’s aging, fragmented pkg_* toolset.
What was wrong with the old tools
The system pkgng replaced spread package operations across several separate commands — pkg_add, pkg_create, pkg_delete, pkg_info, pkg_updating, pkg_version — each a separate binary with its own quirks, backed by flat-file metadata that made searching for package information slow and limited.
What pkgng consolidated
pkgng replaced that entire fragmented toolset with a single command, pkg, covering installation, creation, removal, and querying through one consistent interface. Underneath, it stored package metadata in a real SQLite database rather than flat files — making metadata queries (what depends on this package, what does this package provide, searching by description) dramatically faster and more capable than grepping through flat text files ever could be.
The transition to becoming official
pkgng was initially an optional, install-it-yourself alternative to the existing tools, giving the community time to migrate at their own pace and giving the project time to harden it against real-world use. That transition period ended with FreeBSD 10 in 2014, when pkgng became the base system’s official, default package manager and the legacy pkg_* utilities were removed entirely — meaning pkg was no longer optional tooling but the only supported path for binary package management.
Why a two-year public transition mattered
Replacing a system’s package manager is a high-stakes change — nearly every FreeBSD installation depends on package management working correctly, and a botched migration could leave systems administrators unable to install or update software reliably. Shipping pkgng as an available, optional alternative for two full years before making it mandatory in FreeBSD 10 gave the ecosystem — third-party tooling, documentation, administrator habits — real time to adapt, rather than forcing a disruptive overnight switch.
Sources: A Quick Look at the History of Package Management on FreeBSD — Klara Systems, Chapter 4. Installing Applications: Packages and Ports — FreeBSD Documentation Portal