使用 ASDF 安装 Elixir 和 Erlang
介绍
许多编程语言都会定期发布新版本,添加或弃用功能、修复错误并引入重大更改。为了帮助开发人员轻松切换版本,多个语言社区都提供了版本管理器(例如 Node.js 的 NVM 或 Ruby 的 Rbenv)。但是,当您需要一次切换多种语言的版本时,ASDF 版本管理器可确保每个项目都具有所需的环境。
这对于需要 Erlang 运行时的 Elixir 项目尤其重要。在本指南中,您将学习如何使用 macOS 或 Linux 上的 ASDF 版本管理器安装特定版本的 Elixir 和 Erlang/OTP。
安装 ASDF
ASDF版本管理器是一个命令行工具,可在 GitHub 上找到。它使用curl和git来安装各种语言。
安装先决条件
要安装curl和git实用程序,请运行:
brew install coreutils curl git # on macOS with Homebrew
sudo apt install curl git # on Linux
您可以在此处了解有关 macOS 上的 Homebrew 的更多信息。
克隆 ASDF
安装好先决条件后,现在克隆 ASDF 项目:
git clone https://github.com/asdf-vm/asdf.git ~/.asdf
如果您希望删除 ASDF,您可以通过从主目录中删除.asdf并撤消下面描述的配置更改来实现。
配置你的 Shell
最后,将 ASDF 包含在 shell 的配置中。对于zsh,将以下内容添加到~/.zshrc:
. $HOME/.asdf/asdf.sh
或者,如果您使用oh-my-zsh,请将asdf添加到您的插件配置中。要在使用其他 shell 时将 ASDF 包含在您的配置中,请查阅文档。
安装插件
ASDF 使用插件系统来支持多种语言。对于典型的 Elixir 项目,您将需要 Elixir 和 Erlang 插件:
asdf plugin add erlang
asdf plugin add elixir
如果您的项目需要Node.js,您也可以安装nodejs插件。
安装 Erlang/OTP
安装 ASDF 及其插件后,您现在可以安装 Elixir 和 Erlang。如果您的项目有一个包含elixir和erlang条目的.tool-versions文件,您可以通过在项目内部运行以下命令来安装正确的版本:
asdf install
.tool-versions文件与.nvmrc和.ruby-version文件非常相似,不同之处在于它列出了多种语言的名称和版本。通常,此文件中的名称应与语言插件的名称相匹配(例如,Node.js 的插件名称为nodejs)。
如果您还没有.tool-versions文件,或者想要全局安装 Elixir 和 Erlang,请使用以下命令查看所有可用的 Erlang/OTP 版本的列表:
asdf list-all erlang
# ...
23.2
23.2.1
23.2.2
# ...
与其他版本管理器不同,ASDF 要求您指定要安装的语言的精确版本。要安装Erlang版本23.2.1 ,请运行:
asdf install erlang 23.2.1
警告:此安装将需要一些时间,从源代码编译 Erlang。
Erlang 将根据系统中可用的库编译模块。例如,某些功能(如内置观察器)需要wx库。您可能会在安装过程中看到有关省略模块的消息,但这不会影响运行时的其余部分。
安装 Elixir
一旦安装了 Erlang 运行时,就可以安装 Elixir 了。要查看所有可用版本的列表,请运行:
asdf list-all elixir
# ...
1.11.2
1.11.2-otp-21
1.11.2-otp-22
1.11.2-otp-23
# ...
请注意,每个 Elixir 版本都有使用不同主要版本的 Erlang/OTP 编译的多个版本。为了最大限度地提高 Elixir 和 Erlang 运行时之间的兼容性,请选择与您在上一步中安装的运行时主要版本相匹配的-otp-XY版本。例如:
asdf install elixir 1.11.2-otp-23
安装 Elixir 所花的时间比安装 Erlang/OTP 所花的时间明显要少。
设置版本
现在您已经安装了 Elixir 和 Erlang/OTP,您可以将所选版本保存在项目中。从项目的根目录运行:
asdf local erlang 23.2.1
asdf local elixir 1.11.2-otp-23
将上面的版本替换为您在安装期间使用的版本。这将在您的项目中创建一个.tool-versions文件,该文件将指示 ASDF 使用哪些版本。如果您想设置全局或默认版本,请运行:
asdf global erlang 23.2.1
asdf global elixir 1.11.2-otp-23
这将在您的主目录中创建一个.tool-versions文件。当项目未指定自己的版本时,ASDF 将使用这些版本。
结论
ASDF 是 Elixir 项目的流行版本管理器,因为它可以管理 Elixir 和 Erlang 两个版本。在您的项目中包含一个.tool-versions文件,以帮助贡献者快速启动并运行,并且不要忘记利用Elixir 的-otp-XY版本以获得最佳兼容性。
如果您想了解有关 Elixir 的更多信息以及它可以为您的下一个项目做些什么,请查看Pluralsight 上的Elixir:The Big Picture 。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~