neiby

neiby

I’m working on getting erlang and elixir setup on a new Macbook Pro. I first installed asdf and then used it to install erlang and elixir. But later when I tried to do iex -S mix, I got this error:

** (Mix) The application “crypto” could not be found. This may happen if your Operating System broke Erlang into multiple packages and may be fixed by installing the missing “erlang-dev” and “erlang-crypto” packages

I checked and I do have openssl installed:

% openssl version
LibreSSL 3.3.6

So then I went back to see if I got an error when erlang was being installed. Sure enough:

APPLICATIONS DISABLED (See: /Users/johnneiberger/.asdf/plugins/erlang/kerl-home/builds/asdf_26.1.2/otp_build_26.1.2.log)
 * crypto         : No usable OpenSSL found
 * jinterface     : No Java compiler found
 * odbc           : ODBC library - link check failed
 * ssh            : No usable OpenSSL found
 * ssl            : No usable OpenSSL found

Any idea what the problem might be? Is the version of openssl installed on this Mac incompatible with the erlang installer?

Thanks!
John

Showing Posts 1 to 8

Marcus

Marcus

Hello @neiby , maybe asdf/erlang/osx can help. You have to install openssl via brew brew install openssl to get

% openssl version
OpenSSL 3.1.4 ...
hlx

hlx

You can also supply the location of your ssl library as a build parameter to KERL (which asdf uses)

I set up Erlang with the following options:

KERL_CONFIGURE_OPTIONS="--disable-debug --disable-silent-rules --without-javac --enable-shared-zlib --enable-dynamic-ssl-lib --enable-threads --enable-kernel-poll --enable-wx --enable-webview --enable-darwin-64bit --enable-gettimeofday-as-os-system-time --with-ssl=/opt/homebrew/opt/openssl@3" asdf install erlang 25

horizon0708

horizon0708

What version is your erlang OTP? Up until 24.2, erlang requires openssl@1.1

The crypto app in OTP can now be compiled, linked and used with the new OpenSSL 3.0 cryptolib.

D4no0

D4no0

I am using openssl 1.1 currently for all of my OTP installs, as I also had problems installing OTP 26.2 with openssl 3.

neiby

neiby OP

Thanks, everyone! I installed openssl via Homebrew, then did the following:

export KERL_CONFIGURE_OPTIONS="--without-javac --with-ssl=$(brew --prefix openssl@3)"

Then I reinstalled erlang and all is well. I appreciate the help! At the moment, my system is still using LibreSSL 3.3.6, but KERL will use the other openssl version, so hopefully that will be okay.

neiby

neiby OP

Interestingly, this also solved another problem I was having with ElixirLS in VSCode. I couldn’t use any version more recent than v0.13.0 or I’d get all sorts of connection errors and it would just crash. But after the steps I took above to fix the openssl issue, ElixirLS is working great.

Two birds with one stone!

AaronJamesKing

AaronJamesKing

I was supporting an older app running on OTP 23.3, managed with asdf.

Per advice from this thread and this GitHub issue, I was trying to install Erlang by specifying the path to my Homebrew-managed OpenSSL.

But it turns out I only had OpenSSL 3.3.0 installed, and as others have mentioned, v3 was not supported until OTP 25 (or something like that).

So I was able to solve the problem via:

  • Uninstalling Erlang: asdf uninstall erlang 23.3
  • Installing OpenSSL v1.1: brew install openssl@1.1
  • Re-installing Erlang with the the path to OpenSSL v1.1: asdf install erlang 23.3 --with-ssl=/opt/homebrew/opt/openssl@1.1

(The OpenSSL path can be found with brew --prefix openssl@1.1)

This was a nice, clean solution since I did not have to edit my .zshrc or any other env vars, and my openssl command still points to v3.3.0.

ryanswapp

ryanswapp

Mucho gracias! Exactly the fix I needed. Thanks

— All posts loaded —

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
achenet
Hello, I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind. However, when I launch mix phx.server, I get an error...
New
Cxx-mlr
I’m working on a small exercise involving update_in/3, and I came up with this solution: data = %{ name: "Periodic Table", category:...
New
ChrisAmelia
I’ve got trouble wrapping my head around the order in which functions are called in this snippet (from Phoenix’s authentication): toke...
New
unaware8150
Hello folks! So at work, we are seeing some situations where we have to define some “fixed” strings that are used across the codebase in...
New
dillonoconnor
Is there any way to avoid the Hologram compiler running when using iex? It seems like the front-end code could potentially be disregarded...
New
thiagogsr
** (ArgumentError) expected :max_attempts to be a positive integer, got: {:@, [line: 10, column: 19], [{:max_attempts, [line: 10, column:...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
georgeguimaraes
Just published claude-code-elixir, a plugin marketplace for Claude Code with Elixir support. These are the plugins I’ve been using for my...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews