Skip to content
Gyunseo's Blog
Go back

Ubuntu Linux에 asdf를 설치하고, ohmyzsh에 asdf plugin을 추가하자.

Suggest Changes

Table of contents

Open Table of contents

들어가며

node.js, python, jdk 버전을 편하게 통합으로 관리할 수 있는 asdf를 Ubuntu Linux에 설치하려고 한다.
zsh에 ohmyzsh을 설치하자.에서 ohmyzsh framework에 Theme와 Plugin을 추가했다.
asdfohmyzsh에 통합을 할 수 있다고 한다.
그래서 그 방법을 소개하려고 한다.

asdf를 git clone으로 download하기

git clone https://github.com/asdf-vm/asdf.git ~/.asdf

asdf 활성화하기

~/.zshrcplugins 정의에 asdf를 추가해, asdf를 활성화한다.

nvim ~/.zshrc

상기 이미지처럼 plugins=(asdf)를 추가한다. 그러면 asdfohmyzsh framework에 통합이 되어, asdf를 사용할 수 있게 된다.

asdf --version

Plugin Dependencies 설치

sudo apt-get install -y dirmngr gpg curl gawk

본격적으로 asdf plugin을 설치하기 전에, plugin 의존성 패키지들을 설치한다.

Nodejs Plugin 설치

하기 명령어로 nodejs plugin을 설치한다.

asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git

Nodejs Version 설치

하기 명령어로 모든 node.js runtime version을 볼 수 있다.

asdf list all nodejs

원하는 경우 하기 명령어로 특정 version의 subset을 볼 수도 있다.

asdf list all nodejs 18

필자는 node.js lts 버전을 설치할 것이다. 그전에 하기 명령어를 통해, 현재 시점에서 nodejs lts version을 확인하자.

# Before checking for aliases, update nodebuild to check for newly releasead versions
asdf nodejs update-nodebuild

asdf nodejs resolve lts
# outputs: 18

# Outputs the latest version available for download which is a LTS
asdf nodejs resolve lts --latest-available
# outputs: 18.18.0

하기 명령어로 현재 시점에서의 lts version인 18.18.0 version을 설치한다.

asdf install nodejs 18.18.0

설치가 완료되면 하기 명령어로 nodejs runtime version의 list를 확인할 수 있다.

asdf list nodejs

nodejs Version 설정하기

asdf는 현재 작업 디렉터리부터 $HOME 디렉터리까지 모든 .tool-versions 파일에서 tool의 버전 조회를 수행합니다.
asdf가 관리하는 tool을 실행할 때, version lookup이 발생합니다.

nodejs Global Version 설정하기

asdf global nodejs 18.18.0

상기 명령어로 global version을 설정한다. global defaults는 $HOME/.tool-versions에서 관리된다. 그러면 하기 명령어로 global version이 제대로 설정됐는지 확인할 수 있다.

cat $HOME/.tool-versions

nodejs Local version 설정하기

18.17.1 version을 설치하고, gyunseo.github.io 디렉터리에서 local version으로 18.17.1 version을 설정하자.

asdf install nodejs 18.17.1
asdf local nodejs 18.17.1
cat $PWD/.tool-versions

python Plugin 설치

asdf plugin-add python

python Latest Version 확인

asdf latest python
# outputs: 3.12.0

python Version 설치

# Python version build envrionment를 위한, system dependencies 설치
sudo apt update -y; sudo apt install -y build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
# python version 설치
asdf install python 3.12.0

python Global Version 설정

asdf global python 3.12.0
cat $HOME/.tool-versions

하기 명령어를 입력하자.

python3 --version
# outputs: Python 3.10.12

버전이 asdf plugin에서 설치했던 것과 다르게 나온다.
현재 shell session에서 logout했다가, 다시 shell session login하면 된다.

python3 -V
# outputs: Python 3.12.0

python Local Version 설정

하기 명령어를 입력하자.

asdf install python 3.11.6
asdf local python 3.11.6
cat $PWD/.tool-versions
# outputs: python 3.11.6

java Plugin 설치

하기 명령어를 입력하여 java plugin을 설치하자.

asdf plugin-add java https://github.com/halcyon/asdf-java.git

하기 명령어로 java plugin이 잘 설치됐는지 확인하자.

asdf plugin list
# outputs:
# java
# nodejs

OpenJDK Vendor 및 Version 확인

필자는 jdk로 ADOPTIUM의 temurin-17 version을 이용할 것이므로 하기와 같이 명령어를 입력하여 확인한다.

asdf list-all java | grep temurin-17

그러면 하기와 같은 output이 나온다.

temurin-17.0.0+35
temurin-17.0.1+12
temurin-17.0.2+8
temurin-17.0.3+7
temurin-17.0.4+8
temurin-17.0.4+101
temurin-17.0.5+8
temurin-17.0.6+10
temurin-17.0.7+7
temurin-17.0.8+7
temurin-17.0.8+101
temurin-17.0.9+9

필자는 여기서 Linux에서 17 - LTS Version에 해당하는 17.09+9을 설치할 것이다. (하기 링크 참조)
https://adoptium.net/temurin/releases/?os=linux&arch=x64&package=jdk&version=17

temurin-17.0.9+9 JDK 설치하기

하기 명령어로 temurin-17.0.9+9 JDK를 설치하자.

asdf install java temurin-17.0.9+9

하기 명령어로 제대로 설치가 됐는지 확인하자.

asdf list java
# outputs: temurin-17.0.9+9

JDK Global Version 설정하기

일단은 설치한 temurin-17.0.9+9을 메인 JDK로 사용할 것이다.
그래서 temurin-17.0.9+9 version의 JDK를 global로 설정하자.
하기 명령어를 통해 해당 버전의 JDK global JDK로 설정하자.

asdf global java temurin-17.0.9+9

하기 명령어로 해당 버전의 JDK가 global로 설정됐는지 확인할 수 있다.

cat $HOME/.tool-versions
# outputs:
# nodejs 18.18.2
# java temurin-17.0.9+9

JDK Local Version 설정하기

하기 명령어로 temurin-11의 latest version을 설치하자.

asdf install java latest:temurin-11

하기 명령어로 잘 설치가 됐는지 확인하자.

asdf list java

하기와 같이 output이 나오면 잘 된 것이다.

  temurin-11.0.21+9
 *temurin-17.0.9+9

하기 명령어로 원하는 directory에서 local JDKtemurin-11.0.21+9으로 설정하자.

mkdir asdf-java-local-test
cd asdf-java-local-test
asdf local java temurin-11.0.21+9

하기 명령어로 제대로 설정이 됐는지 확인하자.

cat .tool-versions
# outputs: java temurin-11.0.21+9
java --version
# outputs:
# openjdk 11.0.21 2023-10-17
# OpenJDK Runtime Environment Temurin-11.0.21+9 (build 11.0.21+9)
# OpenJDK 64-Bit Server VM Temurin-11.0.21+9 (build 11.0.21+9, mixed mode)

JAVA_HOME 설정

JAVA_HOMEzsh initialization에서 설정하려면, 하기 명령어를 ~/.zshrc에 추가하자.

nvim ~/.zshrc

하기 명령어를 ~/.zshrc에 추가하자.

. ~/.asdf/plugins/java/set-java-home.zsh

~/.zshrc 변경 사항을 하기 명령어를 통해 현재 shell session에서 바로 반영하자.

source ~/.zshrc

하기 명령어로 JAVA_HOME이 제대로 설정됐는지 확인하자. (global JDK가 제대로 설정된 것을 확인할 수 있다.)

echo $JAVA_HOME
# outputs: /home/gyunseo/.asdf/installs/java/temurin-17.0.9+9

그렇다면, 앞에서 만들었던 asdf-java-local-test에서 JAVA_HOME을 확인해 보자.

cd asdf-java-local-test
echo $JAVA_HOME
# outputs: /home/gyunseo/.asdf/installs/java/temurin-11.0.21+9

local JDKtemurin-11.0.21+9로 잘 설정되었음을 확인할 수 있다.

macOS JAVA_HOME Integration

macOS의 일부 응용 프로그램은 /usr/libexec/java_home을 java home 설정에 사용한다.
.asdfrc에서 java_macos_integration_enable을 yes로 설정하면 이 통합이 가능해진다.
$HOME/.asdfrc:

java_macos_integration_enable=yes

reshim

이거는 좀 더 공부해서 적을 예정

참고 문서


Suggest Changes
Share this post on:

Previous Post
git config 최초 설정
Next Post
zsh에 ohmyzsh을 설치하자.