The last couple of days I have seen several people asking if/how to use pkgsrc. What is pkgsrc actually?
The wikipedia entry defines it as following: pkgsrc (package source) is a package management system for Unix-like operating systems. It is used as the primary package management system on NetBSD.
Most people do quote the article of this site as the source of howto install pkgsrc on a slackware machine. Lets have a closer look on how this works shall we? [0]
Added NOTE: Just so people are clear about this. This blog entry is a rant against the article mentioned above. Please read the article first before commenting, as this explains where I come from.
During the initial install you have remove roughly 91%!!! of all slackware packages [1]. To me this seems at least a bit strange. This is not what a decent package tool should do. To replace half of your operating system with what *they* seem is right. Even swaret/slaptget don’t do this, and they manage to break more than their fair share of boxen.
The next step is to install a kernel source, and actually go about breaking the kernel headers. This to me seems absolutely preposterous. Not only are you stuck with one specific kernel, every time you upgrade your kernel, things might just break. There is a good reason why kernel-headers and kernel source are split apart [2]. I honestly can’t grasp why it is needed to go and break this.
Of course, pkgsrc can’t rely on Slackware’s ftp client, no we have to use NetBSD. It just all adds up in many different ways on how to ‘bork’ your system completely.And when all is said and done and you have added the 92% off all the applications back to your system (lets recompile everything!!) plus you are probably forced to use pkgsrc for the rest of your life.
The fun thing is that the author mentions that slackware-9.1 has a broken libstdc++.la and libsupc++.la. I have to really wonder if they are broken (and if they are why hasn’t anyone reported it) or are they broken after pkgsrc has basically done things to the system it wasn’t intended too and thus pkgsrc causes it. It seems to me that pkgsrc does install itself by default with a --prefix=/usr/local/ instead of --prefix=/usr/. If that is the truth, I wonder if installs all the packages into /usr/local/ as well.
Okay, granted, pkgsrc may have a huge database with over 6800 packages, but, quantity doesn’t always mean quality. A good example of that is to compare SlackBuilds.org versus linuxpackages.net, the latter having more packages but the quality of some of them are really really bad.
And when all is said and done, you have a package manager that gets into your way. The beauty of the pkgtools on slackware is, it doesn’t get into your way. It does the job and it does it well. I can to a certain point understand people wanting to use a certain tooling, but if you have to first break your system to actually use that tooling you really have to wonder what exactly it is you are doing.
[0] – Please note that the article is actually based on slackware-9.1. Which is quite different from slackware-11.0
[1] based on the fact that Patrick considers Slackware to be a full install and not counting the packages in extra/
[2] See rworkmans reply on linuxquestions for a good explanation
final note: Yes, I am highly biased :D