Installing Everywhere?
PlainBlack queries: "Our company has been developing an open source project for a couple years now that has gotten pretty popular. The one thing we haven't yet figured out how to do well is packaging. It seems like every operating system has it's own standards for packaging, and installers, and for each OS we support, we end up adding a lot of time to our packaging process. So my question is, what do all of you do to package your apps? Do you just release source tarballs? Do you manually package your RPMs, EXEs, DEBs, DMGs, BINs, PKGs, [and MSIs] by hand? Do you have an automated build process that creates all the packages? If so, how does it work? Is it available for other developers to use?" There are tons of installers listed on SourceForge, but which one allows the creation of OS packages without too much hassle? Duplicating work, especially software installation procedures, across all supported OSes, is time consuming. Is there an easier way?
I've seen .JAR files (Java) that worked on every platform. I think it was part of SourceForge's JEdit project.
More than enough BS
If I need an app, and there's a Debian package available, I use that. Later on I can remove the package with a simple apt-get command. /usr/local, which makes it harder to remove.
If there isn't a deb available, and I get the tarball and do the "./configure && make install" thingy, the files end up everywhere in
I agree with you that if the packaging isn't done 100% correctly (as often happens with Windows apps), you indeed might get bald because of pulling out your own hair. Fortunately, the obvious and simple workaround for that is shaving your head. Works for me.
Please no self extractors. Especially in Linux. In my experience, 90% of the Linux ones never work. I especially love the ones who say "can't install -- need at least version 2.2.x of GNU libc" when I have 2.3.x (which is backwards compatible). Luckily they're usually bash scripts in front of a tarball, so I can just find the start of the archive and untar it. Even though I can do it, it sucks bigtime.
I also like to know what the package is going to do and what files it will create before it installs. You can't do that with self extractors. Self extractors are a PITA.
Your suggestion of including the dependencies (at least the less common ones) with the package is a good idea though.
I am a great fan of software that you simply extract into a directory, and run from there. Ideally, any further installation would be done by the application itself when it is run and detects that its being run for the first time.