Thursday, April 16, 2009

RPM v. DEB

RPMs and DEBs are just different. While I am a fan of apt-get, they make a lot of assumptions and take away from a lot of the configurability that an rpm allows. Of course, the same old argument between Linuc and Windows in general, is that it is whether or not it is useful to the average individual to take the time to learn the difference, and as usual no, but just the same, that is no reason to take such configurability away. Most people never install anything ever, especially not system "stuff". So where is the line? Each to their own :)

I find it funny, and a little sad when I hear people trying to tell other people what to do or how to standardize Linux. If you make hardware and you would like your hardware to work with other peoples hardware, and both pieces of hardware are in development, then there is room to suggest a standard and find some way for your stuff to work together in the end. On the otherhand, if someone writes a great program, but only specifies dependencies in a README, but never bothers to package it, you have three(ish) basic options: 1) Deal with the fact that it isn't package and compile it yourself. 2) wait for someone to package it for your system, then install it, or 3) Package it yourself.

Not to make it out to be more work than it is, but packaging takes time and effort. From what I have seen, programmers are almost always a different group of people from package maintainers. Any project that packages its own software likely has the job of just package maintenance.

deb packages are also very configurable. I don't think there is anything they can't do. Technically, there is nothing in its design to stop someone from a deb package running the binary every time you install it and never actually installing anything. Just the same, debs can install repositories, it just isn't standard to do that. Personally, I think it is better to let people choose whether or not they want their installed third party software to be self maintaining along with the rest of the system. If there is a repo, make note of it on the website and in the documentation. All a deb has is metadata, install script, uninstall script, and files. This means debs can do anything scripts and files can do. :) as for what apt-get does is store the metadata such that it can know what script sets have already been run, and if others need to be run, etc. The limits comes down to what the package maintainer chooses to put in their install script.

rpms are easier to build and maintain. debs are much more of a pain in the ass. debs are convenient for the vast majority of users, and they are a lot of work. Would deb users like to see every project out there have a deb available? Of course! But at the sacrifice of development time, or your own? Even if debs were "always better in every way", you are only talking about an end product and not the time that went into putting it together.

So whenever I hear someone say "I wish there was a deb", I say "Your probably not alone, why don't you go do that! Never done package maintenance? Wonderful, here's the manual and if next week you are still confused, i'd be happy to walk you through it."

Linux is about personal responsibility that can ideally easily benefit everyone, imo. Not everyone can really handle that.

No comments: