asdf:如何在一个地方管理python、java和node
在众多的开发工具中,版本管理器是必备的工具之一。 ASDF可以帮助你用一个工具管理几乎所有语言的多个版本,而不是为每种语言安装一个单独的版本管理器。 在这篇文章中,我将解释什么是ASDF以及如何安装它。
1. 为什么要使用一个版本管理器?
当你开始开发时,你做的第一件事就是安装最新版本的语言。 更确切地说,是该语言的编译器和运行时。 然后你安装编辑器和软件包管理器,开始开发。
但后来你遇到了一个问题。我安装的软件包不支持最新版本。杜敦。 我安装了一个旧版本的软件包,因为我真的需要它。 我安装了它,但它不能工作,因为我把PATH设置搞乱了,即使是最新的版本,它也能正常工作。作为一个开发者,我不知道该怎么做。
如果先安装版本管理器,然后再安装语言,这种情况是可以避免的。 随着开发环境变得越来越复杂,语言版本变得越来越重要。 某些软件包不能正常支持当前版本的情况并不罕见,就像上面的例子一样,而且有许多不同的环境需要客户考虑。
幸运的是,特定语言的版本管理器已经被开发出来,为你完成繁重的工作。 然而,不同的语言有不同类型的版本管理器,也有不同的使用方法,所以在你开始开发之前,收集信息可能是很累的。 现在,如果你同时用多种语言进行开发,那就更难了。这就是ASDF项目出现的原因。
2. 什么是ASDF
ASDF (opens in a new tab)是一个聚合语言版本管理器的平台。 安装asdf后,开发者为他们想使用的语言安装asdf插件。 正确安装后,任何语言都可以用一个API来管理。没有必要为每种语言使用不同的工具、不同的设置和不同的方法。
假设你正在做一个项目,前台使用React,后台使用FastAPI。 为了设置你的开发环境,你首先要决定使用哪个版本管理器来安装Nodejs:nvm、n、fnm或volta。 如果你选择n,你将需要花一些时间来安装、配置和学习如何使用它。
接下来是Python,你将经历同样的思考过程,设置你的开发环境:yenv、conda、mamba,等等。
一旦你安装了asdf,你就可以安装Nodejs插件和Python插件,像对待其他语言一样设置版本,然后直接进入开发。
就是这么简单。
3. asdf的优势
总之,ASDF是一个多合一的版本管理器,一旦你掌握了它,你就可以安装和管理几乎所有的语言。
但这还不是全部。 ASDF的大部分插件都是由社区维护的,所以它支持广泛的开发工具。 用于基于JVM的开发的Gradle、用于Nodejs的Deno、用于基础设施的awscli和kubecli,以及你可能需要的大多数其他工具都作为插件包含在内。
最后,ASDF允许你设置每个目录的语言或开发工具的版本。
你设置的版本被保存为一个配置文件,这有助于你和你的队友使用完全相同的版本。
特定语言的插件也支持每种语言的典型配置文件。
如果你的项目包含普通的.env
、.envrc
或特定工具的.nvmrc
、.node-version
或.rbenv
文件,你就被ASDF覆盖了。
4.如何安装asdf
asdf只支持Linux和Mac OS。对于Windows用户,你可以使用WSL2安装它。
4.1. 在Mac OS上安装asdf
要安装asdf,你将需要Curl和Git。这些程序在MacOS上是默认安装的,但如果你因为xcrun错误而不能运行它们,请参阅此帖。有两种方法来安装git和homebrew。
使用git安装, 在终端键入以下命令
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.11.3
如果你使用Homebrew安装, 在终端键入以下命令
brew install asdf
一旦你完成了这两种方式,你需要做的最后一件事就是整合它,使它在你的shell中运行良好。 根据你的shell,你需要输入的命令将是不同的,所以查看官方网站指南 (opens in a new tab),找到你所安装的组合并输入这些命令。
下面是我的例子。我使用Fish shell和Homebrew。
如下图所示,如果你没有得到任何错误信息,说明安装很顺利。
现在通过运行验证版本命令来验证安装。请到第5节去看从插件安装开始的过程。
4.2. 如何在Windows上安装asdf
在WSL中打开一个外壳来安装asdf。
如果你使用的是最新版本的Windows,你使用的是WSL2。我在Mac OS Parallels上运行Windows,WSL2目前被封锁了,所以我用WSL1版进行。
如果你还没有安装WSL,请到微软商店:Windows Subsystem for Linux页面 (opens in a new tab)并安装它、 从Microsoft Store: Ubuntu (opens in a new tab)下载Ubuntu。 其他的Linux发行版也可以使用。
运行已经安装好的Ubuntu,一个Bash shell就会等着你了。运行下面的命令来安装ASDF
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.11.3
结果:
完成后,在你的~/.bashrc
文件的底部添加以下两行。这些是在shell中启用ASDF的步骤。
. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"
使用Vim编辑器添加的屏幕截图:
现在重新启动Ubuntu并检查ASDF的版本。
5. 如何使用ASDF
让我们看看如何通过安装NodeJS插件和升级到最新版本来使用ASDF。 它在Mac和Windows上的效果是一样的,我将在Mac上进行。
asdf插件是在Github上维护的、 你可以在 asdf-vm/asdf-plugins repo (opens in a new tab) 中看到可供安装的插件列表,一目了然。
安装nodejs插件的命令如下所示。
asdf插件添加nodejs https://github.com/asdf-vm/asdf-nodejs.git
执行的结果:
安装该插件后,它会给你一个所有可供下载的nodejs的列表,而且有大量的版本。
安装最新的那个。运行asdf install [plugin_name] [version_name]
来安装它。这是它安装后的样子。
让我们在当前的shell中使用已安装的版本。
你也可以让它在当前目录或整个操作系统中使用,这取决于asdf的命令。
6. 总结
到目前为止,我们已经看到了如何为每个操作系统安装asdf,以及如何使用它的简要攻略。关于更详细的演练,我将在后面的文章中介绍为每种语言设置开发环境的情况。
就我个人而言,我对开发工具非常好奇,而且我想我已经尝试了我所使用的每种语言的每一个流行的发布管理器。 我通常不相信一刀切的工具,但我使用ASDF已经有一段时间了,没有任何问题。 我强烈推荐给那些经常为多平台和多语言开发的人。
