alternatives 를 사용한 jdk 버전관리

3rd-big·2021년 3월 5일
0

Linux

목록 보기
1/1

alternatives?

리눅스 시스템에서 여러 가지 버전의 패키지를 설치하여 사용 할 경우가 많음. 이럴 때 alternatives 커맨드라인 툴을 이용하여 여러 버전의 패키지를 관리하여 필요에 따라 유동적으로 원하는 버전 선택 가능
alternatives는 심볼릭 링크를 생성, 제거, 관리, 조회 할 수 있는 기능을 제공하는 GNU 라이센스의 커맨드라인 툴

사용법

현재 alternatives 설정에는 jdk7, jdk8 가 설치되어 있음

[root@localhost java]# alternatives --config java

심볼릭 링크 생성하기 ( jdk 11 설치과정 생략 )

[root@localhost java]# alternatives --install /usr/bin/java java /usr/local/java/jdk-11.0.9/bin/java 1

Redhat 기준 alternatives 는 기본적으로 /etc/alternatives<name> 의 경로에 링크가 생성되고 priority, link, path 등 관련정보를 /var/lib/alternatives/<name>의 경로에 저장

-> <link> : 심볼릭 링크의 경로
-> _
<name>
_ : alternatives 에서 관리 할 심볼릭 링크 그룹명
-> <path> : 패키지의 절대 경로
-> <priority> : 링크 그룹 내에서 우선순위 지정. 정수로 입력하며 클 수록 우선순위

설정 값을 확인하면 이전에는 등록되지 않았던 java 그룹 내 jdk11 버전 확인 가능하며 목록 내 자바 버전으로 수정 가능

JAVA_HOME 환경변수 설정을 위해 /etc/profile 파일을 열어 하단에 명령어 추가 후 변경사항 반영

[root@localhost java]# vi /etc/profile
# add line
export JAVA_HOME=$(readlink -f /usr/bin/java) | sed "s:bin/java::")
[root@localhost java]# . /etc/profile

readlink -f 의 의미는 심볼릭 링크에서 원본파일을 추출하는 명령어
포스트 내용대로 진행했다면 readlink -f /usr/bin/java 명령어의 결과는 /usr/local/java/jdk-11.0.9/bin/java

sed 는 유닉스에서 텍스트를 변환하기 위한 프로그램
s : 행마다 처음 검색된 텍스트를 원하는 텍스트로 바꿈
: : 토큰을 기준으로 bin/java 텍스트를 공백으로 치환
포스트 내용대로 진행했다면 JAVA_HOME 환경변수에 /usr/local/java/jdk-11.0.9/ 텍스트 대입

profile
Don't Forget

0개의 댓글