This tutorial provides a step-by-step guide on how to install Erlang on Ubuntu 22.04/Ubuntu 20.04. According to erlang.org, Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang’s runtime system has built-in support for concurrency, distribution and fault tolerance.
Install Erlang on Ubuntu 22.04/Ubuntu 20.04
There are two way to install Erlang:
Install Erlang using Prebuilt binaries
The default Ubuntu repositories provides Erlang packages. However, the available packages may not be up-to-date.
Erlang/OTP 24.2.2 is the the current release versions as of this writing.
Install Erlang on Ubuntu 22.04 using Prebuilt binaries
The default Ubuntu 22.04 repos provides version 24.2.1;
apt-cache policy erlang
erlang:
Installed: (none)
Candidate: 1:24.2.1+dfsg-1
Version table:
1:24.2.1+dfsg-1 500
500 http://ke.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
Thus, if you want to install Erlang on Ubuntu 22.04 using the prebuild binary, run the command below;
apt install erlang
The Erlang distribution also includes OTP (Open Telecom Platform) which provides a rich set of libraries and applications.
To install Erlang on Ubuntu 20.04 using Prebuilt binaries
To install latest release version of Erlang on Ubuntu 20.04, you first need to install the Erlang repository as follows;
wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb
apt install ./erlang-solutions_2.0_all.deb
apt update
apt install erlang
Similarly, the Erlang distribution also includes OTP (Open Telecom Platform) which provides a rich set of libraries and applications.
Install Erlang by Compiling from the source
If you want to run the latest version of Erlang on Ubuntu 22.04/Ubuntu 20.04, then you can build it from the source.
- Install Required Build Utilities
apt install zip libncurses-dev sed git tar make gcc perl openssl flex bison default-jdk libssl-dev unixodbc-dev libwxgtk3.0-gtk3-dev libwxgtk-webview3.0-gtk3-dev libglu1-mesa-dev fop xsltproc libxml2-utils apache2
- Download Erlang Source Code
VER=24.2.2
wget https://github.com/erlang/otp/releases/download/OTP-$VER/otp_src_$VER.tar.gz
- Extract the Source code
tar xzf otp_src_$VER.tar.gz
- Configure, build and install Erlang;
cd otp_src_$VER
export ERL_TOP=`pwd`
./configure
Before you can proceed, ensure that the configure script above returns no error.
make
Run smoke test to ensure the build is successful;
make release_tests
cd release/tests/test_server
~/otp_src_24.2.2/bin/erl -s ts install -s ts smoke_test batch -s init stop
Next, access $ERL_TOP/release/tests/test_server/index.html
in your web browser and make sure that there are zero failed test cases.
rsync -avP ~/otp_src_24.2.2 /var/www/html/
sed -i 's|/var/www/html|/var/www/html/otp_src_24.2.2/release/tests/test_server/|' /etc/apache2/sites-available/000-default.conf
chown -R www-data: /var/www/html/otp_src_24.2.2/release/tests/test_server
systemctl restart apache2
Access the Web Server, http://<server-IP>.
Install Erlang from Source on Ubuntu 22.04/Ubuntu 20.04 if all well from the test above.
cd ~/otp_src_24.2.2/
make install
Using Erlang
You can now start using Erlang language for your programming.
erl
Check current working directory by running the command pwd().;
Erlang/OTP 24 [erts-12.2.1] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [jit]
Eshell V12.2.1 (abort with ^G)
1> pwd().
/home/kifarunix
ok
2>
You can now start writing your projects in specific directories. For example in the above, I am working from /home/kifarunix
directory.
Creating an Hello World program;
cat > hello_world.erl << 'EOL'
-module(hello_world).
-export([hello_world/0]).
hello_world() ->
io:fwrite("hello world\n").
EOL
Next, execute the program;
erl
Erlang/OTP 24 [erts-12.2.1] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [jit]
Eshell V12.2.1 (abort with ^G)
1> pwd().
/home/kifarunix
ok
2> c(hello_world).
{ok,hello_world}
3> hello_world:hello_world().
hello world
ok
4>
You can check further examples on Erlang by Example.
Read more on the documentation page.
Other Tutorials
Install RabbitMQ on Ubuntu 22.04/Ubuntu 20.04