Mix install.archive 失败并要求 -i 指定目录
Mix install.archive fails and asks for -i to specify directory
我是运行这个命令
$ 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 不允许我那样做。我该如何解决这个问题?
TL;DR 在 mix
项目之外无法执行此任务。
来自 Mix.Tasks.Archive.Install
文档:
If no argument is supplied but there is an archive in the project’s root directory (created with mix archive.build), then the archive will be installed locally. For example:
mix do archive.build, archive.install
If an argument is provided, it should be a local path or a URL to a prebuilt archive, a git repository, a github repository, or a hex package.
mix archive.install
在后台调用 archive.build
。您收到的错误是由 archive.build
, which, unlike install
, receives -i
option.
引入的
它反过来期望 installation spec 存在。
总结:有人可能会提供 dep_spec
,如上面链接的源代码所示,但通常 mix
只是不明白在哪里 build 下载的包。之后,仍然会怀疑在哪里安装它。因此,最简单的解决方案是使用 mix new
创建空项目,然后在那里执行这些任务。
我是运行这个命令
$ 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 不允许我那样做。我该如何解决这个问题?
TL;DR 在 mix
项目之外无法执行此任务。
来自 Mix.Tasks.Archive.Install
文档:
If no argument is supplied but there is an archive in the project’s root directory (created with mix archive.build), then the archive will be installed locally. For example:
mix do archive.build, archive.install
If an argument is provided, it should be a local path or a URL to a prebuilt archive, a git repository, a github repository, or a hex package.
mix archive.install
在后台调用 archive.build
。您收到的错误是由 archive.build
, which, unlike install
, receives -i
option.
它反过来期望 installation spec 存在。
总结:有人可能会提供 dep_spec
,如上面链接的源代码所示,但通常 mix
只是不明白在哪里 build 下载的包。之后,仍然会怀疑在哪里安装它。因此,最简单的解决方案是使用 mix new
创建空项目,然后在那里执行这些任务。