bitli
Instructions to run Elixir on Android
In case this is handy for other people, here is how you can run Elixir on Android:
- Install https://termux.com/
-
apt update; apt upgradeto have your system up to date. - Install Erlang with
apt install erlang, you should be able to runerl. - (check if an Elixir package was created so you can avoid the trouble of the remaining lines
) - Install wget with
apt install wget(otherwise you will get bad address on any wget request). - Create a directory, and cd to it, for example:
mkdir elixir; cd elixir. - Download the precompiled package from the link named Precompiled.zip file for the latest release in the page http://elixir-lang.org/install.html#precompiled-package.At time of this writing the command
wget https://github.com/elixir-lang/elixir/releases/download/v1.4.2/Precompiled.zipshould do this. - Unzip the files with
unzip Precompiled.zip. - Go to directory bin.
- Download the file termux-fix-shebang from the source at https://raw.githubusercontent.com/termux/termux-packages/master/packages/termux-tools/termux-fix-shebang. You can use
wget https://raw.githubusercontent.com/termux/termux-packages/master/packages/termux-tools/termux-fix-shebang. - Execute
sh termux-fix-shebang elixir iex elixircin the bin directory (sh is required as the path of the shebang of the script is not compatible with termux). - Execute
which envand edit the first line of mix to set the path of commandenvto the one found by the command which. - Add
export PATH=$PATH:$HOME/elixir/binto your .bashrc or execute the command on your terminal.
You can then mix and iex. An Android phone is not exactly a convenient development platform, but it was useful to me to learn Elixir when waiting for whatever.
Most Liked
soyjeansoy
here’s what i did (assuming you’re using termux):
pkg install erlang
- easiest way to install elixir is to use asdf-vm.
-
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.7.1 -
Next do the following (im using
zsh):
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.zshrc
echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.zshrc
- restart termux session
asdf plugin-add elixir-
asdf install elixir 1.8.1or to find a version you can:asdf list-all elixir -
asdf global elixir 1.8.1to set this version globally
you can visit their page on how to install asdf-vm.
happy coding!
NobbZ
Please try apt install --yes wget, for the older interface to apt, that meant to not ask but assume the operator knows what he is doing and install/remove everything. Can’t check though if it is still valid on the new interface which is used by termux.
PatNowak
Termux is awesome, but you might inform at the top of the post that this is the guide only for Android 5.0 and above. Thanks for the guide! 
NobbZ
But we are getting closer…
We do know now, that the script goes through escript and erlang now, but it seems as if escript requires the shebang to be exactly #!/usr/bin/env escript.
You’ll need to manually compile rebar dependencies by calling escript ~/.mix/rebar3 and hoping that simply copying arguments from mix’s error message will be sufficient.
NobbZ
Never tried. I SSH into real hardware or use my laptop, makes things much easier…
I didn’t tell you to run escript ~/.mix/rebar3 literally, I told you to run it with the arguments that mix reports when failing. In your posted error, mix tried to call /data/data/com.termux/files/home/.mix/rebar3 bare compile --paths "/data/data/com.termux/files/home/hello/_build/dev/lib/*/ebin", so you have to call escript ~/.mix/rebar3 bare compile --paths "/data/data/com.termux/files/home/hello/_build/dev/lib/*/ebin" and I’d guess you need to be in dependencies root-folder, but maybe you need to be somewhere else.







