結論から書くと、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 はビルドは完了するが、同様に erl
で crypto: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 オプションは不要」とも聞いたが、私の方では確認していない。