神器推荐:用asdf-vm将你从各种语言的版本管理器之中解救出来
前言
你是不是和我一样,是一个会使用一大堆编程语言的软件开发工程师?例如:
Java、C#、JavaScript、Ruby、Python、Go……
你是不是和我一样,会在电脑上装一大堆以上各种语言的“版本管理器(Version Mananger)”,为了管理和切换不同项目的运行时(Runtime)版本?例如:
sdkman、nvm、rvm、pyenv、gvm……
你是不是和我一样,是一个浪费了大量时间在选择某种语言的版本管理器上的“强迫症患者”?例如:
到底应该用sdkman呢还是jabbar呢?
到底应该用nvm呢还是n呢?
到底应该用rvm呢还是rbenv呢?
……
你是不是和我一样,被各种语言的版本管理器污染了硬盘还整的精神分裂呢?
你是不是和我一样,期待能够有种能够管理所有语言的版本管理器,从而“一统江湖”呢?
你是不是和我一样,平时使用macOS或者Linux操作系统呢?
如果以上答案都和我一样,那这篇神器推荐就是写给你的,让我们隆重介绍这款“一统江湖的语言版本管理器”:asdf-vm!
(对不起,我也用Windows,只是神器不支持……囧)
asdf-vm介绍
asdf-vm是一个能够按项目管理多种语言运行时版本的命令行工具,当前以插件的方式已经支持150+的语言或常用开发工具。
官网地址为:https://asdf-vm.com
并且,这个工具已经在2019年11月的“ThoughtWorks技术雷达”中被第一次纳入雷达范围,当前处于“评估”状态。
评估:在了解它将对你的企业产生什么影响的前提下值得探索。
相比于安装一大堆“专款专用”的版本管理工具来说,asdf-vm具备以下特点:
- 用一个命令行工具支持多种编程语言
- 用完全一致的命令管理所有的编程语言
- 可以通过一个配置文件在一个地方保持全局的默认配置
- 可以通过一个
.tool-versions
配置文件按工程进行单独配置- 支持现有的配置文件以方便迁移现有版本管理工具的使用,例如:
.node-version
,.nvmrc
,.ruby-version
- 在目录切换的时候自动切换运行时的版本
- 通过简洁的插件系统添加多种编程语言的支持
- 由插件自身管理命令行自动完成脚本,而不需要你自己去配置!
而且这个工具的名字起的也很有特色——asdf
对应的就是标准键盘上左手默认放在上面的A
S
D
F
四个按键,又好按又好记。
使用方法
工具的安装方法非常简单,在这里就不过多介绍了,可以看官网说明。在这里主要给大家快速展示下常用的使用方法。
安装语言插件
安装完成后,可以首先通过以下命令列出所有支持的语言插件:
1 | asdf plugin list all |
当然,如果想快速知道某种语言是否已被支持,可以用grep根据关键字进行快速查找,例如:
1 | asdf plugin list all | grep golang |
每种语言的一些特殊使用要求和注意事项,可以查看该语言的插件页面。
安装某种语言的可用版本
在安装了某种语言的插件之后,可以通过asdf list all <name>
命令查看所有在线的可用版本,例如:
1 | asdf list all golang |
然后,根据自己的需要,通过asdf install [<name> <version]
命令安装指定的语言版本,例如:
1 | asdf install golang 1.13.6 |
PS:小心点,如果你没有加版本号,则默认安装的是该语言的所有可用版本!
在安装完成后,可以通过以下命令显示所有已安装的语言和版本:
1 | asdf list |
使用某种语言的已安装版本
在日常使用时,切换指定的语言版本非常简单。
如果仅仅是在当前的shell会话中临时进行切换,可以使用asdf shell <name> <version>
命令,例如:
1 | asdf shell golang 1.13.6 |
如果希望设置在某个目录之下使用特定的版本,可以使用asdf local <name> <version>
命令,这个命令能够在当前文件夹下生成一个.tool-version
文件记录指定的语言和版本号,这样下回再从命令行访问改目录的时候,就会自动切换到对应的语言版本(同时还兼容常见的其他版本管理器的配置文件),例如:
1 | asdf local golang 1.13.6 |
如果希望在全局设置默认的语言版本,则可以使用asdf global <name> <version>
命令,这个命令能够在用户的$HOME
文件夹下生成一个.tool-version
文件记录默认的语言和版本号,例如:
1 | asdf global golang 1.13.6 |
怎么样?以上命令是不是非常简单好用?
从现在开始,用asdf-vm来挨个替换你电脑上各种专用的运行时版本管理器吧!
欢迎关注我的个人公众号
微信搜索:枪炮与代码
,或者搜索公众号ID:guns_n_code