Programming/Linux

ubuntu jdk tar.gz 설치 방법 (+ update-alternatives란)

Jan92 2024. 7. 24. 23:48
반응형

Ubuntu JDK tar.gz 설치 방법 (+ update-alternatives란)

ubuntu에 jdk tar.gz 설치 방법을 찾아보던 중 'update-alternatives'를 활용하는 간단한 방법을 찾아 공유하면서 update-alternatives 커맨드 툴에 대해서도 함께 정리한 내용입니다.

 


jdk tar.gz 설치 방법

#Login as root
sudo su

#create jdk directory
mkdir /opt/jdk

#uncompress, change to your file name
tar -zxf jdk-8u202-linux-x64.tar.gz -C /opt/jdk

#check if files are there
ls /opt/jdk

#update alternatives so the command java point to the new jdk 
update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_202/bin/java 100

#update alternatives so the command javac point to the new jdk 
update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.8.0_202/bin/javac 100

#check if java command is pointing to " link currently points to /opt/jdk/jdk1.8.0_202/bin/java"
update-alternatives --display java

#check if java command is pointing to " link currently points to /opt/jdk/jdk1.8.0_202/bin/javac"
update-alternatives --display javac

#check if java is running
java -version

 

패키지 관리자를 통해 JDK를 설치하는 경우 '/usr/lib/jvm' 또는 '/usr/lib/java'에 설치되며, 해당 경우와 같이 JDK를 직접 다운로드하여 설치하는 경우 관례적으로 '/usr/local/' 또는 '/opt/' 디렉터리에 설치하게 됩니다.

 

 

 

Linux x86, Linux x64

만약 설치 후 'java: No such file or directory' 오류가 발생하는 경우에는 x64 환경에서 x86 소프트웨어를 실행하는 등, 잘못된 JDK 버전을 설치했을 수 있습니다.

(x64 환경에서 x86 소프트웨어를 실행하려는 경우 x86 라이브러리 추가가 필요할 수 있습니다.)

 

 


update-alternatives 란

'update-alternatives'는 Debian 계열의 Linux 시스템에서 심볼릭 링크를 생성, 제거, 조회, 관리할 수 있는 기능을 제공하는 커맨드 라인 툴(Command Line Tools)로, 생성된 심볼릭 링크를 통해 여러 대체 프로그램들 사이에서 기본 프로그램을 선택하고 전환할 수 있게 해 줍니다.

(이러한 기능을 통해 시스템에서 여러 버전의 프로그램이나 명령어를 관리할 수 있습니다.)

 

 

 

심볼릭 링크 생성하기 (--install)

update-alternatives --install <link> <name> <path> <priority>

<link> : 심볼릭 링크의 경로

<name> : '/etc/alternatives' 경로에 위치한 심볼릭 링크 그룹명

<path> : 대상 패키지의 절대 경로

<priority> : 자동모드(auto)로 동작할 때 동작할 우선순위(숫자가 클수록 우선순위가 높습니다.)

 

java 심볼릭 그룹명에 jdk8, jdk11을 install 하는 예시

 

 

 

심볼릭 링크 제거하기 (--remove)

update-alternatives --remove <name> <path>

<name> : 삭제할 대상 심볼릭 링크 그룹명 ('/etc/alternatives' 경로에 위치)

<path> : 삭제할 대상 패키지의 절대 경로

 

 

 

자동 모드 설정하기 (--auto)

update-alternatives --auto <name>

<name> : 자동 모드로 설정할 대상 심볼릭 링크 그룹명

 

 

 

수동 모드 설정하기 (--config)

update-alternatives --config <name>

<name> : 수동 모드로 설정할 대상 심볼릭 링크 그룹명

 

update-alternatives --config <name>

config 기능의 경우 다음과 같이 현재 적용 중인 프로그램(jdk1.8.0_202/bin/java)에 대해 '*' 표시가 되어있고, 만약 변경하려는 경우 해당되는 프로그램의 Selection 숫자를 입력하여 심볼릭 링크 그룹명에 대해 연동되는 프로그램을 지정할 수 있습니다.

 

 

 

심볼릭 링크 그룹 확인하기 (--display)

update-alternatives --display <name>

<name> : 확인하려는 심볼릭 링크 그룹명

 

update-alternatives --display <name>

display 기능의 경우 현재 해당 심볼릭 링크 그룹이 어떤 모드인지(수동 또는 자동), 현재 적용되어 있는 프로그램과 절대 경로, 그리고 해당 그룹에 등록된 다른 대체 프로그램들을 확인할 수 있습니다.

 

 

 

전체 심볼릭 링크 그룹 확인하기 (--list)

update-alternatives --list <name>

<name> : 확인하려는 심볼릭 링크 그룹명

 

 

 

 

< 참고 자료 >

https://gist.github.com/filipelenfers/ef3f593deb0751944bb54b744bcac074
https://skyoo2003.github.io/post/2017/03/17/what-is-alternatives-command/

반응형