What can prevent a binary Linux distribution compiled on a different platform from running?
We have 2 different compilation machines: red hat as4 and as5. Our architects require us developers to compile our program on these two platforms each time, before copying them on their respective machine during production.
What could prevent us from compiling our application on only one machine (say red has as 4, for example) and deploying this binary to all target platforms?
What is your point of view and could you identify the specific problems you are facing? What problems can I face with this?
a source to share
You can run into shared library incompatibilities by building one system and working on another. This is not particularly similar to the sequential versions of Red Hat, but it is possible.
Another problem you may have run into is that one system has 32 bits and the rest is 64 bits. In this case, an application compiled on a 64-bit machine will not work on a 32-bit machine.
a source to share
Prevent? Nothing. An application that runs on EL4 must also run on EL5, prohibiting things like external applications that are different versions or outdated libraries. That said, Red Hat loves to do all sorts of tweaks to gcc that include security and code optimizations, and you'll be missing out on any EL5 improvements if you just copy over the EL4 compiled binary.
Besides, everyone needs a break .
a source to share
Whoa, when compiling stuff, then do developers copy binaries into production? This is some pretty nasty process that you have.
Yes, of course, you can run the same binaries on RHEL 4 and 5 as long as they are the same architecture and you have the dependencies installed.
I would highly recommend that you build your binaries in the RPM, then you can have dependencies built for it, which ensures that it can only be installed when the dependencies are satisfied.
Also, it will allow your QA team ** to install the same binaries and do testing on a non-production system, etc. that they will definitely want to do before they allow software anywhere near the Ops * ** team which then deploy them knowing that the appropriate processes, including testing, have been completed.
** You have one of them, the correct one
*** for sure you have one of them!
a source to share