[erlang-questions] Creating an application that is portable across versions of CentOS

Jim <>
Sat Dec 20 03:30:20 CET 2014


I thought one of the value propositions of Erlang was its portability? Both are amd64 architectures. What expectations should one have regarding portability of beam files?

Sent from my iPad

> On Dec 19, 2014, at 5:19 PM, Tuncer Ayaz <> wrote:
> 
>> On Fri, Dec 19, 2014 at 4:55 PM, jim rosenblum wrote:
>> I have a standard OTP application in which I use Rebar to generate a
>> release.
>> When I tar up the appropriate release directory, I can explode it on
>> another CentOS 6.2 machine, and it will run with no problems. But
>> when I explode it on a CentOS 5.2 machine, it will not run giving
>> the following output:
>> 
>> #bin/jc console
>> Exec: /root/test/jc/erts-6.2/bin/erlexec -boot
>> /root/test/jc/releases/1.0.0/jc -mode embedded -config
>> /root/test/jc/releases/1.0.0/sys.config -args_file
>> /root/test/jc/releases/1.0.0/vm.args -- console
>> Root: /root/test/jc
>> bin/jc: line 224: /root/test/jc/erts-6.2/bin/erlexec: cannot execute
>> binary file
>> bin/jc: line 224: /root/test/jc/erts-6.2/bin/erlexec: Success
>> 
>> Should this work? If so, can someone share the tricks to
>> portability.
> 
> Just to be sure, both CentOS installations are amd64, right?
> 
> If so, maybe the erlexec binary built on or for CentOS 6.2 is
> incompatible with 5.2's system libs or missing extra libs not
> installed on the 5.2 machine.
> 
> Also, assuming you've built or are using Erlang for CentOS 6.2, your
> chances of using a release from CentOS 5.2 on the CentOS 6.2 machine
> are most likely higher.


More information about the erlang-questions mailing list