混合依赖项获取失败(依赖项问题)

9

我很新手对于Elixir和Phoenix(以及Ubuntu),一直在努力学习Web开发。 创建一个新的Phoenix应用程序后,

mix phoenix.new webapp

我从终端获得以下错误信息。
Fetch and install dependencies? [Yn] y
* running mix deps.get
* error command failed to execute, please run the following command again after installation: "mix deps.get"
* running npm install && node node_modules/brunch/bin/brunch build
* error command failed to execute, please run the following command again after installation: "npm install && node node_modules/brunch/bin/brunch build"

运行mix deps.get命令时,会出现以下错误信息。
** (Mix) No package with name phoenix_ecto (from: mix.exs) in registry

我在使用这个平台上还很新,所以我不太确定如何从仓库中获取/放置/下载phoenix_ecto包。 据我所知,所有操作都由hex包管理器处理。
几天前,我成功地启动了phoenix,并成功地开发了一些小型测试应用程序。但是,在我的终端sudo乱搞之后,似乎某些地方出了问题。
以下是一些额外的信息。
Elixir 1.3.4
Mix 1.3.4
npm 3.5.2
node v4.2.6
Phoenix v1.2.1

如果需要其他信息,我很乐意提供!

这是一个奇怪的错误。是的,phoenix_ecto 应该由 hex 处理。如果我是你,我会尝试将依赖项直接添加到你的 mix 文件中(如果还没有)。像这样:{:phoenix_ecto, "~> 3.1.0-rc.0"} - Onorio Catenacci
我检查了我的mix.exs文件,依赖项已经是{:phoenix_ecto, "~> 3.0"}。 - Charles Schleich
2个回答

9

我成功修复了错误,方法是解锁依赖项并更新它们。以下是命令。

mix deps.unlock --all
mix deps.update --all

现在项目已经创建并且能够顺利构建。

希望这对某些人有所帮助。

编辑 1:

如果以上方法不起作用,可能是您的 hex 安装已损坏。这是我发布原帖后大约一周发生的情况。可以通过卸载 hex 并重新安装来解决。

rm -rf ~/.mix/archives/hex-0.15.0
mix local.hex

你的十六进制版本可能与我的不同。

hex-0.xx.x

我正想建议您确保所有依赖项都已解锁。很高兴您自己找到了它。 - Onorio Catenacci

0

这可能出现在几种情况下。首先检查你的mix.exs依赖项部分。确保phoenix_ecto与正确的版本和选项一起放置。此外,您需要检查本地的phoenix_ecto,只需克隆存储库并在项目中设置{:phoenix_ecto,path:“...”}。尝试在本地编译。如果它在本地编译但在依赖项中没有编译,请检查phoenix_ecto mix.exs文件和defp package方法,并确保返回带有mix.exs [_, .., file:〜w {mix.exs},_]的列表。

通常,这个问题与mix.exs有关。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接