LoginSignup
6
7

More than 5 years have passed since last update.

Mac で erlenv を使う際 Erlang/OTP が OpenSSL 付きでビルドできない問題

Last updated at Posted at 2016-02-08

結論から書くと、Mac OS X が標準で用意している SSL のライブラリを使おうとすると (自分の指定のしかたが悪いのかもしれないが) Erlang/OTP をソースからビルドしてもうまくいかない。事前に brew を使って openssl をインストールしておくと良いようだ。

ここでは otp_src_18.2.1 と Elixir 1.2.2 を前提としている。

症状としては

Mac OSXにanyenv/exenvでElixirをインストールする

の手順に沿って進めていくと、exenv install ... のところでエラーが出る。厳密に見比べていないが

で紹介されているエラーメッセージに近く、実際ここに記載がある通り erl を起動して crypto:start(). してみるとエラーになる。

otp_src_18.2.1 の ./configure 時に OpenSSL の問題が出ているようだ。

そこでこの ./configure 時に --with-ssl=/usr を追加すると

*********************************************************************
**********************  APPLICATIONS DISABLED  **********************
*********************************************************************

crypto         : OpenSSL is configured for kerberos but no krb5.h found
odbc           : ODBC library - link check failed
ssh            : OpenSSL is configured for kerberos but no krb5.h found
ssl            : OpenSSL is configured for kerberos but no krb5.h found

と表示され Erlang/OTP はビルドは完了するが、同様に erlcrypto:start(). 実行時にエラー (下記の --enable-dynamic-ssl-lib をさらに追加しても同様)。

を見ると

--enable-dynamic-ssl-lib
--with-ssl=#{Formula["openssl"].opt_prefix}

としているようなので、brew install openssl してから

--enable-dynamic-ssl-lib
--with-ssl=/usr/local/opt/openssl

を追加したところ、無事 Mac OSXにanyenv/exenvでElixirをインストールする の手順で Elixir までインストール完了。

ある人から「事前に homebrew で openssl をインストールしておけば上記 2 つの configure オプションは不要」とも聞いたが、私の方では確認していない。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7