【问题标题】:Phoenix: Running mix ecto.create Error Compiling Ranch DependencyPhoenix:运行 mix ecto.create 编译 Ranch 依赖项时出错
【发布时间】:2018-10-24 12:43:51
【问题描述】:

我正在尝试浏览 Phoenix 框架网站上的 Up And Running 教程。我有以下设置:

  • macOS 10.14.5
  • 凤凰1.4.6
  • 灵药 1.8.2
  • 二郎/OTP 22

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

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

mix ecto.create

出现如下错误:

(Mix) 无法编译依赖项 :ranch, "/Volumes/Macintosh HD/Users/mark/.mix/rebar3 bare compile --paths "/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 时,我得到了关于无法编译依赖项的相同错误:牧场。

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

我必须做些什么才能让启动并运行教程正常运行?

【问题讨论】:

  • 您找到解决方案了吗?我遇到了同样的问题。
  • 不,我没有。 Phoenix 1.4 中仍然存在该问题。
  • 操作员发布的步骤在 OSX 10.13.6、Phoenix v1.4.0、Elixir 1.6.6(使用 OTP 19 编译)和 Erlang/OTP 20 上对我来说没有错误。虽然,列表依赖关系现在不同了。
  • 这个问题似乎与 Elixir 和 OTP 的一个相当具体的组合有关。

标签: phoenix-framework rebar3


【解决方案1】:

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

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

【讨论】:

  • 在 Mac 上,有一个 ~/.config 文件夹。我的用户是该文件夹的所有者。我尝试再次阅读本教程,运行 macOS 10.14.5,但错误仍然存​​在。
  • @MarkSzymczyk 通过将我的 ~/.config 文件夹的权限更改为 600,我能够在 MacOS、Elixir 1.7.4 和 Erlang 20.1 下重新创建此问题。当我这样做时,我得到了牧场编译错误。将权限改回 755 允许编译牧场。你的 ~/.config 文件夹有什么权限?
  • 权限为drwxrwxr-x。我不确定数字等价物是什么。
  • @MarkSzymczyk 好的。那么这不是问题。我见过的唯一其他事情是安装 erlang-parsetools 和 erlang-dev。你是如何安装 Erlang 的?
  • @philosodad 我问这个问题已经一年了,所以我不确定我是如何安装 Erlang 的。我要么使用 Homebrew 安装它,要么从 Erlang 站点的源代码安装它。
猜你喜欢
  • 2017-05-13
  • 2017-08-01
  • 2019-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-12
  • 1970-01-01
相关资源
最近更新 更多