It’s amazing how difficult it can be to find certain things on Google. It’s been a while since I’ve used FreeBSD, so I couldn’t precisely remember which way was the correct way of building binary packages. Some of the more “official” documentation seems to suggest creating a jail and building the packages from there. While the jailed approach is a good one, it isn’t exactly what I was looking for since the FreeBSD system I have running in a VM roughly mirrors my requirements for one that I’m intending to install on my desktop. As it turns out, I had forgotten about pkg_create; more importantly, I didn’t know that since FreeBSD 6.0, pkg_create allows for generating all dependencies for a given package (the last version of FreeBSD I used was 5.2).
Anyway, I’ll cut this short. I found this very handy link for creating binary packages in FreeBSD: http://www.math.colostate.edu/~reinholz/freebsd/pkg_create.html.
The FreeBSD ports collection may be a tough nut to crack if you’re used to easier package distribution systems like those found on Ubuntu or Redhat. In many ways, I find it easier to manage. The ports collection grants you greater control over what is installed, how it is configured, what dependencies you’d like to build (or rebuilt), and what upgrade path you’d like to choose whenever upgrading packages. The ports collection is so good, in fact, that several Linux distributions now borrow from the principles set forth by the FreeBSD foundation what seems like eons ago (Gentoo and its derivatives, specifically). It can be daunting to manage ports at first, but you’ll find that it offers you freedom that simply couldn’t be had from binary packages.
After all, FreeBSD is about freedom.
I used to use FreeBSD to exclusion of most other *nixes (even other BSDs). So far, I’ve been pretty impressed with the changes and progress the project has made. It’s an incredible leap forward from the BSD I used to know back in the 5.x branch.