I have been bitten by an issue with erts in a release, when one version of erts linked to libtinfo.so.5 and my server had libtinfo.so.6. Whatever, I recompiled.
Just wondering - in theory, if I donβt use NIFs, and have an archive of different versions of erts compiled for different os/architectures, and I match the same version of erts, I could create a release on (say) arm, copy it to x86, replace the erts folder, and it should be ready to go? or are there other things to keep in mind?
Because I was wondering if we couldnβt just share a bunch of pre-compiled ertts versions, and wget them on installβ¦
If you donβt have any other native dependencies like NIFs then this does indeed work. Thatβs why include_erts for relases lets you specify not just a boolean, but also a path to custom erts folders.
Iβm realizing that itβs not that easy, because a lot of libraries have NIFs. For example, on a run-of-the mill Phoenix app, under myapp/lib, Iβm finding:
And of course those wonβt work on different architectures. OTOH, those files seem to be a part of the Erlang distribution itself, so maybe those .so files could overwrite the ones that are in my applicationβs lib?