setup-elixir
setup-elixir copied to clipboard
libcrypto.so.1.0.0 error on Ubuntu 20.04
I am still receiving the libcrypto.so.1.0.0 error referenced in #31 when running the action against Ubuntu-20.04. The project is a bare generated Phoenix application requiring Elixir 1.11.2 and OTP 23.1. Is there a specific way I need to specify the runs-on
value to use the container from bob?
/home/runner/work/_temp/.setup-elixir/elixir/bin/mix local.rebar --force
Error: 7.344 [error] Unable to load crypto library. Failed with error:
":load_failed, Failed to load NIF library /home/runner/work/_temp/.setup-elixir/otp/lib/crypto-4.8/priv/lib/crypto: 'libcrypto.so.1.0.0: cannot open shared object file: No such file or directory'"
OpenSSL might not be installed on this system.
14:05:07.351 [warn] The on_load function for module crypto returned:
{:error,
{:load_failed,
'Failed to load NIF library /home/runner/work/_temp/.setup-elixir/otp/lib/crypto-4.8/priv/lib/crypto: \'libcrypto.so.1.0.0: cannot open shared object file: No such file or directory\''}}
** (Mix) httpc request failed with: {:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:eoptions, {:undef, [{:crypto, :supports, [], []}, {:tls_record, :sufficient_support, 1, [file: 'tls_record.erl', line: 743]}, {:tls_record, :supported_protocol_versions, 1, [file: 'tls_record.erl', line: 370]}, {:tls_record, :supported_protocol_versions, 0, [file: 'tls_record.erl', line: 358]}, {:ssl, :handle_option, 4, [file: 'ssl.erl', line: 1920]}, {:ssl, :process_options, 3, [file: 'ssl.erl', line: 1644]}, {:ssl, :handle_options, 3, [file: 'ssl.erl', line: 1598]}, {:ssl, :connect, 4, [file: 'ssl.erl', line: 600]}]}}}]}
Could not install Rebar because Mix could not download metadata at https://repo.hex.pm/installs/rebar-1.x.csv.
Error: The process '/home/runner/work/_temp/.setup-elixir/elixir/bin/mix' failed with exit code 1
name: Elixir CI
on: [push, pull_request]
jobs:
build:
name: Build and test
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Set up Elixir
uses: actions/setup-elixir@v1
with:
elixir-version: '1.11.2' # Define the elixir version [required]
otp-version: '23.1' # Define the OTP version [required]
- name: Restore dependencies cache
uses: actions/cache@v2
with:
path: deps
key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }}
restore-keys: ${{ runner.os }}-mix-
- name: Install dependencies
run: mix deps.get
- name: Run tests
run: mix test
It appears the experimental-otp
option must be set to true
for this action to work with 20.04. Is this something that should be documented in the README or will it not be necessary soon? I can create a PR for the README update if deemed necessary.
It appears the experimental-otp option must be set to true for this action to work with 20.04. Is this something that should be documented in the README or will it not be necessary soon?
It will become the default when we are confident the new builds are production ready. So far we haven't received any reports with issues.
Adding experimental-otp: true
fixed a build using Ubuntu 20.04.1 which had been failing due to the following error:
[error] Unable to load crypto library. Failed with error: ":load_failed, Failed to load NIF library /home/runner/work/_temp/.setup-elixir/otp/lib/crypto-4.6.5/priv/lib/crypto: 'libcrypto.so.1.0.0: cannot open shared object file: No such file or directory'" OpenSSL might not be installed on this system.
Thanks for letting us know that experimental-otp: true
solves the issue for you. I think we can make this the default soon.
For some reason we started seeing this error today on 23.1.2 and 1.11.2. The experimental flag fixed it for us.
I have been starting experiencing this bug, probably as a result of GitHub rolling upgrade of what 'ubuntu-latest' means as described here: https://github.com/actions/virtual-environments/issues/1816