読者です 読者をやめる 読者になる 読者になる

Amazon EC2でJava8を設定する

ふと思い立ってAWSに触ってみようと思った。 アカウントを作ろうと思ったら5年前(2011年)にアカウントは作っていたみたいだ。 作っただけで使ってなかったので今やってる1年無料体験の対象だった。

以下のAWSのチュートリアルに従って、Linux仮装マシンを作成する。 aws.amazon.com

早速、SSHで繋げて、とりあえず、yum updateしておく。

$ sudo yum update
読み込んだプラグイン:priorities, update-motd, upgrade-helper
amzn-main/latest                                         | 2.1 kB     00:00     
amzn-updates/latest                                      | 2.3 kB     00:00     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ aws-cli.noarch 0:1.10.33-1.38.amzn1 を 更新
---> パッケージ aws-cli.noarch 0:1.10.56-1.41.amzn1 を アップデート
--> 依存性の処理をしています: python27-futures >= 2.2.0 のパッケージ: aws-cli-1.10.56-1.41.amzn1.noarch
---> パッケージ curl.x86_64 0:7.40.0-8.58.amzn1 を 更新
---> パッケージ curl.x86_64 0:7.40.0-8.59.amzn1 を アップデート
---> パッケージ dracut.noarch 0:004-336.28.amzn1 を 更新
---> パッケージ dracut.noarch 0:004-409.31.amzn1 を アップデート
---> パッケージ kernel.x86_64 0:4.4.16-27.56.amzn1 を インストール
---> パッケージ kernel-tools.x86_64 0:4.4.11-23.53.amzn1 を 更新
---> パッケージ kernel-tools.x86_64 0:4.4.16-27.56.amzn1 を アップデート
---> パッケージ libcurl.x86_64 0:7.40.0-8.58.amzn1 を 更新
---> パッケージ libcurl.x86_64 0:7.40.0-8.59.amzn1 を アップデート
---> パッケージ libevent.x86_64 0:2.0.18-1.11.amzn1 を 更新
---> パッケージ libevent.x86_64 0:2.0.21-4.19.amzn1 を アップデート
---> パッケージ ntp.x86_64 0:4.2.6p5-40.30.amzn1 を 更新
---> パッケージ ntp.x86_64 0:4.2.6p5-41.32.amzn1 を アップデート
---> パッケージ ntpdate.x86_64 0:4.2.6p5-40.30.amzn1 を 更新
---> パッケージ ntpdate.x86_64 0:4.2.6p5-41.32.amzn1 を アップデート
---> パッケージ openssl.x86_64 1:1.0.1k-14.91.amzn1 を 更新
---> パッケージ openssl.x86_64 1:1.0.1k-15.93.amzn1 を アップデート
---> パッケージ python27.x86_64 0:2.7.10-4.120.amzn1 を 更新
---> パッケージ python27.x86_64 0:2.7.10-4.122.amzn1 を アップデート
---> パッケージ python27-boto.noarch 0:2.39.0-1.0.amzn1 を 更新
---> パッケージ python27-boto.noarch 0:2.42.0-1.1.amzn1 を アップデート
---> パッケージ python27-botocore.noarch 0:1.4.23-1.54.amzn1 を 更新
---> パッケージ python27-botocore.noarch 0:1.4.46-1.58.amzn1 を アップデート
---> パッケージ python27-devel.x86_64 0:2.7.10-4.120.amzn1 を 更新
---> パッケージ python27-devel.x86_64 0:2.7.10-4.122.amzn1 を アップデート
---> パッケージ python27-libs.x86_64 0:2.7.10-4.120.amzn1 を 更新
---> パッケージ python27-libs.x86_64 0:2.7.10-4.122.amzn1 を アップデート
---> パッケージ tzdata.noarch 0:2016d-1.62.amzn1 を 更新
---> パッケージ tzdata.noarch 0:2016f-1.63.amzn1 を アップデート
---> パッケージ tzdata-java.noarch 0:2016d-1.62.amzn1 を 更新
---> パッケージ tzdata-java.noarch 0:2016f-1.63.amzn1 を アップデート
---> パッケージ vim-common.x86_64 2:7.4.1848-1.41.amzn1 を 更新
---> パッケージ vim-common.x86_64 2:7.4.1967-1.42.amzn1 を アップデート
---> パッケージ vim-enhanced.x86_64 2:7.4.1848-1.41.amzn1 を 更新
---> パッケージ vim-enhanced.x86_64 2:7.4.1967-1.42.amzn1 を アップデート
---> パッケージ vim-filesystem.x86_64 2:7.4.1848-1.41.amzn1 を 更新
---> パッケージ vim-filesystem.x86_64 2:7.4.1967-1.42.amzn1 を アップデート
---> パッケージ vim-minimal.x86_64 2:7.4.1848-1.41.amzn1 を 更新
---> パッケージ vim-minimal.x86_64 2:7.4.1967-1.42.amzn1 を アップデート
---> パッケージ wget.x86_64 0:1.17.1-1.17.amzn1 を 更新
---> パッケージ wget.x86_64 0:1.18-1.18.amzn1 を アップデート
--> トランザクションの確認を実行しています。
---> パッケージ python27-futures.noarch 0:3.0.3-1.3.amzn1 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package              アーキテクチャー
                                バージョン                リポジトリー     容量
================================================================================
インストール中:
 kernel               x86_64    4.4.16-27.56.amzn1        amzn-updates     16 M
更新します:
 aws-cli              noarch    1.10.56-1.41.amzn1        amzn-updates    1.0 M
 curl                 x86_64    7.40.0-8.59.amzn1         amzn-updates    287 k
 dracut               noarch    004-409.31.amzn1          amzn-updates    128 k
 kernel-tools         x86_64    4.4.16-27.56.amzn1        amzn-updates     99 k
 libcurl              x86_64    7.40.0-8.59.amzn1         amzn-updates    257 k
 libevent             x86_64    2.0.21-4.19.amzn1         amzn-updates    317 k
 ntp                  x86_64    4.2.6p5-41.32.amzn1       amzn-updates    658 k
 ntpdate              x86_64    4.2.6p5-41.32.amzn1       amzn-updates     91 k
 openssl              x86_64    1:1.0.1k-15.93.amzn1      amzn-updates    1.6 M
 python27             x86_64    2.7.10-4.122.amzn1        amzn-updates     98 k
 python27-boto        noarch    2.42.0-1.1.amzn1          amzn-updates    2.1 M
 python27-botocore    noarch    1.4.46-1.58.amzn1         amzn-updates    2.7 M
 python27-devel       x86_64    2.7.10-4.122.amzn1        amzn-updates    519 k
 python27-libs        x86_64    2.7.10-4.122.amzn1        amzn-updates    6.8 M
 tzdata               noarch    2016f-1.63.amzn1          amzn-updates    780 k
 tzdata-java          noarch    2016f-1.63.amzn1          amzn-updates    220 k
 vim-common           x86_64    2:7.4.1967-1.42.amzn1     amzn-updates    8.8 M
 vim-enhanced         x86_64    2:7.4.1967-1.42.amzn1     amzn-updates    1.2 M
 vim-filesystem       x86_64    2:7.4.1967-1.42.amzn1     amzn-updates     12 k
 vim-minimal          x86_64    2:7.4.1967-1.42.amzn1     amzn-updates    493 k
 wget                 x86_64    1.18-1.18.amzn1           amzn-updates    980 k
依存性関連でのインストールをします:
 python27-futures     noarch    3.0.3-1.3.amzn1           amzn-updates     30 k

トランザクションの要約
================================================================================
インストール   1 パッケージ (+1 個の依存関係のパッケージ)
更新          21 パッケージ

総ダウンロード容量: 45 M
Is this ok [y/d/N]: 
Exiting on user command
Your transaction was saved, rerun it with:
 yum load-transaction /tmp/yum_save_tx.2016-08-20.05-28._uDhDI.yumtx

何かJavaで試してみたいので、JDKのバージョンを確認する。

 java -version
java version "1.7.0_111"
OpenJDK Runtime Environment (amzn-2.6.7.2.68.amzn1-x86_64 u111-b01)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)

Java7だったので、Java8に入れよう。

$ sudo yum install java-1.8.0-openjdk.x86_64
読み込んだプラグイン:priorities, update-motd, upgrade-helper
amzn-main/latest                                         | 2.1 kB     00:00     
amzn-updates/latest                                      | 2.3 kB     00:00     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ java-1.8.0-openjdk.x86_64 1:1.8.0.101-3.b13.24.amzn1 を インストール
--> 依存性の処理をしています: java-1.8.0-openjdk-headless = 1:1.8.0.101-3.b13.24.amzn1 のパッケージ: 1:java-1.8.0-openjdk-1.8.0.101-3.b13.24.amzn1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ java-1.8.0-openjdk-headless.x86_64 1:1.8.0.101-3.b13.24.amzn1 を インストール
--> 依存性の処理をしています: lksctp-tools のパッケージ: 1:java-1.8.0-openjdk-headless-1.8.0.101-3.b13.24.amzn1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ lksctp-tools.x86_64 0:1.0.10-7.7.amzn1 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package                   アーキテクチャー
                                  バージョン                 リポジトリー  容量
================================================================================
インストール中:
 java-1.8.0-openjdk        x86_64 1:1.8.0.101-3.b13.24.amzn1 amzn-updates 225 k
依存性関連でのインストールをします:
 java-1.8.0-openjdk-headless
                           x86_64 1:1.8.0.101-3.b13.24.amzn1 amzn-updates  39 M
 lksctp-tools              x86_64 1.0.10-7.7.amzn1           amzn-main     89 k

トランザクションの要約
================================================================================
インストール  1 パッケージ (+2 個の依存関係のパッケージ)

総ダウンロード容量: 39 M
インストール容量: 102 M
Is this ok [y/d/N]: y
Downloading packages:
(1/3): java-1.8.0-openjdk-1.8.0.101-3.b13.24.amzn1.x86_6 | 225 kB     00:00     
(2/3): java-1.8.0-openjdk-headless-1.8.0.101-3.b13.24.am |  39 MB     00:02     
(3/3): lksctp-tools-1.0.10-7.7.amzn1.x86_64.rpm          |  89 kB     00:00     
--------------------------------------------------------------------------------
合計                                                14 MB/s |  39 MB  00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : lksctp-tools-1.0.10-7.7.amzn1.x86_64            1/3 
  インストール中          : 1:java-1.8.0-openjdk-headless-1.8.0.101-3.b13   2/3 
  インストール中          : 1:java-1.8.0-openjdk-1.8.0.101-3.b13.24.amzn1   3/3 
  検証中                  : 1:java-1.8.0-openjdk-1.8.0.101-3.b13.24.amzn1   1/3 
  検証中                  : 1:java-1.8.0-openjdk-headless-1.8.0.101-3.b13   2/3 
  検証中                  : lksctp-tools-1.0.10-7.7.amzn1.x86_64            3/3 

インストール:
  java-1.8.0-openjdk.x86_64 1:1.8.0.101-3.b13.24.amzn1                          

依存性関連をインストールしました:
  java-1.8.0-openjdk-headless.x86_64 1:1.8.0.101-3.b13.24.amzn1                 
  lksctp-tools.x86_64 0:1.0.10-7.7.amzn1                                        

完了しました!

もう1回、java -versionを実行してみる。

$ java -version
java version "1.7.0_111"
OpenJDK Runtime Environment (amzn-2.6.7.2.68.amzn1-x86_64 u111-b01)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)

入れただけでは今までどおり、Java7のままですね。

alternativesコマンドで標準で使用するJavaが管理されているので、こちらを使用し変更します。

$ sudo alternatives --config java

2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

先ほどインストールしたjava8が登録されているので、2を選択します。

$ java -version
openjdk version "1.8.0_101"
OpenJDK Runtime Environment (build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)

Java8に変更になりました。 これで標準でJava8が使用できます。

追記

上記の内容は実行環境のみで開発環境ではなくjavacなどがインストールされていなかったため、 java-1.8.0-openjdk-devel.x86_64 パッケージをインストール。 (最初からdevelをインストールすればよい)

$ sudo yum install java-1.8.0-openjdk-devel.x86_64
読み込んだプラグイン:priorities, update-motd, upgrade-helper
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ java-1.8.0-openjdk-devel.x86_64 1:1.8.0.101-3.b13.24.amzn1 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

=============================================================================================================================
 Package                             アーキテクチャー  バージョン                              リポジトリー             容量
=============================================================================================================================
インストール中:
 java-1.8.0-openjdk-devel            x86_64            1:1.8.0.101-3.b13.24.amzn1              amzn-updates             12 M

トランザクションの要約
=============================================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 12 M
インストール容量: 40 M
Is this ok [y/d/N]: y
Downloading packages:
java-1.8.0-openjdk-devel-1.8.0.101-3.b13.24.amzn1.x86_64.rpm                                          |  12 MB     00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : 1:java-1.8.0-openjdk-devel-1.8.0.101-3.b13.24.amzn1.x86_64                                   1/1 
  検証中                  : 1:java-1.8.0-openjdk-devel-1.8.0.101-3.b13.24.amzn1.x86_64                                   1/1 

インストール:
  java-1.8.0-openjdk-devel.x86_64 1:1.8.0.101-3.b13.24.amzn1                                                                 

完了しました!

javacの存在、バージョンを確認すると無事インストールされていました。

[ec2-user@ip-172-31-19-253 ~]$ javac -version
javac 1.8.0_101