sauronnikko

sauronnikko

Can't install Erlang 22.0 with asdf

I’m trying to install Erlang 22.0 with asdf, but it fails. I’m using Ubuntu 22.04 and followed the before install steps here

asdf install erlang 22.0
asdf_22.0 is not a kerl-managed Erlang/OTP installation
The asdf_22.0 build has been deleted
Extracting source code
Building Erlang/OTP 22.0 (asdf_22.0), please wait...
Build failed.
gmake[4]: *** [x86_64-unknown-linux-gnu/Makefile:669: /home/sauronnikko/.asdf/plugins/erlang/kerl-home/builds/asdf_22.0/otp_src_22.0/lib/erl_interface/bin/x86_64-unknown-linux-gnu/erl_call] Error 1
gmake[4]: *** Waiting for unfinished jobs....
gmake[4]: Leaving directory '/home/sauronnikko/.asdf/plugins/erlang/kerl-home/builds/asdf_22.0/otp_src_22.0/lib/erl_interface/src'
gmake[3]: *** [Makefile:31: opt] Error 2
gmake[3]: Leaving directory '/home/sauronnikko/.asdf/plugins/erlang/kerl-home/builds/asdf_22.0/otp_src_22.0/lib/erl_interface/src'
gmake[2]: *** [/home/sauronnikko/.asdf/plugins/erlang/kerl-home/builds/asdf_22.0/otp_src_22.0/make/otp_subdir.mk:29: opt] Error 2
gmake[2]: Leaving directory '/home/sauronnikko/.asdf/plugins/erlang/kerl-home/builds/asdf_22.0/otp_src_22.0/lib/erl_interface'
gmake[1]: *** [/home/sauronnikko/.asdf/plugins/erlang/kerl-home/builds/asdf_22.0/otp_src_22.0/make/otp_subdir.mk:29: opt] Error 2
gmake[1]: Leaving directory '/home/sauronnikko/.asdf/plugins/erlang/kerl-home/builds/asdf_22.0/otp_src_22.0/lib'
gmake: *** [Makefile:490: libs] Error 2

Please see /home/sauronnikko/.asdf/plugins/erlang/kerl-home/builds/asdf_22.0/otp_build_22.0.log for full details.

Here are the contents of the log file: https://gist.github.com/sauronnikko/5b85263ec5294b403e27e41012f9a23f

Can you help me fix this? Thanks :slight_smile:

Most Liked

Eiji

Eiji

Analyse

ok, let’s take a look …

Tested Erlang environments

First of all Erlang is tested on 10.04 - 20-04. It should be fine with 22.04 as well, but it’s worth to mention and keep in mind that according to documentation it wasn’t officially tested against this version of Ubuntu

Why Bob?

You may wonder why I mention Bob? That’s because I’m using it’s builds in all of my development environments. Obviously installing prebuilt package speeds up setup environment process, so for me it’s the fastest and safest way.

Bob’s prebuilt packages

Since Erlang does not provides any prebuilt packages for other os than Windows, we can take a look at Bob’s page. It lists a prebuilt packages for Erlang for Ubuntu versions 14.04 - 20.04 and even not all Erlang versions are “supported” (by Bob’s page) for all Ubuntu versions. I guess it’s just nobody asked for triggering old OTP builds who for most people are unnecessary …

Bob’s prebuilt packages on Hex

However this is not all. We still have a complete lists of Bob’s builds hosted on hex and there we can find a builds for Ubuntu 22.04, but only for OTP-24.2 and above.

Results

Official support

Since I do not know any other source of Erlang builds I guess that our communities does not provide Erlang 22.0 builds for Ubuntu 22.04. The reason for it may be compilation problems like yours or as said just no trigger happen for previous Erlang versions … In any case “officially” there are no tested support and prebuilt builds even provided by community.

My recommendation

Having above in mind in first place I would verify your environment following Erlang documentation and Bob’s build process. Meanwhile I would also ask @ericmj (the first and top of Bob’s contributor) if he knows about any problems or if he can trigger a build for said version. I guess that Bob have enough well-tested environment, so that we can confirm if any issue like this happens only in specific cases (like not met all requirements) or it’s a common problem.

Possible workaround

We have an Erlang plugin for prebuilt packages, but unfortunately it needs to follow Hex’s build list. However there is a workaround. You can install plugin for Erlang prebuilt packages for previous Ubuntu versions (like 20.04) - I have just tested it and iex works as expected, but keep in mind that’s not a “safe way” and it never would be recommended.

asdf plugin-add erlang-ubuntu-20 https://github.com/michallepicki/asdf-erlang-prebuilt-ubuntu-20.04.git
asdf install erlang-ubuntu-20 22.0

Helpful resouces

  1. Erlang/OTP test architectures
  2. Bob’s List page and Github page
  3. Fully Hex’s list of OTP builds for Ubuntu 22.04
  4. Building and Installing Erlang/OTP
  5. Bob’s build scripts
  6. The initial Bob’s commit and Top `Bob’s contributors page
  7. List of Michał Łępicki’s asdf repositories for various Ubuntu versions
michallepicki

michallepicki

Ubuntu 22.04 comes with OpenSSL 3.0 only, and earlier versions are not available in apt repositories. Erlang prior to 24.2 does not even build with OpenSSL 3.0. You can either look into installing OpenSSL 1.x from source, and passing its path to asdf / kerl / erlang configuration… Or upgrading to Erlang 24.2 or newer

Where Next?

Popular in Questions Top

siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
chrisalley
ExUnit now has describe blocks which is a welcome addition coming from RSpec. In the docs, it states that nested hierarchies of describe ...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
fireproofsocks
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: The documentation above suggests that while ...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
chensan
I have a User schema with a :from_id field set to type :string: defmodule TweetBot.Repo.Migrations.CreateUsers do use Ecto.Migration ...
New

Other popular topics Top

New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New

We're in Beta

About us Mission Statement