Slashdot Mirror


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?

7 of 62 comments (clear)

  1. Don't Install! by zulux · · Score: 1, Interesting

    Almost every platform has an X-Windows 'client' - just run around and install the X-Windows client and get it to point to one Application server. Then you just upgrade the Applciation Server and presto - you're done.

    Applications that need to print ar a pain, amung other problems, but if you can get away with it then this works well.

    --

    Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

  2. JAR by trompete · · Score: 2, Interesting

    I've seen .JAR files (Java) that worked on every platform. I think it was part of SourceForge's JEdit project.

  3. Re:Speaking of Packaging. by darkpurpleblob · · Score: 2, Interesting
    Can anyone offer some input on how a programmer can redistrubute updated code to the users.
    You could use update software. PowerUpdate, Update Server, RTPatch, and vBuild are a few commercial offerings.
  4. Re:Only 2 options. by N8w8 · · Score: 2, Interesting

    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.
    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 /usr/local, which makes it harder to remove.

    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.

  5. Re:self-extraction by moncyb · · Score: 2, Interesting

    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.

  6. Re:portability before packaging by Anonymous Coward · · Score: 1, Interesting

    HP is giving free accounts to test their hardware/software in it's testdrive program.
    This permits you to test software on linux, *bsd, Tru64, HP-UX, and OpenVms systems.
    Harware available is pa-risc64, alpha, ia32 and ia64.

    I also found a new project that could be interesting to replace autoconf :
    http://sf.net/projects/premk

    Hope this stuff will help :)

  7. Why "install" at all. by baadfood · · Score: 2, Interesting

    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.