2

The Windows desktop proprietary softwares I see are usually distributed as statically compiled binary only files, possibly with some dlls, and the needed data files bundled in a package unpacked in a Program Files folder. This is possible because the Windows application developers know that their users will all have a computer with an x86_64 CPU from Intel of AMD with a Windows XP or higher OS installed, which will run their Visual-Studio-compiled binaries without complaining.

So, can I expect something similar in the Unix world? I often find the "compile yourself" way of program distribution inconvenient for simple purposes. Say, I want to ask a friend to test my program for a Linux machine. Apart from whether or not they have a Linux computer, I don't want to ask them to install all, possibly 10 or more, dependencies. A distro with a decent package manager will do this job quite simply, but not all versions of Linux have a good package manager. Also, when it comes to running "make install" manually, it is often nearly impossible to uninstall.

Is it generally possible in Linux to distribute a software binary-only expecting that it will run nicely at least in computers with an x86_64 CPU and a Linux OS installed? For example, distributing as a zip folder with which the user can simply unzip and double-click "start" or type "./start".

  • Unix and Linux are different things, not all Unix and Linux exes have comatability, i don't know about Linux (which was your actual question, but you said "Unix world"). – DisplayName Nov 06 '14 at 22:15
  • 2
    "Are Linux Executables Compatible through All (x86_64) Linux Systems?" No. – Michael Homer Nov 06 '14 at 22:16

1 Answers1

2

Yes, if you build with the exact compiler and library versions specified by the Linux Standards Base. Hardly anybody does this because it means restricting yourself to libraries several years old, and even then you only get a handful of basic system libraries and you still have to bundle a lot of dependencies.

o11c
  • 1,408
  • 7
  • 13