3

I've written a small toy application using SDL2. I want to distribute it the most user-friendly way, for Linux.

  • I should make a deb package, but then I should also make packages for other distros, which I'm not familiar. (I am also not familiar with packaging deb. Yet.)
  • I should compile it to static, and distribute the single ELF, but there is no static version of SDL2 available, so I have to compile all the dependencies myself, which is lot of pain.
  • Quick-and-dirty: release the ELF, it will run distros with SDL2 installed.

Short: what's the Linux equivalent of setup.exe?

  • 1
    I highly recommend you look into deb, rpm, Linux package repositories, and Linux packaging in general first. The Linux ecosystem is very different from Windows, although the lines are blurring a little bit as of Windows 10. I think there is some foundational knowledge you need to research on your own before asking this question. – user22815 Jun 8 '15 at 13:32
  • I'm using only Linux for years, but I've just realized now, that I never shipped such type of software before. What's I'm afraid of that after 3-4 distro upgrade (2 years) my app will not launch due to an obsolete lib. I can install from source, but "my mom" couldn't. – ern0 Jun 8 '15 at 13:54
  • As far as I know you are not restricted to dynamic linking in your software package. I have not packaged anything in years but it is more a wrapper for executing install scripts than anything. The contents of your binary are pretty much not important to the package manager. – user22815 Jun 8 '15 at 14:02
2

You might want to take a look at the following projects:

The first two projects are installers that have been used to package many games. MojoSetup's page has a list of games packaged with it, for example.

The AppImageKit's documentation has guidelines on building your binaries in such a way that they are usable on as many different distributions and as many different versions of the same distribution as possible: https://github.com/probonopd/AppImageKit/wiki/Creating-AppImages

While packaging an application to be portable, you will probably be interested in finding out about the "rpath" concept: https://www.technovelty.org/linux/exploring-origin.html

You cannot just statically link everything as it is not recommended to link statically against GNU Libc -- cannot find a relevant link at the moment.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.