【问题标题】:Elixir not installed未安装灵丹妙药
【发布时间】:2018-06-12 15:09:45
【问题描述】:

我刚刚克隆了一个 Elixir/Phoenix 项目,但无法运行任何混合任务。我不断收到elixir 1.5.1 not installed。我不明白,因为我安装了 Elixir。如果我从项目外部的任何其他文件夹运行elixir --version,我可以看到我在 Elixir 1.5.1 上运行。就在这个项目中,我不断收到没有安装 elixir 的错误。

可能是什么问题? mix.exs 文件的内容如下所示: 项目部分

def project do
[
  app: :real_world,
  version: "0.0.1",
  elixir: "~> 1.5",
  elixirc_paths: elixirc_paths(Mix.env),
  compilers: [:phoenix, :gettext] ++ Mix.compilers,
  start_permanent: Mix.env == :prod,
  aliases: aliases(),
  deps: deps(),
  test_coverage: [tool: ExCoveralls],
]
end

还有 deps 部分:

defp deps do
[
  {:phoenix, "~> 1.3.0"},
  {:phoenix_pubsub, "~> 1.0"},
  {:phoenix_ecto, "~> 3.2"},
  {:postgrex, "~> 0.13.3"},
  {:gettext, "~> 0.11"},
  {:proper_case, "~> 1.0.0"},
  {:cowboy, "~> 1.1"},
  {:comeonin, "~> 3.2"},
  {:guardian, "~> 0.14.5"},
  {:excoveralls, "~> 0.7", only: [:dev, :test]},
  {:credo, "~> 0.8.5", only: [:dev, :test]},
  {:ex_machina, "~> 2.0", only: :test},
  {:plug, "~> 1.0"},
  {:corsica, "~> 1.0"}
]
end

【问题讨论】:

  • 向我们展示:项目mix.exs 文件的内容,您收到的确切错误消息。
  • 你有正确的PATH设置吗?
  • 刚刚更新了我的问题@mudasobwa
  • @PatNowak 你的意思是长生不老药路径?
  • 另外,你有没有机会在项目的根目录中有一个名为 .exenv-version 的文件?

标签: elixir phoenix-framework


【解决方案1】:

好吧,不管它值多少钱,我会在这里发布答案。

如果 elixir 版本管理器文件最初提交到此存储库(通过代码所有者)和代码使用者安装了相同的版本管理器,但没有在此本地文件中指定确切的版本。

目前有三种流行的 Elixir/Erlang 版本管理器。这些都很好described here

exenv 产生 .exenv-version 文件,asdf 产生 .tool-versionskiex 请阅读它的文档。让一切正常工作的最简单方法是删除所有这些点文件,但在极少数情况下可能会破坏构建。

最好的方法是满足代码所有者隐含的依赖关系。为此,请检查实际使用的是什么工具,并在项目根目录下发出以下命令(以下示例为asdf,其余应类似):

$ asdf list elixir
1.5

读取点文件中指定的内容(在本例中为.tool-version):

$ cat .tool-version
erlang 20.0 
elixir 1.5.1 

好的,我们缺少一个版本1.5.1。安装它:

$ asdf install elixir 1.5.1

现在您的项目应该可以使用代码所有者暗示的确切版本顺利运行。

一个安装,你可以设置一个全球或本地版本取决于什么适合你。

全球:

$ asdf global elixir 1.5.1

或项目本地:

$ asdf local elixir 1.5.1

【讨论】:

    猜你喜欢
    • 2019-02-15
    • 2018-10-11
    • 1970-01-01
    • 2019-11-30
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多