4 ms·
TL;DR: use pkgng. I begin to feel like a broken record saying this again and again, but: ports is a clever tool, but it is not a solution to the problem
by xenophonf 11y ago
TL;DR: use pkgng.
I begin to feel like a broken record saying this again
and again, but: ports is a clever tool, but it is not
a solution to the problem of package management.
Of course the ports tree itself is just package build infrastructure. Those makefiles aren't a fully realized package management system. No one disputes that.
Prior to pkgng the answer to all of your problems (which basically boil down to wanting an apt- or yum-like user experience) was to create your own private binary package repo using tinderbox and manage installed packages using something like "portupgrade -PP" or portmaster. If you didn't need anything built with non-default options, you could use portupgrade/portmaster along with the public binary package repos, although I don't know how well maintained these were. If you didn't want to bother with tinderbox (and this is the route I took), you would use portupgrade or portmaster to handle all package management, with all packages built locally from source (ports tree). This latter approach worked well for me even though package building took a while, since all of my FreeBSD systems were servers and each only had a limited set of packages installed. Of course it doesn't scale. I was rather under the impression that most enterprise-scale FreeBSD installations went the tinderbox route.
So, I think I need to stop complaining about it, and
start asking the right questions of BSD users. Why is
ports such a fiercely defended thing when it has so
many weaknesses compared to modern package managers?
Does pkgng actually solve these problems (I can't
really tell, it seems to be a meta-package system
that still sits atop ports)?
I'm going to answer your second question first: use pkgng. Seriously. It's a complete binary package management system. It works just like apt or yum. The binary package repos are well maintained. Most everything people usually want is in there.
I can't speak for other BSD sysadmins, but I love being able to customize package builds to meet my needs. Sure, it's possible to build one's own debs or rpms or what have you, but I think poudriere makes maintaining a private package repo much simpler than something like Spacewalk. And in fact, that's how I do things nowadays. I maintain my own private package repo with everything built to my liking and updated my schedule.