Time to bid farewell to the old pkg_ tools

February 3, 2014 by · 3 Comments 

There comes a time in the life cycle of just about every software package that it has bee re-evaluated, refreshed, deprecated or just retired.

It is time that we bid farewell to the old pkg_* software that has been part of FreeBSD since the beginning, and has served us well. After years of development, testing, and playing, pkg(8) has become a suitable replacement.

Pkg is the Next Generation package management tool for FreeBSD. It is the replacement for the current pkg_info/pkg_create/pkg_add tools that ports use to register local packages and which provide remote packages. Its main goals are to facilitate remote binary package upgrades. It also works with ports without remote binary packages.

Pkg, combined with the quarterly release package sets, enables easy installation and safe upgrades for binary packages. Signed, binary packages are available for all supported FreeBSD releases on the i386 and  amd64 platforms from pkg.freebsd.org. Additionally, for those compiling ports from source, pkg’s new database format gives more fine-grained querying and management of installed software.

New features on the drawing board, like automatic pkg-plist generation, sub-packages, creating multiple packages containing different parts of a port from one build process, and flavours, being able to ask for e.g. a webserver, without directly specifying a specific one, cannot be implemented in the old pkg_* tools and those plans are currently on hold.

You are not obligated to switch to binary packages, if you still prefer to compile your own ports, it is a simple matter of installing ports-mgmt/pkg, run pkg2ng, add WITH_PKGNG=yes to your make.conf and use pkg <action> instead of pkg_<action>.

You can read more about pkgng on the FreeBSD wiki, https://wiki.freebsd.org/pkgng.

The decision has been made to allow the old pkg_* software to be EoL’d 6 months from now, at September 1, 2014 in all active FreeBSD branches.

Please start testing pkg(8) in your test environments before taking it live, you will find the benefits of full binary updates for your ports to be beneficial in a very short amount of time. Even if you prefer to compile from source, you will still reap the benefits of the modern packaging system.

Be Sociable, Share!

About tabthorpe


3 Responses to “Time to bid farewell to the old pkg_ tools”
  1. Walter Hop says:

    Excellent. pkg is already running very smoothly. It will make the lives of those managing large(ish) deployments much better. Thanks to the smart design of the base pkg bootstrapper and keeping pkg proper in ports, it will be easy to roll out many more improvements in the future.

    Personally, I’m longing for multi-repository use with priorities (e.g. first try the local repo, then fall back to the FreeBSD repo) which should alleviate the necessity of building large repositories. You could just build that single package with that custom option that you need.

    Something like port ‘variants’ or ‘option sets’ would also be highly desirable, so for instance a user might install svn+apache24 or php5+apache24 binary packages which include the necessary Apache module (if I’m correct, the official packages don’t allow this right now, but it’s a huge use case for ISPs). At the other hand, maybe this could be handled without architectural changes by hacking together meta-ports…

    Both of these features could get tricky though, as they can affect the dependency graph, so I guess it’s harder than it seems. For now, running your own pkg repository is the best way to get everything out of pkg. Fortunately, that’s super easy.

  2. Thorsten says:


    does EOL mean, pkg_* will be removed or will only be deactived as default?


  3. Bapt says:

    Support will be totally removed