将Elixir升级到1.1.x后收到Logger.ErrorHandler崩溃错误

时间:2015-09-27 19:10:46

标签: macos homebrew elixir

在Mac OSX 10.10.5上,执行以下操作后将Elixir从v1.0.x升级到v1.1.x:

$ brew update
$ brew upgrade elixir

尝试运行任何应用或启动iex时出现以下(编辑长度)错误:

=ERROR REPORT==== 27-Sep-2015::19:27:32 ===
** gen_event handler 'Elixir.Logger.ErrorHandler' crashed.
** Was installed in error_logger
** Last event was: <snip>
** When handler state == <snip>
** Reason == <snip>
** (ArgumentError) argument error
    (elixir) lib/code.ex:363: Code.require_file/2

下面的答案!

1 个答案:

答案 0 :(得分:2)

当使用不同版本的Erlang运行Elixir应用程序/二进制文件时,似乎会发生这种情况。在这种情况下,代码是使用Erlang 17运行的,但是使用Erlang 18编译。您可以在此Github issue中阅读更多内容。

可以通过确保运行&amp; amp;编译Erlang版本匹配。在OSX的特定情况下,我安装了多个版本的Erlang(通过Homebrew和Erlang Solutions installer)。

从干净的石板开始:

# (Optional) To remove the Erlang Solutions installed Erlang
sudo rm -rf /usr/local/lib/erlang/
# To remove all homebrew-managed versions of Elixir
brew uninstall --force elixir
# To remove all homebrew-managed versions of Erlang
brew uninstall --force erlang

要重新安装:

brew install erlang
brew install elixir