Getting no such file or directory', 'ssl.app' error after upgrading Elixir

this may not be related to the upgrade(used asdf) but I’m getting this when running mix local.hex:

➜ mix local.hex                       

22:27:31.649 [error] Task #PID<0.92.0> started from #PID<0.107.0> terminating
** (MatchError) no match of right hand side value: {:error, {:ssl, {'no such file or directory', 'ssl.app'}}}
    (mix 1.10.0-rc.0) lib/mix/utils.ex:578: Mix.Utils.read_httpc/1
    (mix 1.10.0-rc.0) lib/mix/utils.ex:510: anonymous fn/2 in Mix.Utils.read_path/2
    (elixir 1.10.0-rc.0) lib/task/supervised.ex:90: Task.Supervised.invoke_mfa/2
    (elixir 1.10.0-rc.0) lib/task/supervised.ex:35: Task.Supervised.reply/5
    (stdlib 3.11) proc_lib.erl:249: :proc_lib.init_p_do_apply/3
Function: #Function<4.28560403/0 in Mix.Utils.read_path/2>
    Args: []
** (EXIT from #PID<0.92.0>) an exception was raised:
    ** (MatchError) no match of right hand side value: {:error, {:ssl, {'no such file or directory', 'ssl.app'}}}
        (mix 1.10.0-rc.0) lib/mix/utils.ex:578: Mix.Utils.read_httpc/1
        (mix 1.10.0-rc.0) lib/mix/utils.ex:510: anonymous fn/2 in Mix.Utils.read_path/2
        (elixir 1.10.0-rc.0) lib/task/supervised.ex:90: Task.Supervised.invoke_mfa/2
        (elixir 1.10.0-rc.0) lib/task/supervised.ex:35: Task.Supervised.reply/5
        (stdlib 3.11) proc_lib.erl:249: :proc_lib.init_p_do_apply/3

any ideas?

I upgraded to erlang 22.2.1 at the same time via asdf. When I return back to erlang 22.0.7 via editing .tool-versions the issue goes away.
So it has something to do with 22.2.1

It’s working for me.

@AstonJ Can you please move this to new topic?

This any help Maz?

That could be it, I’ll investigate when o got time tonight, thanks.

Mac OS X, with brew and asdf:

Uninstall erlang with missing ssl.app:
asdf uninstall erlang 22.2.1

then:

brew install openssl
asdf plugin-update erlang
ERLANG_OPENSSL_PATH="/usr/local/opt/openssl" asdf install erlang 22.2.1
9 Likes

This does not work. I started getting this problem after I updated to Catalina. I couldn’t fix it back in January so I gave up on it as I have a laptop with Linux as well, that I prefer anyway.

But now I need to fix this, so does anybody have a fix for this that does not result in this:

$ ERLANG_OPENSSL_PATH="/usr/local/opt/openssl" asdf install erlang 22.2.1
Extracting source code
Building Erlang/OTP 22.2.1 (asdf_22.2.1), please wait...
APPLICATIONS DISABLED (See: /Users/username/.asdf/plugins/erlang/kerl-home/builds/asdf_22.2.1/otp_build_22.2.1.log)
 * crypto         : No usable OpenSSL found
 * ssh            : No usable OpenSSL found
 * ssl            : No usable OpenSSL found

APPLICATIONS INFORMATION (See: /Users/username/.asdf/plugins/erlang/kerl-home/builds/asdf_22.2.1/otp_build_22.2.1.log)
 * wx             : wxWidgets not found, wx will NOT be usable

DOCUMENTATION INFORMATION (See: /Users/username/.asdf/plugins/erlang/kerl-home/builds/asdf_22.2.1/otp_build_22.2.1.log)
 * documentation  :
 *                  fop is missing.
 *                  Using fakefop to generate placeholder PDF files.

Erlang/OTP 22.2.1 (asdf_22.2.1) has been successfully built
Installing Erlang/OTP 22.2.1 (asdf_22.2.1) in /Users/username/.asdf/installs/erlang/22.2.1...
You can activate this installation running the following command:
. /Users/username/.asdf/installs/erlang/22.2.1/activate
Later on, you can leave the installation typing:
kerl_deactivate
Cleaning up compilation products for
Cleaned up compilation products for  under /Users/username/.asdf/plugins/erlang/kerl-home/builds

Erlang 22.2.1 has been installed. Activate globally with:

    asdf global erlang 22.2.1

Activate locally in the current folder with:

    asdf local erlang 22.2.1

It still says it cannot find a usable OpenSSL, which results in the build not having ssl.app (nor crypto and ssh).

what is at the path /usr/local/opt/openssl ?

This is what I see:

➜ ll
total 1280
-rw-r--r--   1 michael  staff   717B 21 Apr 08:22 AUTHORS
-rw-r--r--   1 michael  staff   574K  1 May 15:40 CHANGES
-rw-r--r--   1 michael  staff   743B  1 May 15:40 INSTALL_RECEIPT.json
-rw-r--r--   1 michael  staff   6.0K 21 Apr 08:22 LICENSE
-rw-r--r--   1 michael  staff    42K 21 Apr 08:22 NEWS
-rw-r--r--   1 michael  staff   3.1K 21 Apr 08:22 README
drwxr-xr-x   4 michael  staff   128B  1 May 15:40 bin
drwxr-xr-x   3 michael  staff    96B 21 Apr 08:22 include
drwxr-xr-x  10 michael  staff   320B 21 Apr 08:22 lib
drwxr-xr-x   4 michael  staff   128B 21 Apr 08:22 share

On Catalina I am using the following in my .zshrc to support asdf installing Erlang.

export KERL_CONFIGURE_OPTIONS="--disable-debug --disable-silent-rules --without-javac --enable-shared-zlib --enable-dynamic-ssl-lib --enable-hipe --enable-sctp --enable-smp-support --enable-threads --enable-kernel-poll --enable-wx --enable-darwin-64bit --with-ssl=/usr/local/Cellar/openssl@1.1/1.1.1d"

Based upon your post perhaps you need:

export KERL_CONFIGURE_OPTIONS="--disable-debug --disable-silent-rules --without-javac --enable-shared-zlib --enable-dynamic-ssl-lib --enable-hipe --enable-sctp --enable-smp-support --enable-threads --enable-kernel-poll --enable-wx --enable-darwin-64bit --with-ssl=/usr/local/opt/openssl"
3 Likes

This got it working, thanks! :slight_smile:

I removed --enable-wx as that is not necessary, and I changed the location of SSL to /usr/local/Cellar/openssl@1.1/1.1.1g instead, as the other one was just a chain of symlinks anyway.

It still complains about wx not being available when it compiles but that is fine, I’ll survive haha.

I just ran into this on a fresh ubuntu 20.10 install after installing Erlang via asdf. I was able to fix it by uninstalling Erlang (which was itself a pain that required me to manually rm -rf the files and uninstall the plugin as well) and reinstalling it after installing the libssh-dev package from apt as instructed in the asdf-erlang plugin README.

6 Likes

Here’s what fixed it for me

asdf uninstall erlang 22.3.4.22
brew install openssl
asdf plugin-update erlang
ERLANG_OPENSSL_PATH="/opt/homebrew/opt/openssl@3" asdf install erlang 22.3.4.22
7 Likes