Phoenix: Running mix ecto.create 编译牧场依赖关系时出错



我正在尝试完成 Phoenix 框架站点上的启动和运行教程。我有以下设置:

  • macOS 10.14.5
  • 凤凰城 1.4.6
  • 长生不老药 1.8.2
  • Erlang/OTP 22

我使用mix phx.new命令创建项目。系统提示我获取并安装依赖项。我输入Y。依赖项已成功获取并安装。

我转到我的项目目录并输入以下命令:

mix ecto.create

出现以下错误:

(Mix( 无法编译依赖项 :ranch, "/Volumes/Macintosh HD/Users/mark/.mix/rebar3 裸编译 --path "/Code/hello/_build/dev/lib/*/ebin" 命令失败。

您可以使用"mix deps.compile ranch">

重新编译此依赖项,使用"mix deps.update ranch"更新它或使用"mix deps.clean ranch"清理它

如果我运行mix phx.server,我会收到同样的错误。

如果我运行mix deps.clean ranchmix deps.update ranch,它会列出以下未更改的依赖项:

Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
connection 1.0.4
cowboy 2.6.3
cowlib 2.7.3
db_connection 2.0.6
decimal 1.7.0
ecto 3.1.4
ecto_sql 3.1.3
file_system 0.2.7
gettext 0.16.1
jason 1.1.2
mime 1.3.1
phoenix 1.4.6
phoenix_ecto 4.0.0
phoenix_html 2.13.2
phoenix_live_reload 1.2.0
phoenix_pubsub 1.1.2
plug 1.8.0
plug_cowboy 2.0.2
plug_crypto 1.0.0
postgrex 0.14.3
ranch 1.7.1
telemetry 0.4.0

所以牧场已经编译好了。但是当我再次运行mix ecto.create时,我收到关于无法编译依赖项:ranch的相同错误。

我做了一个互联网搜索,看看是否有其他人有同样的问题。某人遇到的每个问题都涉及创建数据库用户mix ecto.create。没有其他人对牧场有问题。

我必须做什么才能使启动和运行教程正常运行?

我在 Ubuntu 下遇到了这个问题,问题是我当前的用户无法读取 ~/.configure 文件夹。更改该文件夹及其内容的所有者和组为我们解决了问题。

我能够在MacOS下重现这个问题,使用Elixir 1.7.4和Erlang 20.1,将我的~/.config文件夹的权限更改为600。将权限设置回 755 允许编译。

最新更新