Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cross platform elixir releases #16

Open
Arp-G opened this issue Mar 19, 2022 · 0 comments
Open

Cross platform elixir releases #16

Arp-G opened this issue Mar 19, 2022 · 0 comments

Comments

@Arp-G
Copy link
Owner

Arp-G commented Mar 19, 2022

The release for csv2sql is currently built on ubuntu 20.4, when a user attempted to use it on ubuntu 18.0 it gave an error like

../csv2sqk_web/erts-12.0.3/bin/beam.smp: error while loading shared libraries: libtinfo.so.6: cannot open shared object file: No such file or directory`

It seems the shared library libtinfo.so.6 might not be available on ubuntu-18.0.

More insights

Elixir release won’t just depend on your OS flavor. Instead, an Elixir release depends on your processor architecture and C library version (glibc package). This is because there are still system dependencies in place even though Erlang bytecode is platform-independent.

Ideally, we want to support different operating systems like Linux, windows, and mac and the release should run independently of the user's processor architecture.

Till now I have found two ways to achieve this:

  1. Use docker to build the release for different platforms and operating systems - We can have a docker setup that builds the release for all the different operating systems that we want to target, however, I am not sure if this can bypass the Target architecture limitation, also I am not sure how it will work out for windows-based docker containers.

  2. The second approach is using something like buritto which uses bakeware

Some Helpful References I have found:

Mix release docs about release requirements
This discussion on elixirforum
This blog

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant