【问题标题】:In elixir, How do i install packages globally?在 elixir 中,我如何在全球范围内安装软件包?
【发布时间】:2016-02-06 11:53:31
【问题描述】:

我可以使用 mix 来全局安装一些包吗?我想要npm 的全局选项或gem 的安装之类的行为 - 它可能对我在任何地方使用的软件包很有用,例如csvyaml

【问题讨论】:

标签: elixir elixir-mix


【解决方案1】:

Elixir 中没有这样的东西,你总是在项目的上下文中使用依赖项。存档或 escripts 等解决方案旨在解决特定问题,它们不允许项目之间共享包。

但是,无需担心共享常用包。 Hex,包管理器,已经缓存了这些,它会为你处理它。

【讨论】:

  • 我明白了!谢谢valiml。
【解决方案2】:

某些软件包将提供一个存档文件,您可以全局安装。

http://elixir-lang.org/docs/v1.1/mix/Mix.Tasks.Archive.Install.html

例如凤凰:

mix archive.install https://github.com/phoenixframework/phoenix/releases/download/v1.0.3/phoenix_new-1.0.3.ez

这允许全局访问mix phoenix.new 任务。但是,没有任何特定的允许安装所有混音项目中可用的库。

【讨论】:

  • 此处的实际文档链接 - hexdocs.pm/mix/Mix.Tasks.Archive.Install.html
  • 是的,Phoenix 框架就是这样一种存档,您可以使用mix archive.install hex phx_new 安装最新版本。要列出您可以使用的所有“全球”档案及其版本:mix archive
【解决方案3】:

对于 Elixir 脚本,您可以使用 erun 虚拟安装全局包。 通过使用您的依赖项编译erun,您可以运行

$ erun foo.exs

erun 只是一个脚本。)

https://github.com/s417-lama/erun

【讨论】:

    猜你喜欢
    • 2022-08-10
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 2022-01-20
    • 2016-01-03
    相关资源
    最近更新 更多