주희아빠의 헝그리 라이딩

안전한(?) open jdk 고르기 & ubuntu 에 aws openjdk 설치하기 본문

나름 IT 이야기

안전한(?) open jdk 고르기 & ubuntu 에 aws openjdk 설치하기

도림천 버섯돌이 2019. 1. 8. 22:02

2019.1.8.

본인이 아쉬워서 정리한 것이라서 잘못되거나 오류가 있을 수 있습니다. 말씀해 주시면 수정하도록 하겠습니다.

 

** Open JDK 고르기..

작년말부터 오라클 jdk 를 유료화로 말이 많습니다.

뭐 원래부터 유료였는데 이제것 돈 안 받고 쓰게 해준게 어디냐는 말은 별로 위로가 되지 않습니다. 깔끔하게 돈내고 구입하시는 분들은 패스~

 

그럼 oracle jdk 대신 무엇을 써야 하느냐?

다들 쉽게 open jdk 를 쓰라고 말합니다. 그러면 아무 open jdk 나 가져다 쓰면 되는 것일까요?

 

1. Oracle JDK

이 페이지는 다들 알고 계시는 oracle jdk 페이지죠. 이제 사요나라~

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

2. Open JDK by oracle


open jdk 로 검색하면 가장 먼저 나오는 녀석입니다.

https://openjdk.java.net/

그런데 스크롤을 쭈욱 내리다 보면 나오는 익숙한 그림. 오라클입니다.

Oracle logo

네, 그렇습니다. 이녀석은 오라클에서 지원하고 있는 open jdk 입니다. 이것도 open 이기 때문에 다운 받아서 사용하는 것은 별 문제가 없습니다.

그런데 치명적인 것이 특정 기간이 지나면 보안 패치 등을 제공하지 않습니다. 6개월 마다 새버전으로 설치해야 하니다ㅏ.

 

3. Azul Open JDK

두번째로 많이 거론되는게 Azul jdk 입니다. 그런데 이것 역시 LTS(Long Term Support) 를 받으려면 Enterprise Subscription 을 구입해야 합니다.

https://www.azul.com/products/zulu-and-zulu-enterprise/zulu-enterprise-java-support-options/

 

4. Adopt Open JDK

https://adoptopenjdk.net/support.html

In addition, every three years one feature release will be designated as the Long Term Supported (LTS) release. We will produce LTS releases for at least four years.

이것 역시 무료이고 LTS 도 지원한다고 합니다. 오호..

사실 이것도 Azul 등의 메이저사들이 지원해 주고 있는 그룹이라서 jdk 품질은 동일할 것으로 기대합니다.

 

5. AWS Open JDK

https://aws.amazon.com/ko/corretto/

오호. 혼란한 틈에 amazon 에서 또 한건 해냅니다. 본인들이 사용할 jdk 를 만들어서 공개했나 봅니다.

https://aws.amazon.com/ko/corretto/faqs/

Q: What is included in Corretto's long-term support?

A: Amazon will provide security updates for Corretto 8 until at least June 2023. Updates are planned to be released quarterly.  

 

6. 결론.

그냥 요즘 대세이고 대인배인 aws jdk 를 사용하기로 합니다. 선택은 당신의 몫!!

 

 

 

** 설치하기..

0. aws open jdk 소개 및 다운로드 안내

https://aws.amazon.com/ko/corretto/

https://docs.aws.amazon.com/ko_kr/corretto/latest/corretto-8-ug/downloads-list.html

 

1. AWS LINUX

aws linux 를 사용하는 경우라면 별 절차 없이 그냥 시키는대로 인스톨 하면 됩니다.

$ sudo amazon-linux-extras enable corretto8
$ sudo yum install java-1.8.0-amazon-corretto
$ sudo yum install java-1.8.0-amazon-corretto-devel

 

2. RHEL/ CentOS

다행히 RPM 패키지를 제공하기 때문에 다운 받아서 설치하면 됩니다.

$ wget https://d3pxv6yz143wms.cloudfront.net/java-1.8.0-amazon-corretto-devel-1.8.0_192.b12-1.amzn2.x86_64.rpm
$wget https://d3pxv6yz143wms.cloudfront.net/java-1.8.0-amazon-corretto-1.8.0_192.b12-1.amzn2.x86_64.rpm

$ sudo yum localinstall -y \
  java-1.8.0-amazon-corretto-1.8.0_192.b12-1.amzn2.x86_64.rpm \
  java-1.8.0-amazon-corretto-devel-1.8.0_192.b12-1.amzn2.x86_64.rpm

 

3. Ubuntu/ Debian

아직 debian 패키지로는 제공하지 않습니다. 위에 있는 RPM 을 받아서 살짝 변형해서 설치하면 됩니다.

$ wget https://d3pxv6yz143wms.cloudfront.net/java-1.8.0-amazon-corretto-1.8.0_192.b12-1.amzn2.x86_64.rpm
$
wget https://d3pxv6yz143wms.cloudfront.net/java-1.8.0-amazon-corretto-devel-1.8.0_192.b12-1.amzn2.x86_64.rpm


$ sudo apt-get install -y alien
$ alien -c ava-1.8.0-amazon-corretto-1.8.0_192.b12-1.amzn2.x86_64.rpm
$ alien -c java-1.8.0-amazon-corretto-devel-1.8.0_192.b12-1.amzn2.x86_64.rpm

$ sudo dpkg -i java-1.8.0-amazon-corretto-1.8.0_192.b12-1.amzn2.x86_64.rpm
$ sudo dpkg -i java-1.8.0-amazon-corretto-devel-1.8.0_192.b12-1.amzn2.x86_64.rpm

$ sudo update-alternatives --install /usr/bin/java  java  /usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/bin/java 10000

$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/bin/javac 10000


설치후 잘 되었는지 확인해 봅니다.

multitab@THINK-ROOM:/etc/alternatives$ java -version
openjdk version "1.8.0_192"
OpenJDK Runtime Environment (build 1.8.0_192-amazon-corretto-preview-b12)
OpenJDK 64-Bit Server VM (build 25.192-b12, mixed mode)

multitab@THINK-ROOM:/etc/alternatives$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22  8월  9  2017 /usr/bin/java -> /etc/alternatives/java*

multitab@THINK-ROOM:/etc/alternatives$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 55  1월  8 17:28 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/bin/java*

 

그런데 아직 새 jdk 로 바뀌어 있지 않다면 다음 처럼 수정해 주면 됩니다.

multitab@THINK-ROOM:/etc/alternatives$ sudo update-alternatives --config java
There are 4 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                                     Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/bin/java   10000     auto mode
* 1            /usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/bin/java   10000     manual mode
  2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java            1071      manual mode
  3            /usr/lib/jvm/java-8-openjdk-amd64/bin/java                20020     manual mode
  4            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java            1081      manual mode

Press <enter> to keep the current choice[*], or type selection number:

multitab@THINK-ROOM:/etc/alternatives$ sudo update-alternatives --config javac
There are 3 choices for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                                      Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/bin/javac   10000     auto mode
* 1            /usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/bin/javac   10000     manual mode
  2            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac                1071      manual mode
  3            /usr/lib/jvm/java-8-openjdk-amd64/bin/javac                20020     manual mode

Press <enter> to keep the current choice[*], or type selection number:

 

multitab@THINK-ROOM:/etc/alternatives$

 

 

 

반응형