混合install.archive失败并要求-i指定目录

时间:2017-06-16 01:00:14

标签: elixir mix

我正在运行此命令

$ mix archive.install github ninenines/cowboy
* Getting new package (https://github.com/ninenines/cowboy.git)
remote: Counting objects: 9525, done.        
remote: Compressing objects: 100% (13/13), done.        
remote: Total 9525 (delta 0), reused 11 (delta 0), pack-reused 9511        
...
** (Mix) Cannot create archive without input directory, please pass -i as an option

但是没有-i选项,mix不会让我这样做。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

TL; DR mix项目之外执行此任务是不可能的。

来自Mix.Tasks.Archive.Install文档:

  

如果没有提供参数,但项目的根目录(使用mix archive.build创建)中有一个存档,则存档将在本地安装。例如:

mix do archive.build, archive.install
     

如果提供了参数,它应该是本地路径或预构建存档的URL,git存储库,github存储库或hex包。

mix archive.install调用了archive.build。您收到的错误由archive.build引入,与install receives -i option不同。

反过来,它希望installation spec存在。

总结:有人可能提供dep_spec,如上面链接的来源所示,但一般mix只是不明白构建下载的包的位置。之后,它仍然存在疑问,在哪里安装它。因此,最简单的解决方案是使用mix new创建空项目,然后在那里执行这些任务。