tristan

tristan

Rebar3 Core Team

BEAMup - a new way to install Elixir, Erlang, Gleam, and more components to come

First announced on the Erlang Forum, BEAMup is a tool for installing a managing the active instance of BEAM languages. It has support for Erlang, Elixir and Gleam on Linux, Mac and Windows – probably works on BSD if built from source?

Things that works (ok, “work”, I actually need to add tests too!):

  • Build Erlang from a Github releases
  • Install Elixir and Gleam from a binary release
  • Install Erlang from a binary release on Windows
  • Set global default of Elixir, Erlang and Gleam to use
  • Set a per-directory version of Elixir, Erlang or Gleam to use

Future plans include:

  • Binary install of Erlang on Mac and Linux
  • Source installation for Elixir and Gleam
  • Building from source based on a git branch (or really any git reference) instead of just GitHub releases
  • BEAMUp binaries for Linux ARM
  • Component installation for things like rebar3 (I guess you have mix for that already :slight_smile: and language servers
  • Checks that the Elixir install you are running is compatible with the Erlang version that is active.

It is still in the early stages so some commands are still missing.

I’ll end with a question, if you have any thoughts on support for installing builds for other hosts let me know on this issue, Support “cross-compilation” of Releases? · Issue #16 · tsloughter/beamup · GitHub. I thought this might be useful for embedded folks.

Most Liked

tristan

tristan

Rebar3 Core Team

Good question! I don’t believe asdf and mise for Erlang work on Windows. Support for binary installs is unique too, I think. Plus, the eventual support for components – though maybe mise that could be added too, I know I use it for Go and install stuff for Go through it.

Not an answer but I’ll note that beamup has a long lineage going back over a decade. Starting with erln8 and then erlup when erln8 became unmaintained.

Its existence really boils down to that many years ago I wanted an Erlang installer that used links instead of environment variables like kerl and I wanted to learn Rust. Then when the name beamup came up I had to pounce on that, haha, and add support for other languages. Support for Windows came because it felt like something missing and could help the community and make this a viable tool to be promoted by Gleam.

I know where asdf and mise are for sure better: they are tested and mise has better Rust code :slight_smile:

dimitarvp

dimitarvp

This is great and I am sure it will find its audience!

For those of us who use asdf or mise, what is beamup doing better than them?

cmo

cmo

vfox is a cross platform version manager.

tristan

tristan

Rebar3 Core Team

Now on Linux, thanks to GitHub - gleam-community/erlang-linux-builds , you can install compiled builds of Erlang with beamup install erlang <TAG>. These are statically built so have caveats (see the repo’s README for more), the biggest one being NIFs don’t work. So you’ll likely want to instead do beamup install erlang --libc glibc erlang latest (or --libc musl) which fetches a build that will dynamically link to glibc or musl.

Also, I never replied that ELP was added, you can install ELP with beamup component install elp latest

dimitarvp

dimitarvp

Ah, that by itself is a very strong reason. Thanks for following up.

Sorry, what kind of components do you mean? The only association that springs to mind is rustup’s component subcommand where you can e.g. add source code to an existing Rust installation, or extra compiler tooling f.ex. WASM support.

Where Next?

Popular in Discussions Top

christopheradams
I was recently asked to step up and become the maintainer for the Elixir Style Guide. It was, I believe, the first, and is now the most p...
New
New
ivanminutillo
Bonfire is an open source framework for building modular federated digital spaces. It’s built entirely with Elixir, including LiveView (a...
New
szsoppa
Hey folks! For the third year in a row, we’re running the Elixir Survey by Curiosum! It’s been live since yesterday, and 300+ people hav...
New
AstonJ
@Garrison’s comment in another thread reminded me of this post by Joe: With the big five exerting more control than ever, new (AI) play...
New
derpycoder
So, anyone got a chance to look at this?!? I’m kind of glad this came along. We can just throw this into our Auth pages and won’t have t...
New
sym_num
I created a Forth processor in Elixir. This is my hobby project. https://github.com/sasagawa888/Forth
New
rhcarvalho
Very interesting value proposition! Having watched some interviews with Elm’s creator recently, I wanted to ask where you stand in terms...
New
travisf
In upgrading from Ecto 2 to Ecto 3 I’m dealing with a failing test. If I use ExMachina build(:address) I’ll get an error trying to put_e...
New
AstonJ
A remark @Garrison made… ..has already inspired a thread for the technical side of reclaiming our internet, but there is of course anot...
New

Other popular topics Top

shahryarjb
Hello, I get Persian date from my client and convert it to normal calendar like this: def jalali_string_to_miladi_english_number(persi...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
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
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
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

We're in Beta

About us Mission Statement