CentOS、Rocky Linux、RHEL、およびFedoraにJavaをインストールする方法

はじめに

このチュートリアルでは、Red Hat Enterprise Linux、CentOS、Fedora、およびRocky Linuxの現行バージョンにJavaをインストールする方法を紹介します。Javaは人気のあるプログラミング言語であり、サーバーサイドアプリケーションを実行することができるソフトウェアプラットフォームです。

このチュートリアルでは、最新のデフォルトバージョンのJavaをインストールする方法、および必要に応じて複数のバージョン間を切り替えるための古いバージョンを選択的にインストールする方法について説明します。

前提条件

このガイドを開始する前に、サーバーに構成されたsudo特権を持つ通常のユーザーアカウントを用意してください。これは、サーバーにログインする際に使用するユーザーです。通常のユーザーアカウントの設定方法については、Rocky Linux 8の初期サーバーセットアップガイドに従ってください。

ステップ1 – OpenJDKのインストール

Java Platformには、3つの異なるエディションがあります:Standard Edition(SE)、Enterprise Edition(EE)、およびMicro Edition(ME)。このチュートリアルでは、Java SE(Java Platform、Standard Edition)に焦点を当てています。

インストールできるJava SEパッケージには、2つの異なるものがあります:Java Runtime Environment(JRE)とJava Development Kit(JDK)。JREはJava仮想マシン(JVM)の実装であり、コンパイルされたJavaアプリケーションやアプレットを実行できるようにします。JDKには、JREに加えて、Javaアプリケーションやアプレットを記述し、開発し、コンパイルするために必要な他のソフトウェアも含まれています。

Javaには2つの異なる実装もあります:OpenJDKとOracle Java。両方の実装はほとんど同じコードをベースにしていますが、OpenJDKはJavaのリファレンス実装であり、完全にオープンソースですが、Oracle Javaには一部のプロプライエタリなコードが含まれています。ほとんどのJavaアプリケーションは、どちらかでも問題なく動作しますが、ソフトウェアが要求する実装を使用する必要があります。

1つのシステムにさまざまなバージョンやリリースのJavaをインストールすることができますが、ほとんどの人は1つのインストールしか必要ありません。その点を考慮して、必要なJavaのバージョンのみをインストールするようにしてください。

このセクションでは、yumパッケージマネージャーを使用して事前にビルドされたOpenJDK JREおよびJDKパッケージをインストールする方法を示します。yumは、RPMパッケージを使用するディストリビューションのデフォルトのパッケージマネージャーです。

OpenJDKをyumを使用してインストールするには、sudo yum install javaを実行します。

  1. sudo yum install java

デフォルトでは、バージョンを指定せずにjavaをインストールしようとすると、最も一般的な安定版のOpenJDK JREが解決されます。この出力からもわかるように、現時点ではjava-1.8.0-openjdkです:

Output
Last 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キーを押してインストールを続行します。また、インストール元のリポジトリの署名キーを受け入れるように求められることもあります:

Output
Importing 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 -versionを実行して、環境で利用可能なJavaのバージョンを確認できます:

  1. java -version

注意:ほとんどの場合、コマンドライン引数は、一文字の引数には1つのダッシュ、またはフルワードの引数には2つのダッシュが先行します。しかし、Javaはすべての引数に1つのダッシュを使用する異なる規則に従います。この場合、-versionです。

Output
openjdk 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を指定します。

  1. sudo yum install java-devel
Output
DigitalOcean 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と入力します:

  1. sudo yum install java-17-openjdk
Output
Last 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を再度実行して確認できます:

  1. java -version
Output
openjdk 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バージョンを選択できます。使用可能なJavaバージョンの一覧を表示するには、alternatives --config javaを使用します:

  1. sudo alternatives --config java

出力には、インストールしたJavaの両方のバージョンがリストされているはずです。

output
There 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 の出力がそれに応じて変更されるはずです:

  1. java -version
Output
openjdk 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_HOMEJRE_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 環境変数を設定できます。次のように:

  1. export JAVA_HOME=(/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre

注意: JAVA_HOME 環境変数では、Java インストールのパスを /jre ディレクトリで終わるように設定することが好まれます。この規則は変数ごとに変わることがありますので、変更を加える際には例を注意深く確認することが最善です。

システム上のすべてのユーザーにデフォルトで JAVA_HOME を設定したい場合は、前述の行を /etc/environment ファイルに追加します。次のコマンドを実行して、ファイルに追記します。直接 /etc/environment ファイルを編集する必要がないように、echo>> シェルリダイレクションを使用してファイルに追記します:

  1. sudo sh -c "echo export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre >> /etc/environment"

次のステップでは、OpenJDK バージョンと並行して Oracle のプロプライエタリな Java をインストールします。

ステップ4 – Oracle Javaのインストール

このガイドのこのセクションでは、Oracle Java JREおよびJDK(64ビット)の最新リリースをインストールする方法を示します。

注意:このページの対話型ターミナルを使用している場合、Oracle Javaを環境にダウンロードしてインストールすることはできません。

このセクションでは、Oracle Javaソフトウェアパッケージをダウンロードするためにwgetコマンドを使用します。お使いのLinuxディストリビューションにwgetがデフォルトで含まれていない場合は、以下のコマンドを実行してインストールする必要があります:

  1. sudo yum install wget

Oracle Javaをインストールする前に、Java SEのOracleバイナリコードライセンス契約に同意する必要があります。

注意:Oracle Javaをインストールするには、Oracle Javaダウンロードページに移動し、ライセンス契約に同意し、適切なLinux x86 .rpmパッケージのダウンロードリンクをコピーする必要があります。コピーしたダウンロードリンクをwgetコマンドのハイライトされた部分の代わりに入れてください。

ホームディレクトリに移動して、次のコマンドでOracle Java RPMをダウンロードします:

  1. cd ~
  2. wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm"

その後、RPMをyum localinstallでインストールします(別のリリースをダウンロードした場合は、ここでファイル名を変更してください):

  1. sudo yum localinstall jdk-17_linux-x64_bin.rpm

確認プロンプトで、yを入力してEnterキーを押して、インストールを続行します。

以前にダウンロードしたアーカイブファイルを削除できます:

  1. rm ~/jdk-17_linux-x64_bin.rpm

今、alternativesコマンドを再実行すると、Oracle Javaを使用する第三のオプションが表示されるはずです:

  1. sudo alternatives --config java
output
There 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バージョンをインストールおよび管理しました。これらはすべてLinux環境管理の基本的な側面であり、Javaはそのさまざまなバージョンのためにそれらと連携する良い例です。

次に、他のコンテキストでJavaを使用する方法を学ぶことができます。

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-java-on-centos-and-fedora