在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
下面的答案!
答案 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