Dependencies “长生不老药”;在注册表中找不到程序包::hackney“;问题

Dependencies “长生不老药”;在注册表中找不到程序包::hackney“;问题,dependencies,elixir,version,elixir-mix,Dependencies,Elixir,Version,Elixir Mix,我正在尝试为我的项目添加覆盖范围,但是 不断遇到问题 我尝试了错误中的所有建议 此列表底部的消息 我有一个大项目,我希望增加覆盖面 用于单元测试,但所有的覆盖包都是炸弹 同样地 我启动了一个干净的项目“bug”,只有mix-deps() 添加,使干扰最小化 任何帮助都将不胜感激 版本: rebar3 --version rebar 3.13.2 on Erlang/OTP 22 Erts 10.4.3 elixir --version Erlang/OTP 22 [erts-10.4.3] [

我正在尝试为我的项目添加覆盖范围,但是 不断遇到问题

我尝试了错误中的所有建议 此列表底部的消息

我有一个大项目,我希望增加覆盖面 用于单元测试,但所有的覆盖包都是炸弹 同样地

我启动了一个干净的项目“bug”,只有mix-deps() 添加,使干扰最小化

任何帮助都将不胜感激

版本:

rebar3 --version
rebar 3.13.2 on Erlang/OTP 22 Erts 10.4.3

elixir --version
Erlang/OTP 22 [erts-10.4.3] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]
Elixir 1.9.4 (compiled with Erlang/OTP 22)

erl --version
Erlang/OTP 22 [erts-10.4.3] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]
Eshell V10.4.3  (abort with ^G)
deps中的mix.exs

defp deps() do
  [
    #{:coverex, "~> 1.5", only: [:test], runtime: false},
    {:excoveralls, "~> 0.13.0", only: [:test], runtime: false},
    {:idna, "~> 6.0.1"},
  ]
end
我用过不同版本的coverex和Excworkarks,但是 结果是一样的

我注意到:

"Bad dependency version for httpoison (and others...)"
但我也不知道该怎么办

错误/警告消息似乎与依赖项有关。 依赖关系不应该自己解决这些问题吗

清单如下:

=> mix clean
=> mix deps.get
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  certifi 2.5.2
  excoveralls 0.13.0
  hackney 1.16.0
  idna 6.0.1         # Below it says idna 6.0.1 not found - why?
  jason 1.2.1
  metrics 1.0.1
  mimerl 1.2.0
  parse_trans 3.3.0
  ssl_verify_fun 1.1.6
  unicode_util_compat 0.5.0
All dependencies are up to date
Command completed
=> mix test  # Try to run default test on a new repo
===> Package idna-6.0.1 not found. Fetching registry updates and trying again...
===> Updating package registry...
===> Writing registry to /home/cecilm/.cache/rebar3/hex/default/registry
===> Generating package index...
===> [appsignal:1.6.2], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.6-beta.1], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.0], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.7.0-alpha.4], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.0-beta.1], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.3], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.7.0-alpha.3], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [batch_loader:0.1.0-beta.4], Bad dependency version for absinthe: ~> 1.4.0 or ~> 1.5.0-beta.
===> [prometheus_httpd:2.1.10], Bad dependency version for prometheus: ~> 3.5 or ~> 4.2.
===> [batch_loader:0.1.0-beta.5], Bad dependency version for absinthe: ~> 1.4.0 or ~> 1.5.0-beta.
===> [appsignal:1.7.0-alpha.2], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.7.0-alpha.1], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [batch_loader:0.1.0-beta.6], Bad dependency version for absinthe: ~> 1.4.0 or ~> 1.5.0-beta.
===> [appsignal:1.12.0], Bad dependency version for decorator: ~> 1.2.3 or ~> 1.3.
===> [appsignal:1.6.1], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.5], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.6-beta.2], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.6], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.7], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.4], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [batch_loader:0.1.0-beta.3], Bad dependency version for absinthe: ~> 1.4.0 or ~> 1.5.0-beta.
===> [appsignal:1.6.0-alpha.1], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> Writing index to /home/cecilm/.cache/rebar3/hex/default/packages.idx
===> Package not found in registry: {<<"idna">>,<<"6.0.1">>}.
(Mix) Could not compile dependency :hackney, "/home/cecilm/.mix/rebar3 bare
compile --paths="/home/cecilm/play/Elixir/bug/_build/test/lib/*/ebin"" command
failed. You can recompile this dependency with "mix deps.compile hackney",
update it with "mix deps.update hackney" or clean it with "mix deps.clean
hackney"
=>混合清洁
=>混合deps.get
正在解析十六进制依赖项。。。
已完成依赖项解析:
不变:
certifi 2.5.2
工作服0.13.0
哈克尼1.16.0
idna 6.0.1#下面说找不到idna 6.0.1-为什么?
jason 1.2.1
指标1.0.1
mimerl 1.2.0
解析_trans 3.3.0
ssl\u验证\u乐趣1.1.6
unicode_util_compat 0.5.0
所有依赖项都是最新的
命令完成
=>混合测试#尝试对新回购协议运行默认测试
=>找不到程序包idna-6.0.1。正在获取注册表更新并重试。。。
=>正在更新包注册表。。。
=>将注册表写入/home/cecilm/.cache/rebar3/hex/default/registry
=>正在生成包索引。。。
=>[appsignal:1.6.2],httpoison的不良依赖版本:~>0.11或~>1.0。
=>[appsignal:1.6.6-beta.1],httpoison的不良依赖版本:~>0.11或~>1.0。
=>[appsignal:1.6.0],httpoison的不正确依赖版本:~>0.11或~>1.0。
=>[appsignal:1.7.0-alpha.4],httpoison的错误依赖版本:~>0.11或~>1.0。
=>[appsignal:1.6.0-beta.1],httpoison的不良依赖版本:~>0.11或~>1.0。
=>[appsignal:1.6.3],httpoison的不正确依赖版本:~>0.11或~>1.0。
=>[appsignal:1.7.0-alpha.3],httpoison的错误依赖版本:~>0.11或~>1.0。
=>[batch_loader:0.1.0-beta.4],苦艾酒的不良依赖版本:~>1.4.0或~>1.5.0-beta。
==>[prometheus_httpd:2.1.10],prometheus的不正确依赖版本:~>3.5或~>4.2。
==>[batch_loader:0.1.0-beta.5],苦艾酒的不良依赖版本:~>1.4.0或~>1.5.0-beta。
=>[appsignal:1.7.0-alpha.2],httpoison的错误依赖版本:~>0.11或~>1.0。
=>[appsignal:1.7.0-alpha.1],httpoison的错误依赖版本:~>0.11或~>1.0。
==>[batch_loader:0.1.0-beta.6],苦艾酒的不良依赖版本:~>1.4.0或~>1.5.0-beta。
=>[appsignal:1.12.0],装饰程序的依赖项版本不正确:~>1.2.3或~>1.3。
=>[appsignal:1.6.1],httpoison的不良依赖版本:~>0.11或~>1.0。
=>[appsignal:1.6.5],httpoison的不良依赖版本:~>0.11或~>1.0。
=>[appsignal:1.6.6-beta.2],httpoison的不良依赖版本:~>0.11或~>1.0。
=>[appsignal:1.6.6],httpoison的不正确依赖版本:~>0.11或~>1.0。
=>[appsignal:1.6.7],httpoison的不正确依赖版本:~>0.11或~>1.0。
=>[appsignal:1.6.4],httpoison的不良依赖版本:~>0.11或~>1.0。
=>[batch_loader:0.1.0-beta.3],苦艾酒的不良依赖版本:~>1.4.0或~>1.5.0-beta。
=>[appsignal:1.6.0-alpha.1],httpoison的错误依赖版本:~>0.11或~>1.0。
=>将索引写入/home/cecilm/.cache/rebar3/hex/default/packages.idx
=>在注册表中找不到包:{,}。
(Mix)无法编译依赖项:hackney,“/home/cecilm/.Mix/rebar3”
compile--path=“/home/cecilm/play/Elixir/bug/_build/test/lib/*/ebin”命令
失败。您可以使用“mix deps.compile hackney”重新编译此依赖项,
用“mix deps.update hackney”更新或用“mix deps.clean”清理
“哈克尼”
(从我的)

删除本地rebar3和mix安装以及当前获取的依赖项及其编译版本可以解决此问题

rm -rf ~/.cache/rebar3 ~/.mix deps _build 
mix deps.get
hex将告诉您是否有新版本,据我所知,通过mix local.rebar安装和使用的钢筋版本取决于您使用的mix(so elixir)版本。它受精确版本匹配的约束,而不是(语义)范围

因此,当hex告诉您可以在mix deps.get之后更新mix local.hex时,最好运行mix local.hex,而每次更新elixir后,您都应该运行mix local.rebar


每周做一次。一些与依赖项相关的棘手错误…

这是Erlang的
rebar
包管理器和
idna
依赖项的兼容性问题。您需要通过运行更新项目中的钢筋

mix local.rebar

在命令行。这应该可以解决问题。

我无法在Elixir 1.10上重现它,但是搜索如此之多的idna会返回许多问题。。首先,尝试将Elixir升级到最新版本。通常,即使您自己回答了问题,也会接受答案,因此您可以向后来发现它的人说明它解决了您的问题。@TrailingDots在这里,因此您必须使用绿色复选框标记正确答案。人们确实在帮助你,请找些时间帮助未来的访客。