Erlang Solutions apt package for OTP 25

I have installed Erlang via apt from Erlang Solutions on my Ubuntu (focal) machine in the past, currently OTP 24. Now OTP 25 has been out for a while, and while it is downloadable from their Website, it doesn’t get picked up by apt update. No errors or anything, though.

I have written to Erlang Solutions via their contact form, which auto-replied to me that an expert will look into it and contact me soon, but that was more than two weeks ago. So either my perception of “soon” is a bit off, or… :thinking:

So, what’s going on? Am I doing something wrong?
(To be sure, I know there are other ways to get at and use OTP 25, or any other release for that matter, and I’m using them. That is not my question :wink: The question is why something that is supposed to just work and make things easy doesn’t just work and make things easy)

6 Likes

I’m not sure if it’s exactly this but there’s a WIP PR open on esl/packages repo

1 Like

I’m getting feedback that the process works as expected - Erlang 25.0 is also listed for Focal.

That being said, if your /etc/apt/sources.list got reset (by a dist-upgrade perhaps?) the Erlang Solutions repo and key for apt-secure might not be available to apt update anymore. Could you try adding the repo again with the following?

wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb
sudo dpkg -i erlang-solutions_2.0_all.deb
1 Like

I’ll check tomorrow, thanks :slightly_smiling_face:

1 Like

Nope, that didn’t work for me, as I have the same problem. But I see that I have installed erlang (vs esl-erlang), and apt-cache madison erlang shows only packages up to 24.3.3. But I understand that this is supposed to work nonetheless?

2 Likes

Yes, same here, you beat me to it :sweat_smile:

2 Likes

Heya :slight_smile: Kinda hijacking this thread because it’s about the apt packages :innocent:

Is there any past experience of how quickly new main distro lines are supported? Asking for a friend, who is using Ubuntu 22.04 (jammy) :wink: (Looks like there is no support yet)

2 Likes

For new OTP releases, usually a few days. For new target OSes, I have no idea, as I usually stay with them longer and don’t readily hop on when the band wagon happens to visit :grin: But seriously, I didn’t pay attention TBH.

You may inquire at Erlang Solutions directly on behalf of your friend. They ignored me, though… :roll_eyes:

Btw, why didn’t your friend ask by himself I wonder, we are all nice people around here, no need to be shy, everybody is welcome :wink:

2 Likes

@jko you may want to avoid bringing up the topic of pipe operators with @Maria-12648430, though :laughing:

2 Likes

Yeah upgrading from 18.04 (bionic) here and doing it only every few years :see_no_evil: (talking about server here). @juhlig suggested to compile it by myself - guess I will try to procrastinate for some more time :grimacing:

1 Like

Well, building by hand is not hard. But then you will also need to manually rebuild in order to upgrade.

Why not use the OTP release that comes with jammy, for now? AFAIK, that would be 24.2.something. I don’t know what you’re really trying to do, but I bet you won’t absolutely need 25 for it. When the Erlang Solutions package finally becomes available, you can switch to that.

1 Like

Yeah I know, the update issue is why I’ll probably wait some more ^^

Thing is, we (me and my friend :grin: ) are using Ansible for server provisioning and don’t really want to have to switch from “use erlang solutions package because builtin bionic began to smell funny a long time ago” to “use builtin repository because erlang solutions has no support yet” to “use erlang solutions package because the built in repository version begins to smell funny” .

It’s not really urgent, just wanted to ask if there is any past experience :slight_smile: I’ll give it another few months (and then probably still built some switch for Ansible because future-proof :roll_eyes: )

1 Like

May not be helpful at all…

We also use ansible for server provisioning, but approach things a little differently. We use docker to build and package target-platform-specific debs/rpms of our releases.

We do not use external packages for erlang, but have the erlang build as a ‘layer’ (if that’s the correct term) in the docker build scripts using asdf
The next ‘layer’ builds the erlang application release and the final layer packages the release with all pre-post install scripts to deb/rpm and uploads it to our distribution servers.
Ansible can then pick the correct OS/version specific package to deploy/upgrade when it runs from the distribution servers.

All this is done automatically for each git tag which passes CI. So changing erlang versions is as simple as changing the version in the .tool-versions in the repo and tagging a new release.
The first run of builds when the erlang version changes is obviously slower as it has to build erlang.

4 Likes

@LeonardB: That doesn’t sound too bad, IMO :slight_smile:

@jko: Just (t)ask Andy, he probably already happens to know how to build debs and apt repositories :wink: If not, I heard it’s not too complicated.

1 Like

Here is an alternative. Download the deb file from here:
https://packages.erlang-solutions.com/erlang/debian/pool/esl-erlang_25.0.2-1~ubuntu~jammy_amd64.deb
Decompress and install:
sudo dpkg -i esl-erlang_25.0.2-1~ubuntu~jammy_amd64.deb
Confirm:
erl -v

Erlang/OTP 25 [erts-13.0.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit:ns]
...

Hope this helps :slight_smile:

2 Likes

Yes this works and is worth considering. But you have to keep in mind you won’t receive updates this way when updating the system.

[edit]
What I just realized: Why can you download a package for jammy but don’t download it via apt? I always was under the impression there is no jammy support yet. This must be a bug then, no?

1 Like

Only Erlang Solutions knows… I have no idea what goes on there. @michallepicki posted a link here to a GitHub repo that may or may not have something to do with it, and at least it seems to not include jammy ATM.

1 Like

I know some of you want to keep using apt, but if your main reason is that you don’t want to compile Erlang/OTP yourself, there is another way: since recently Bob also prepares precompiled Erlang/OTP for Ubuntu 22.04 Jammy as well, for versions 24.2 and newer (because these versions can work with OpenSSL 3.0). You can install it either with a few lines of bash or using my asdf-erlang fork. A list of versions built for Jammy is Here.

1 Like

Not exactly the same issue, but I think I can ask here instead of open a new question.

I just built a new HD with Ubuntu 22.04 (fresh install) and I tried to install the pre-compiled Erlang version 24.3.3 as you are suggesting here. It’s the way I used to do before for the old Ubuntu versions, but it didn’t work right this time (shell details bellow).

It complains about some dependencies, which I could fix most of them except the one related to libssl.
Searching by it (apt search libssl) result in (basically) two result: libssl-dev and libssl3.
But, installing libssl3 didn’t allow me to get the install done.

The way was to use the apt install erlang command, but then I don’t get the version I was looking for:

Erlang/OTP 24 [erts-12.2.1] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [jit]

Does someone has any clue about what is happening?

sudo dpkg -i ~/Downloads/esl-erlang_24.3.3-1~ubuntu~focal_amd64.deb
Selecting previously unselected package esl-erlang.
(Reading database ... 197900 files and directories currently installed.)
Preparing to unpack .../esl-erlang_24.3.3-1~ubuntu~focal_amd64.deb ...
Unpacking esl-erlang (1:24.3.3-1) ...
dpkg: dependency problems prevent configuration of esl-erlang:
 esl-erlang depends on libssl1.0.0 | libssl1.0.2 | libssl1.1; however:
  Package libssl1.0.0 is not installed.
  Package libssl1.0.2 is not installed.
  Package libssl1.1 is not installed.

dpkg: error processing package esl-erlang (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 esl-erlang
1 Like

The big difference between Ubuntu 22.04 and earlier versions is that they switched to openssl 3 and don’t even provide openssl 1 in their repositories. If you follow my instructions to install without apt (by downloading from hex either with bash or asdf) you need to make sure that you’ll download from hex URLs specific for 22.04, or use my new asdf plugin for 22.04. Can you check if you didn’t download a build for 20.04 by mistake?

2 Likes