소개
이 튜토리얼에서는 RPM 기반 리눅스 배포판인 Red Hat Enterprise Linux, CentOS, Fedora 및 Rocky Linux의 최신 버전에 Java를 설치하는 방법을 안내합니다. Java는 많은 서버 측 애플리케이션을 실행할 수 있도록 하는 인기 있는 프로그래밍 언어 및 소프트웨어 플랫폼입니다.
이 튜토리얼에서는 최신의 기본 Java 버전을 설치하는 방법뿐만 아니라 이전 버전을 선택적으로 설치하고 필요에 따라 환경에서 여러 버전을 전환하는 방법도 다룹니다.
필수 구성 요소
이 가이드를 시작하기 전에 서버에 구성된 일반적인 비 루트 사용자 계정이 있어야 합니다. 이 계정으로 서버에 로그인해야 합니다. 일반 사용자 계정을 구성하는 방법은 Rocky Linux 8용 초기 서버 설정 가이드의 단계를 따라 학습할 수 있습니다.
단계 1 – OpenJDK 설치
다음은 Java 플랫폼의 세 가지 다른 버전입니다: 표준 버전(SE), 엔터프라이즈 버전(EE) 및 마이크로 버전(ME). 이 튜토리얼은 Java SE(Java 플랫폼, 표준 버전)에 초점을 맞추고 있습니다. 거의 모든 오픈 소스 Java 소프트웨어는 Java SE와 함께 실행되도록 설계되었습니다.
설치할 수 있는 두 가지 다른 Java SE 패키지가 있습니다: Java 실행 환경(JRE)과 Java 개발 키트(JDK). JRE은 Java 가상 머신(JVM)의 구현으로, 컴파일된 Java 응용 프로그램 및 애플릿을 실행할 수 있도록 합니다. JDK에는 JRE뿐만 아니라 Java 응용 프로그램 및 애플릿을 작성, 개발 및 컴파일하는 데 필요한 다른 소프트웨어도 포함되어 있습니다.
Java의 두 가지 다른 구현도 있습니다: OpenJDK 및 Oracle Java. 두 구현은 대부분 동일한 코드를 기반으로 하지만, Java의 참조 구현인 OpenJDK는 완전히 오픈 소스이며 Oracle Java에는 일부 프로프라이어터리 코드가 포함되어 있습니다. 대부분의 Java 응용 프로그램은 어느 쪽이든 잘 작동하지만, 소프트웨어가 요구하는 구현을 사용해야 합니다.
단일 시스템에 Java의 여러 버전 및 릴리스를 설치할 수 있지만, 대부분의 사람들은 한 번의 설치만 필요합니다. 이를 염두에 두고 애플리케이션을 실행하거나 개발하는 데 필요한 Java 버전만 설치하십시오.
이 섹션에서는 yum
패키지 관리자를 사용하여 사전 빌드된 OpenJDK JRE 및 JDK 패키지를 설치하는 방법을 보여줍니다. yum
은 RPM 패키지를 사용하는 배포판의 기본 패키지 관리자입니다.
yum을 사용하여 OpenJDK를 설치하려면 sudo yum install java
를 실행하십시오:
기본 설정으로는 버전을 지정하지 않고 java
를 설치하려고 하면 OpenJDK JRE의 가장 일반적인 안정 버전으로 해결됩니다. 이 출력에서 볼 수 있듯이, 이 글을 쓰는 시점에서 그것은 java-1.8.0-openjdk
입니다:
OutputLast metadata expiration check: 0:02:38 ago on Tue 22 Feb 2022 04:57:59 PM UTC.
Dependencies resolved.
========================================================================================
Package Arch Version Repo Size
========================================================================================
Installing:
java-1.8.0-openjdk x86_64 1:1.8.0.322.b06-2.el8_5 appstream 341 k
Installing dependencies:
alsa-lib x86_64 1.2.5-4.el8 appstream 488 k
atk x86_64 2.28.1-1.el8 appstream 270 k
avahi-libs x86_64 0.7-20.el8 baseos 61 k
copy-jdk-configs noarch 4.0-2.el8 appstream 29 k
cups-libs x86_64 1:2.2.6-40.el8 baseos 432 k
fribidi x86_64 1.0.4-8.el8 appstream 88 k
…
Java와 함께 여러 종속성도 제공됩니다. 확인 프롬프트에서 y
를 입력한 다음 Enter 키를 눌러 설치를 계속하세요. 또한 설치 중인 리포지토리의 서명 키를 수락하라는 프롬프트가 표시될 수 있습니다:
OutputImporting GPG key 0x6D745A60:
Userid : "Release Engineering <[email protected]>"
Fingerprint: 7051 C470 A929 F454 CEBE 37B7 15AF 5DAC 6D74 5A60
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
Is this ok [y/N]:
y
를 입력한 다음 다시 Enter 키를 눌러야 합니다.
이제 작동하는 Java 설치가 있어야 합니다. 이를 확인하려면 환경에서 이제 사용 가능한 Java 버전을 확인하기 위해 java -version
을 실행할 수 있습니다:
참고: 대부분의 경우, 명령행 인수는 한 개의 대시로 단일 문자 인수 또는 두 개의 대시로 전체 단어 인수가 앞에 옵니다. Java는 모든 인수에 대해 하나의 대시를 사용하는 다른 규칙을 따릅니다. 이 경우 -version
을 사용합니다.
Outputopenjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
Java 네이밍 규칙과 Linux 패키지 네이밍 규칙 사이의 상호 작용은 다소 혼란스러울 수 있습니다. 이 튜토리얼에서는 개발을 위한 완전한 JDK 환경과 Java 애플리케이션을 실행하기 위한 JRE 환경의 차이를 명확히했습니다. OpenJDK는 Java의 오픈 소스 배포판의 이름이지만, 실제로는 OpenJDK JRE만 설치했습니다. OpenJDK의 전체 JDK를 설치하려면 해당 이름에 -devel
이 추가된 패키지를 설치해야 합니다. 이는 Java뿐만 아니라 다른 프로그래밍 환경의 개발 패키지에 대한 일반적인 관습입니다. 단어 선택이 여기서 어색하게 겹치지만요.
이전과 마찬가지로 기본 버전을 얻으려면 java-devel
을 설치하거나 java-1.8.0-openjdk-devel
을 지정할 수 있습니다:
OutputDigitalOcean Droplet Agent 63 kB/s | 3.3 kB 00:00
Dependencies resolved.
========================================================================================
Package Arch Version Repository Size
========================================================================================
Installing:
java-1.8.0-openjdk-devel x86_64 1:1.8.0.322.b06-2.el8_5 appstream 9.8 M
Transaction Summary
========================================================================================
Install 1 Package
Total download size: 9.8 M
Installed size: 41 M
Is this ok [y/N]:
이 패키지를 설치한 후에는 특정 버전 호환성이 없는 Java 소프트웨어를 컴파일하고 실행할 수 있는 완전한 OpenJDK 환경을 갖게 됩니다. 다음 섹션에서는 다른 버전의 Java를 설치하고 관리할 것입니다.
단계 2 – 기타 OpenJDK 릴리스 설치
보다 최근에, OpenJDK는 Oracle Java 릴리스와 더 밀접하게 추적하기 위해 버전 번호 체계를 변경했습니다. 더 최신 버전의 OpenJDK를 설치하려면, 패키지 이름에 버전 번호를 지정할 수 있습니다. 예를 들어, OpenJDK 17을 설치하려면 yum install java-17-openjdk
를 사용할 수 있습니다:
OutputLast metadata expiration check: 0:03:36 ago on Tue 22 Feb 2022 05:42:44 PM UTC.
Dependencies resolved.
========================================================================================
Package Arch Version Repository Size
========================================================================================
Installing:
java-17-openjdk x86_64 1:17.0.2.0.8-4.el8_5 appstream 244 k
Installing dependencies:
adwaita-cursor-theme noarch 3.28.0-2.el8 appstream 646 k
adwaita-icon-theme noarch 3.28.0-2.el8 appstream 11 M
at-spi2-atk x86_64 2.26.2-1.el8 appstream 88 k
at-spi2-core x86_64 2.28.0-1.el8 appstream 168 k
colord-libs x86_64 1.4.2-1.el8 appstream 234 k
java-17-openjdk-headless x86_64 1:17.0.2.0.8-4.el8_5 appstream 41 M
lcms2 x86_64 2.9-2.el8 appstream 163 k
…
이전과 마찬가지로, 패키지 이름에 -devel
을 추가하여 전체 JDK 환경을 설치할 수 있습니다. 그러나 이후에도 java
프로그램을 실행하면 여전히 이전에 기본으로 설치한 OpenJDK 1.8.0 버전이 사용됩니다. 이를 확인하려면 다시 java -version
을 실행하십시오:
Outputopenjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
다음 단계에서는 설치된 Java 버전을 관리하게 됩니다.
단계 3 – 기본 Java 버전 설정
여러 버전의 Java를 설치한 경우, 하나를 기본으로 설정하고자 할 수 있습니다(즉, 사용자가 java
명령을 실행했을 때 실행될 버전). 또한 일부 애플리케이션은 특정 환경 변수가 설정되어 있어야만 Java 설치를 찾을 수 있습니다.
기본 명령을 심볼릭 링크를 통해 관리하는 alternatives 명령을 사용하여 기본 Java 버전을 선택할 수 있습니다. alternatives를 통해 관리할 수 있는 사용 가능한 Java 버전을 나열하려면 alternatives --config java
를 사용하십시오:
출력에는 설치한 Java 버전 두 가지가 모두 나와야 합니다:
outputThere are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
*+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java)
2 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64/bin/java)
Enter to keep the current selection[+], or type selection number:
기본적으로 사용할 java
실행 파일을 선택하는 선택 번호를 입력하십시오. 시스템의 필요한 심볼릭 링크를 재배치하여 java
명령이 올바른 라이브러리 집합을 가리키도록 합니다. 필요할 때마다이 명령을 다시 실행할 수 있으며 java -version
의 출력이 그에 따라 변경되어야 합니다.
Outputopenjdk version "17.0.2" 2022-01-18 LTS
OpenJDK Runtime Environment 21.9 (build 17.0.2+8-LTS)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.2+8-LTS, mixed mode, sharing)
많은 Java 애플리케이션도 JAVA_HOME
또는 JRE_HOME
환경 변수를 사용하여 사용할 java
실행 파일을 결정합니다.
예를 들어, Java를 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin
에 설치한 경우 (즉, java
실행 파일이 <^>(/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java
위치에 있음), 다음과 같이 bash 셸이나 스크립트에서 JAVA_HOME
환경 변수를 설정할 수 있습니다:
참고: JAVA_HOME
환경 변수는 Java 설치 경로를 /jre
디렉터리로 끝나는 것으로 선호합니다. 이 관례는 변수마다 변경될 수 있으므로 변경 사항을 수행할 때 예제를 주의 깊게 확인하는 것이 좋습니다.
시스템의 모든 사용자에게 기본적으로 JAVA_HOME
이 설정되도록 원하는 경우 이전 줄을 /etc/environment
파일에 추가하십시오. 이 명령을 실행하여 파일을 직접 편집하지 않고도 echo
및 >>
셸 리다이렉션을 사용하여 파일에 추가할 수 있습니다:
다음 단계에서는 OpenJDK 버전과 함께 Oracle의 프로프리어터리 Java를 설치합니다.
단계 4 – Oracle Java 설치
이 가이드의 이 부분에서는 최신 릴리스인 Oracle Java JRE 및 JDK (64비트)를 설치하는 방법을 안내합니다.
참고:이 페이지의 대화형 터미널을 사용 중이라면 Oracle Java를 환경에 다운로드하고 설치할 수 없습니다.
이 섹션 전반에 걸쳐 Oracle Java 소프트웨어 패키지를 다운로드하기 위해 wget
명령을 사용할 것입니다. wget
은 기본적으로 Linux 배포판에 포함되지 않을 수 있으므로 따라가려면 다음 명령을 실행하여 설치해야 합니다:
Oracle Java를 설치하기 전에 Java SE의 Oracle 바이너리 코드 라이선스 동의해야 합니다. 이것은 포함된 단계 중 하나입니다.
참고:Oracle Java를 설치하려면 Oracle Java 다운로드 페이지로 이동하여 라이선스 동의를 받은 다음 적절한 Linux x86 .rpm
패키지의 다운로드 링크를 복사해야 합니다. wget
명령의 강조된 부분에 복사한 다운로드 링크를 대체하세요.
홈 디렉토리로 이동하고 다음 명령을 사용하여 Oracle Java RPM을 다운로드합니다:
그런 다음 RPM을 설치합니다. (다른 릴리스를 다운로드했다면 여기에서 파일 이름을 대체하세요):
확인 프롬프트에서 y
를 입력한 다음 Enter를 눌러 설치를 계속하세요.
이전에 다운로드한 아카이브 파일을 삭제할 수 있습니다:
alternatives
명령을 다시 실행하면 Oracle Java를 사용할 수 있는 세 번째 옵션이 표시됩니다:
outputThere are 3 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java)
+ 2 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64/bin/java)
* 3 /usr/java/jdk-17.0.2/bin/java
Enter to keep the current selection[+], or type selection number:
이 튜토리얼의 단계는 사용 사례에 따라 사용 가능한 Java의 버전을 설치하고 실행하는 데 충분합니다.
결론
이 튜토리얼에서는 yum
패키지 관리자, alternatives
명령 및 환경 변수를 사용하여 여러 버전의 Java를 설치하고 관리했습니다. 이것들은 모두 리눅스 환경 관리의 기본적인 측면이며, Java는 그 다양한 버전 때문에 이러한 측면을 사용하는 좋은 예입니다.
다음으로, 다른 맥락에서 Java를 사용하는 방법을 배우고 싶을 수 있습니다.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-java-on-centos-and-fedora