はじめに
このチュートリアルでは、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
を実行します。
デフォルトでは、バージョンを指定せずに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 -version
を実行して、環境で利用可能なJavaのバージョンを確認できます:
注意:ほとんどの場合、コマンドライン引数は、一文字の引数には1つのダッシュ、またはフルワードの引数には2つのダッシュが先行します。しかし、Javaはすべての引数に1つのダッシュを使用する異なる規則に従います。この場合、-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バージョンを選択できます。使用可能な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
ファイルに追加します。次のコマンドを実行して、ファイルに追記します。直接 /etc/environment
ファイルを編集する必要がないように、echo
と >>
シェルリダイレクションを使用してファイルに追記します:
次のステップでは、OpenJDK バージョンと並行して Oracle のプロプライエタリな Java をインストールします。
ステップ4 – Oracle Javaのインストール
このガイドのこのセクションでは、Oracle Java JREおよびJDK(64ビット)の最新リリースをインストールする方法を示します。
注意:このページの対話型ターミナルを使用している場合、Oracle Javaを環境にダウンロードしてインストールすることはできません。
このセクションでは、Oracle Javaソフトウェアパッケージをダウンロードするためにwget
コマンドを使用します。お使いのLinuxディストリビューションにwget
がデフォルトで含まれていない場合は、以下のコマンドを実行してインストールする必要があります:
Oracle Javaをインストールする前に、Java SEのOracleバイナリコードライセンス契約に同意する必要があります。
注意:Oracle Javaをインストールするには、Oracle Javaダウンロードページに移動し、ライセンス契約に同意し、適切なLinux x86 .rpm
パッケージのダウンロードリンクをコピーする必要があります。コピーしたダウンロードリンクをwget
コマンドのハイライトされた部分の代わりに入れてください。
ホームディレクトリに移動して、次のコマンドでOracle Java RPMをダウンロードします:
その後、RPMをyum localinstall
でインストールします(別のリリースをダウンロードした場合は、ここでファイル名を変更してください):
確認プロンプトで、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バージョンをインストールおよび管理しました。これらはすべてLinux環境管理の基本的な側面であり、Javaはそのさまざまなバージョンのためにそれらと連携する良い例です。
次に、他のコンテキストでJavaを使用する方法を学ぶことができます。
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-java-on-centos-and-fedora