Easy building and installing of Erlang/OTP instances.
kerl
aims to be shell agnostic (it runs in a POSIX shell) and its only dependencies,
excluding what's required to actually build Erlang/OTP, are curl
and git
.
All is done so that, once a specific release has been built, creating a new installation is as fast as possible.
- Installing
kerl
- How
kerl
works - Using
kerl
kerl
options- Command reference
- Important notes
- Shell support
- The
kerl
glossary - The
kerl
project
If you are on macOS, and using homebrew,
you can install kerl
, along with shell completion, by running:
$ brew install kerl
Alternatively, you can download the script directly from GitHub:
$ curl -O https://raw.githubusercontent.com/kerl/kerl/master/kerl
Then ensure it is executable
$ chmod a+x kerl
and drop it in your $PATH
.
Optionally, download and install kerl
's:
bash_completion
file from https://github.com/kerl/kerl/raw/master/bash_completion/kerlzsh_completion
file from https://github.com/kerl/kerl/raw/master/zsh_completion/_kerlfish-completion
file from https://github.com/kerl/kerl/raw/master/fish_completion/kerl.fish
depending on your preferred shell.
Run:
$ kerl upgrade
Local kerl found (/usr/local/bin/kerl) at version 4.3.1.
Remote kerl found at version 4.4.0.
Versions are different. Upgrading to 4.4.0...
kerl 4.4.0 is now available at /usr/local/bin/kerl.
Updating list of available releases...
... done!
kerl
keeps tracks of the releases it downloads, builds and installs, allowing
easy installations to new destinations (without complete rebuilding) and easy
switches between Erlang/OTP installations.
By default, kerl
downloads source tarballs from the official Erlang/OTP repository
but you can tell kerl
to download from the official Erlang/OTP website
by setting KERL_BUILD_BACKEND=tarball
.
However, this website does not use HTTPS and is down more often than GitHub.
You can also install directly from a raw Git repository by using the
kerl build git <git_url> <git_version> <build_name>
syntax.
List the available releases:
$ kerl list releases
17.5.6.10
18.3.4.11
19.3.6.13
20.3.8.26
21.3.8.24
22.3.4.27
23.3.4.20
24.3.4.17
25.3.2.21
26.2.5.12 *
27.3.4 *
28.0 *
Run 'kerl update releases' to update this list.
Run 'kerl list releases all' to view all available releases.
Note: * means "currently supported".
Pick your choice and build it:
$ kerl build 28.0 28.0
Downloading (from GitHub) Erlang/OTP 28.0 to /home/user/.kerl/archives...
Extracting source code for normal build...
Building (normal) Erlang/OTP 28.0 (28.0); please wait...
...
Erlang/OTP 28.0 (28.0) has been successfully built.
Note that named builds allow you to have different builds for the same Erlang/OTP release with different configure options:
$ KERL_BUILD_DOCS=yes kerl build 28.0 28.0-builtdocs
Extracting source code for normal build...
Building (normal) Erlang/OTP 28.0 (28.0-builtdocs); please wait...
...
Building docs...
Erlang/OTP 28.0 (28.0-builtdocs) has been successfully built.