rakhesh shows …

April 30, 2006

PC-BSD’s package management philosophy

Filed under: Links — rakhesh @ 8:15 am

The PC-BSD package manager doesn't use pkg_add, or the ports system, or even RPM. Instead we've developed more of a straight-up installer approach. Software packages are installed into their own separate directories, complete with libraries and all. The goal is to have installed programs be entirely self contained, so that if the lib's on the system change, the package will be unaffected. Each package is installed into its own subdirectory under "/usr/local/MyPrograms/". The PC-BSD installer takes care of making links, setting up binaries to find their required libraries, creating icons, etc. Removing the app is also managed by PC-BSD. The directory is simply removed, along with any relevant icons / links created.

This approach is something major OS's all learned to master very early on, (I.E. Windows ®, Mac ®) but the *nix world still struggles with. Many systems and distributions install packages and libraries all over the system, creating a tangled web of dependencies, where one wrong move could render many other programs inoperable. This can make installing or upgrading programs very difficult, unless a specific RPM or binary has been created for your exact distribution, which sometimes are in short supply. §

PC-BSD 1.0, the first stable release of this Desktop oriented OS based on FreeBSD 6.0 and KDE 3.5.2 is out. I had given it a shot long ago, didn't like it much. (To be fair, it was a beta/ alpha release; so that could be one reason). I like having the full power of the OS to me, not just a glorified GUI version. And so I didn't like PC-BSD much then coz it was FreeBSD and yet was not FreeBSD. It didn't have an identity of its own.

Today however, while reading the para above on their website (in the Projects section), I liked what I read. And now I see that PC-BSD is not just about a glorified GUI pasted on FreeBSD 6.0; rather, it has some ideas and innovations on its own. Personally, I like the fact that they are doing things this way. It amazes me on how much energy and resources are spent towards package management concepts on both Linuxes and BSDs; and I keep wondering how come the Windows world doesn't seem to make such a big fuss out of it. If Windows can have a simple double click way of installing, then why not Linux or BSD?

One thing I used to think was that maybe the Windows approach is "bad" in some ways, coz it allows you to download stuff from all over the place, and that can in turn cause stability and other problems for the OS maybe. You know, perhaps the newly installed thing isn't compatible with some other app, etc etc. But then I realized that even the BSD or Linux world allows u to download stuff from all over the place — and so that can't really be a differentiating factor. Maybe, then, its a matter of size or something? In Windows, each downloaded app is self-sufficient — it contains all its required libraries etc etc. And so it doesn't depend on anything else; but at the same time its a bit larger download/ installation. Linux and BSD on the other hand have apps depending on other apps, and so this way they "build upon" each other. Downloads and installed sizes are lesser coz a lot of stuff is shared between apps; but the side effect is that you have a mesh of dependencies.

From a geeky point of view I guess its more "satisfying" to know that your system doesn't have any unnecessary bloat etc. As in, the problem is as optimized as it can be. No libraries etc are installed twice. No space is wasted. And so on. And so the Linux or BSD way rules. But from a end user point of view, I'd say the Windows way is a lot preferred. Who cares if you have 2-3 copies of a library in your system? As long as they don't cause any problems with each other and the system as such, and I can have a much easier way of downloading and installing packages, why not? (In Windows for instance, I can download the setup file for a package at work when I am online, and go install it at home offline. With Linux or BSD, I can't be sure of that. Most prolly the file will have some dependencies, and so I have to go online from home too to try and download them).

Ofcourse, all this is just my guess work.

On a related note, check out GoboLinux.


Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: