4 ms·
You're not recompiling the VM, you're just including a copy of it in the release tarball, so that you can copy the tarball to any machine with the same architec
by gamache 10y ago
You're not recompiling the VM, you're just including a copy of it in the release tarball, so that you can copy the tarball to any machine with the same architecture and run it regardless of whether Erlang or Elixir is installed globally on the machine.
The goal of a release is to bundle together everything you need -- your program, the VM that runs it, your config files, and any instructions necessary to upgrade/downgrade from another version of your code.
- chrisseaton 10y agoBut why build the VM for every release then? What is it that needs to be cross compiled if you're just copying a VM build into a tarball? Why not copy an existing build of it in?
- gamache 10y agoThe VM is not built for every release, it is copied into the release. The fact that it isn't built for each release is why cross-compilation of releases is not possible.
- chrisseaton 10y agoI must be an idiot because I still don't get it. If the VM is just copied into the release, not built, why can't you do that on macOS for deployment on Linux by copying a Linux version in? Why do you need to do it in a VM or Linux build server?
- gamache 10y agoIt's probably only that no one's written the tooling for that yet, because it's easy enough to set up a Linux VM or build server.
- kungfooguru 10y agoThe tools (relx, exrm) can do that.
- xxxx00998978 10y agoHe means why not just include the apropiate vm as a binary for any given arch.