I’ve recently discovered FreeBSD’s new package manager and it looks poised to become the default package manager soon in FreeBSD 10.

After watching the video from BSDCAN I realized that there was some pretty serious effort going into the project, but still a bit rough around the edges. Some wiki reading later, I was ready to dive in.

More sources of information seem to be springing up about this new package manager, and though it does not solve all of the issues surrounding package management in FreeBSD such as custom options on your ports, it sure is a vast improvement from previous tools that are available for FreeBSD for my use cases.

I spend a lot of time working with Puppet, so once I got everything rolling it was natural for me to want to use it with Puppet. I decided to try to work out a Puppet package provider since one didn’t seem to exist. I published my work earlier this week. Some of the initial groundwork was based on some work that was done by fellow Puppet coder, Ody. So if you use Puppet and want to use PkgNG, try it out. Let me know what works or what needs improved.

I hope this project can grow into something useful for lots of people, maybe even submitted to core Puppet.

Be aware that package removal currently does not work, but this is a bug in the pkg command that does not respect the -q option for remove. It should be fixed upstream shortly.

I’ve run into a couple of issues with the PkgNG, but all in all, its been working pretty well for me. Give it a try if you are looking for something better than the standard pkg_* tools on FreeBSD.