如何使用 Erlang/OTP 25 编译器重新编译 rebar3?运行灵药 1.13.4

2024-02-20

我正在关注免费的截屏视频/教程凤凰城 LiveView 启动器 https://online.pragmaticstudio.com/courses/liveview-starter/modules/2但我什至无法开始,因为mix setup失败并显示:

=ERROR REPORT==== 6-Jul-2022::12:47:58.702361 ===
beam/beam_load.c(551): Error loading function rebar3:parse_args/1: op put_tuple u x:
  please re-compile this module with an Erlang/OTP 25 compiler


escript: exception error: undefined function rebar3:main/1
  in function  escript:run/2 (escript.erl, line 750)
  in call from escript:start/1 (escript.erl, line 277)
  in call from init:start_em/1
  in call from init:do_boot/3
** (Mix) Could not compile dependency :telemetry, "/Users/martinstabenfeldt/.mix/rebar3 bare compile --paths /Users/martinstabenfeldt/Work/pragmaticstudio.com-liveview-starter/code-bundle/live_view_studio/_build/dev/lib/*/ebin" command failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile telemetry", update it with "mix deps.update telemetry" or clean it with "mix deps.clean telemetry"
$ elixir --version
Erlang/OTP 25 [erts-13.0.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit:ns] [dtrace]

Elixir 1.13.4 (compiled with Erlang/OTP 24)

我的 mix.exs 部门看起来像这样:

  defp deps do
    [
      {:phoenix, "~> 1.5.13"},
      {:phoenix_ecto, "~> 4.4"},
      {:ecto_sql, "~> 3.4"},
      {:postgrex, ">= 0.0.0"},
      {:phoenix_live_view, "~> 0.16.4"},
      {:floki, ">= 0.30.0", only: :test},
      {:phoenix_html, "~> 3.0.4"},
      {:phoenix_live_reload, "~> 1.2", only: :dev},
      {:phoenix_live_dashboard, "~> 0.4"},
      {:telemetry_metrics, "~> 0.6"},
      {:telemetry_poller, "~> 1.0"},
      {:gettext, "~> 0.11"},
      {:jason, "~> 1.0"},
      {:plug_cowboy, "~> 2.0"},
      {:faker, "~> 0.17.0"},
      {:number, "~> 1.0"}
    ]
  end

我不确定如何使用 OTP 25 编译器重新编译。 我正在运行 Elixir 1.13.4。它是用 OTP 24 编译的。不确定这是否与之有关? 我也尝试过 mix local-rebar --force and mix deps.update telemetry没有任何运气。


如果您要检查elixir --version仔细提示,你会发现这个:

Elixir 1.13.4 (compiled with Erlang/OTP 24)

假设你使用asdf https://asdf-vm.com/作为版本管理员,请确保您拥有正确的elixir /questions/tagged/elixir安装版本:

$ asdf list all elixir
...
1.13.4
1.13.4-otp-22
1.13.4-otp-23
1.13.4-otp-24
1.13.4-otp-25
...

你需要一个,编译过的OTP25, 意义

$ asdf install elixir 1.13.4-otp-25
$ asdf global elixir 1.13.4-otp-25

会做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Erlang/OTP 25 编译器重新编译 rebar3?运行灵药 1.13.4 的相关文章

随机推荐