无法使用新命令生成 phoenix 项目

can not generate phoenix project with new command

我遇到了这样的麻烦

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

创建新的 phoenix 项目
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 从他们的网站指令框架。它工作正常。但我不能 创建一个新的 phoenix 项目 - 上面的错误。

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

P.S 混合对我来说工作正常。也一样。 有什么建议吗?

您没有安装 crypto 这在通过 kerl 安装 Erlang 时很常见。没有关于安装功能不全的警告。要确认这一点,试试这个:

erl
1> application:start(crypto).
ok

如果你得到的不是 ok 原子,请尝试 运行 这个:

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

然后重新安装 Erlang。

您可能从来不需要 crypto 并且在没有它的情况下工作,但是当 运行 mix phoenix.new 它会为您的应用程序生成密钥并且它确实需要该模块。