Erlang.mk allows you to package Relx releases Chapter 9, Releases as self-extracting archives. These archives contain all the files in the release and come in the form of a script that will extract and run the release automatically.
This allows you to package the release as a single file that can then be executed.
This feature is currently experimental. Feedback is much appreciated.
To generate a self-extracting release, all you need to do
is pass the SFX=1
variable to Make when you build the
release:
$ make SFX=1
This will create a self-extracting archive in
$RELX_OUTPUT_DIR/<name>.run
. For example if the release
is named hello_world
and $RELX_OUTPUT_DIR
is the default,
the file will be located at _rel/hello_world.run
.
Simply execute the script to get started:
$ ./_rel/hello_world.run Exec: /tmp/tmp.3eeEq7E1ta/erts-8.1/bin/erlexec ... Root: /tmp/tmp.3eeEq7E1ta /tmp/tmp.3eeEq7E1ta Erlang/OTP 19 [erts-8.1] [source] [64-bit] [smp:4:4] ... Eshell V8.1 (abort with ^G) (hello_world@localhost)1>
As you can see the archive is extracted to a temporary directory before the release can be started.
The self-extracting script currently only supports starting
the release in console
mode.