Mac OS 환경에서 진행한 내용입니다.
"asdf"는 다중 런타임 버전 매니저로 한 가지 툴로 모든 런타임 버전들을 관리할 수 있다.
asdf를 사용하기 전에는 Java, NodeJS, Python을 사용하기 위해서 sdkman, nvm, pyenv를 각각 설치해서 각자 관리를 했었다.
그래서 툴에 대한 명령어가 다르기 때문에 사용하기가 꽤나 불편했었다.
그러다가 한 가지 툴로 관리할 수 있는 "asdf"를 알게 돼서 이 글을 작성한다.
설치하는 방법도 간단하고 사용 방법도 어렵지 않다.
Windows11에서도 설치를 했었는데 wsl를 설치하고 Ubuntu에 asdf를 설치하면 되는데 Intellij에서 Project Structure > Platform Settings > SDKs에서 추가를 해줬는데, Project Structure > Project Settings > Project > SDK 선택하는 부분에서 asdf로 설치한 jdk를 찾지 못해서 선택이 안 됐다. 안 되는 이유를 찾지 못해서 Windows에서는 포기했다.
만약 Windows에서 하는 방법을 아시는 분이 있다면 알려주시면 감사하겠습니다!
asdf 설치는 다음과 같습니다.
- dependencies 설치
- asdf 코어 다운로드
- asdf 설치
- 관리하고 싶은 각각의 툴/런타임 플러그인 설치
- 툴/런타임 버전 설치
- .tool-versions 설정 파일들을 통해 글로벌 혹은 프로젝트 버전들 설정
1. Dependencies 설치
asdf는 git & curl이 필요하다. brew를 통해서 설치해 준다.
brew install coreutils curl git
2. asdf 다운로드
공식다운로드 방법은 git으로 repository를 다운로드하거나 brew로 할 수 있는데 공식 git 방식을 사용할 것을 적극적으로 권장한다고 한다.
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.15.0
3. asdf 설치
설정에 영향을 미치는 다양한 셸, 운영체제들 & 설치방법의 조합들이 있는데 그중에 zsh 터미널을 사용하고 있기에 ZSH & Git 방법으로 설치했다.
아래의 내용을 ~/.zshrc 맨 아래에 추가한다.
. "$HOME/.asdf/asdf.sh"
asdf를 사용할 때 자동완성을 위해서 아래의 내용을 ~/.zshrc 맨 아래에 추가한다.
# append completions to fpath
fpath=(${ASDF_DIR}/completions $fpath)
# initialise completions with ZSH's compinit
autoload -Uz compinit && compinit
설치가 끝났다.
ZSH 설정을 적용시켜 주기 위해 아래의 명령어를 실행하고 asdf가 제대로 설치됐는지 확인해 본다.
source ~/.zshrc
asdf --version
// v0.15.0-31e8c93
4. 플러그인 설치
아래의 명령어를 통해 전체 플러그인을 조회할 수 있다.
asdf plugin list all
Java jdk를 설치하기 위해 플러그인을 추가해 준다.
asdf plugin add java
5. 버전 설치
아래의 명령어를 통해 설치할 수 있는 전체 버전을 확인할 수 있다.
asdf list all java
혹은 특정 내용만 확인할 수도 있다. 다음 명령어를 하면 zulu 벤더사의 17 버전만 모두 확인할 수 있다.
asdf list all java zulu-17
목록 중에 zulu-17.54.21 버전을 설치하였다.
asdf install java zulu-17.54.21
// 최신 버전 설치
// asdf install java latest
6. 버전 설정
asdf는 현재 작업 디렉터리부터 $HOME 디렉터리까지 모든 .tool-versions 파일들에서 버전 검색을 수행한다.
글로벌 기본값들은 $HOME/.tool-versions에서 관리된다. 다음 명령어를 통해 글로벌 버전을 설정할 수 있다.
asdf global java zulu-17.54.21
로컬 버전들은 (현재 작업 디렉터리) $PWD/.tool-versions 파일에 정의되어 있다. 툴 버전을 설정하고 싶은 디렉터리에서 다음을 실행시키면 된다.
asdf local java zulu-17.54.21
잘 적용이 됐는지 아래 명령어를 실행해 본다.
asdf current
// java zulu-17.54.21 /Users/계정/.tool-versions 정상 적용 내용