用new命令不能生成phoenix项目

时间:2016-03-22 19:04:08

标签: elixir phoenix-framework

我遇到麻烦can't generate phoenix new app

但我在那里发现的解决方案实际上对我来说并不是因为我使用的是ubuntu 15.10 问题: 我试图通过

创建新的凤凰项目
mix phoenix.new my_app

命令并捕获跟随错误:

并且抓住了跟随错误

[error] Process #PID<0.47.0> raised an exception
(UndefinedFunctionError) undefined function:
:crypto.strong_rand_bytes/1 (module :crypto is not available)
:crypto.strong_rand_bytes(64)
lib/phoenix_new.ex:460: Mix.Tasks.Phoenix.New.random_string/1
lib/phoenix_new.ex:189: Mix.Tasks.Phoenix.New.run/4
(mix) lib/mix/cli.ex:60: Mix.CLI.run_task/2
(elixir) src/elixir_compiler.erl:126:
:elixir_compiler.dispatch_loaded/6
(elixir) src/elixir_lexical.erl:16: :elixir_lexical.run/3
(elixir) src/elixir_compiler.erl:30: :elixir_compiler.quoted/3
(elixir) lib/code.ex:363: Code.require_file/2

我已尝试过两种方式安装erlang

  1. 我从源代码编译Erlang,然后安装Elixir和Phoenix 框架来自他们的网站指令。它工作正常。但我不能 创建一个新的凤凰项目 - 上面的错误。

  2. 我删除了以前的Erlang版本并从Ubuntu安装了Erlang 软件中心 - Erlag工作正常。但我无法创建一个项目 再次出现类似错误

  3. P.S mix适用于我。 iex也是。 有什么建议吗?

1 个答案:

答案 0 :(得分:7)

您没有安装crypto,这在通过kerl安装Erlang时非常常见。没有警告说安装不能完全正常运行。要确认这一点,请尝试以下方法:

erl
1> application:start(crypto).
ok

如果你得到的不是ok atom,请尝试运行:

sudo apt-get install build-essential libncurses5-dev openssl libssl-dev fop xsltproc unixodbc-dev

然后重新安装Erlang。

您可能从未需要crypto并且没有它,但在运行mix phoenix.new时,它会为您的应用程序生成密钥,而且它确实需要该模块。