OCI에 Oracle Java & GraalVM EE 설치
Oracle Cloud Infrastructure(이하 OCI)에서 Oracle Java와 GraalVM Entrprise Edition을 모두 무상으로 사용할 수 있습니다. Oracle Java는 대표적인 표준 자바 구현체이고 오라클이 프리미엄 서포트를 제공하는 기업용 자바입니다. GraalVM은 Oracle Java를 확장한 차세대 자바입니다. OCI에서 제공하는 Oracle Linux 이미지에는 Oracle Java와 GraalVM 설치를 지원하는 yum 레파지토리가 구성돼 있습니다. 이번 문서에서는 OCI Oracle Linux에서 Oracle Java와 GraalVM을 설치하는 방법을 정리합니다.
Oracle Java & GraalVM is Free
OCI에서 Oracle Java와 GraalVM Enterprise Edition을 무상으로 사용할 수 있다는 근거는 다음 링크에서 확인할 수 있습니다.
Oracle Java on OCI
위 이미지와 같이 Oracle Java는 OCI에서 무료 사용을 허용하는 라이센스를 부여합니다.
GraalVM EE on OCI
위 이미지와 같이 GraalVM Enterprise Edition은 OCI 사용자에게 GraalVM 사용권과 기술 서포트를 제공합니다.
OCI Oracle Linux에 Oracle Java 설치
OCI Oracle Linux에는 Orace Java용 yum 레파티토리가 기본 등록되어 있습니다. 설치 가능한 Oracle Java 버전을 다음 명령으로 확인할 수 있습니다.
yum list jdk*
다음은 실행 결과입니다. Oracle Linux 7에서는 다음과 같은 결과가 출력됩니다.
2020년 11월 18일을 기준으로 Oracle Linux 7에는 Oracle Java 8, 11, 12, 13, 14, 15 버전이 등록되어 있습니다.
다음 명령으로 지정한 Oracle Java를 설치할 수 있습니다.
sudo yum install -y [Package Name]
OCI Oracle Linux에 GraalVM EE 설치
OCI Oracle Linux에는 GraalVM 용 yum 레파티토리가 기본 등록되어 있습니다. 설치 가능한 GraalVM 버전을 다음 명령으로 확인할 수 있습니다.
sudo yum list graalvm*
다음은 위 명령을 수행한 결과입니다.
[opc@demo ~]$ sudo yum list graalvm*
Loaded plugins: langpacks, ulninfo
Available Packages
graalvm19-ee-11.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-devel.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-javascript.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-jdk.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-libpolyglot.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-llvm.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-llvm-toolchain.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-native-image.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-nodejs.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-nodejs-devel.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-polyglot.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-python.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-python-devel.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-ruby.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-11-tools.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-devel.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-javascript.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-jdk.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-jre.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-jre-headless.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-libpolyglot.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-llvm.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-llvm-toolchain.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-native-image.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-nodejs.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-nodejs-devel.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-polyglot.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-python.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-python-devel.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-ruby.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm19-ee-8-tools.x86_64 19.3.4-2.el7 ol7_oci_included
graalvm20-ee-11.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-devel.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-javascript.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-jdk.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-libpolyglot.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-llvm.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-llvm-toolchain.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-native-image.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-nodejs.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-nodejs-devel.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-polyglot.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-python.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-python-devel.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-ruby.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-ruby-devel.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-tools.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-11-wasm.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-devel.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-javascript.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-jdk.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-jre.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-jre-headless.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-libpolyglot.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-llvm.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-llvm-toolchain.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-native-image.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-nodejs.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-nodejs-devel.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-polyglot.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-python.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-python-devel.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-ruby.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-ruby-devel.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-tools.x86_64 20.2.1-2.el7 ol7_oci_included
graalvm20-ee-8-wasm.x86_64 20.2.1-2.el7 ol7_oci_included
[opc@demo ~]$
graalvm20-ee-11-jdk.x86_64 패지키를 설치한다고 할 때 다음 명령을 수행한다.
sudo yum install -y graalvm20-ee-11-jdk.x86_64
복수 Java 중에서 기본 Java 설정
Oracle Linux에 여러 자바 버전이 설치되어 있다면 다음 명령을 이용하여 기본 자바를 지정할 수 있습니다.
sudo alternatives --config java
위 명령을 이용하여 Oracle Java 11이 설치된 상황에서 GraalVM 11버전으로 기본 자바를 바꾸는 과정은 다음 이미지와 같습니다.
설치된 자바 패키지 제거
yum으로 설치된 java 패키지는 다음 명령으로 확인할 수 있습니다.
yum list installed | grep jdk
위 명령을 실행한 결과는 다음과 같습니다.
위 결과 패키지 명으로 부터 특정 패키지를 지우는 명령은 다음과 같습니다.
sudo yum remove -y [package_name]
위에서 조회한 패키지 명 중에서 jdk-11.0.3.x86_64를 제거하는 명령은 다음과 같습니다.
요약
OCI Oracle Linux에 설정된 Oracle Java와 GraalVM의 yum 패키지를 조회하고 설치, 제거하는 방법을 살펴 보았습니다. 이 모든 상용 자바는 OCI에서 무상으로 이용 가능합니다.