Phoenix:运行 mix ecto.create 编译 Ranch 依赖项时出错

问题描述 投票:0回答:2

我正在尝试浏览 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 barecompile --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 ranch
mix 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
遇到的每个问题都涉及创建数据库用户。没有其他人对牧场有任何问题。

我需要做什么才能让安装和运行教程正常运行?

phoenix-framework rebar3
2个回答
1
投票

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

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


0
投票

我现在可以毫无错误地运行

mix ecto.create
命令。该命令在以下环境下可以正常运行:

  • macOS 12.7.4
  • 凤凰1.7.12
  • 长生不老药1.16.2
  • Erlang/OTP 26
© www.soinside.com 2019 - 2024. All rights reserved.