Manage multiple runtime versions with a single CLI tool
프로젝트별로 사용하는 언어의 버전이 다른 경우 다양한 언어별 버전 매니저를 사용합니다. Go는 gvm, Node.js는 nvm, ruby는 rbenv를 주로 사용합니다.
다양한 버전 매니저를 하나의 도구로 사용할 수 있는 것이 asdf입니다.
동일한 방식(명령어)으로 버전을 관리할 수 있고 실제 내부 구현은 nvm, rbenv를 그대로 쓰기 때문에 안정적입니다.
.tools-version
으로 프로젝트별 버전을 관리할 수 있어 협업할때도 편리합니다.
1# install dependencies
2brew install coreutils curl git
3
4# install asdf
5brew install asdf
6
7# add to shell
8echo -e "\n. $(brew --prefix asdf)/asdf.sh" >> ~/.bash_profile
OS별, shell 별 자세한 설치는 여기서 확인하세요.
1# nodejs & yarn 사용하는 경우
2# plugin 설치하고
3asdf plugin add nodejs
4asdf plugin add yarn
5# 원하는 버전 설치하고
6asdf install nodejs 16.3.0
7asdf install yarn 1.22.10
8# 프로젝트 설정
9asdf local nodejs 14.16.0
10asdf local yarn 1.22.10
11# 디렉토리에 .tools-version 파일로 관리
12nodejs 14.16.0
13# 다른 버전 확인하기 (리스트중에서 선택하여 install)
14asdf list-all nodejs
1# 추가
2asdf plugin add <name> <git-url>
3# asdf plugin add elm https://github.com/vic/asdf-elm
4
5# 조회
6asdf plugin list
7
8# 업데이트
9asdf plugin update --all
10asdf plugin update <name>
11# asdf plugin update erlang
12
13# 삭제
14asdf plugin remove <name>
15# asdf plugin remove erlang
플러그인 별로 설치방법이 조금씩 상이합니다. 해당 저장소의 내용을 자세하게 읽고 정해진 방식으로 설치합니다.
주요 플러그인
언어 | 저장소 |
---|---|
go | kennyp/asdf-golang |
Java | halcyon/asdf-java |
Node.js | asdf-vm/asdf-nodejs |
Yarn | twuni/asdf-yarn |
Python | danhper/asdf-python |
Ruby | asdf-vm/asdf-ruby |
Terraform | Banno/asdf-hashicorp |
1# 설치
2asdf install <name> <version>
3# asdf install erlang 17.3
4
5# 설치 버전 확인
6asdf list <name>
7# asdf list erlang
8
9# 전체 설치가능한 버전 확인
10asdf list all <name>
11# asdf list all erlang
12
13# 버전 지정
14asdf global <name> <version> [<version>...]
15asdf shell <name> <version> [<version>...]
16asdf local <name> <version> [<version>...] # 프로젝트별로 관리할 때 사용
17
18# 삭제
19asdf uninstall <name> <version>
20# asdf uninstall erlang 17.3