Amazon Linux 2 に Scala 3 をインストールする

2022.04.20

いわさです。

後述の事情により、Amazon Linux 2 に Scala 3をインストールすることになりました。
あまりAmazon Linux 2へインストールする方法を紹介する記事が見当たりませんでしたので、再利用出来るように手順を残しておきたいと思います。

また、手順だけだと3~4行くらいで終わってしまうのすが、バージョンが違う場合など補足情報のまとめも兼ねています。

Amazon Linux 2のイメージはAmazon Linux 2 Kernel 5.10 AMI 2.0.20220406.1 x86_64 HVM gp2を使用しています。

JDKインストール

まず、ScalaはJVMで動作するので、JDKが必要になります。
今回はせっかく(?)なので、Amazon Correttoを使ってみることにしました。

Scalaの各バージョンごとのJVMの互換情報は以下にまとまっています。

The Scala 3.x series supports JDK 8, as well as 11 and beyond.

Amazon Linux 2 への Corretto のJDKバージョンごとのインストール方法は以下です。

今回はScala3なので上記に従ってv11を使ってみたいと思います。

[root@ip-172-31-10-157 ec2-user]# yum install java-11-amazon-corretto-headless
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                                                                                                 | 3.7 kB  00:00:00     
依存性の解決をしています
--> トランザクションの確認を実行しています。

:


依存性を更新しました:
  libblkid.x86_64 0:2.30.2-2.amzn2.0.7 libcap.x86_64 0:2.54-1.amzn2.0.1       libfdisk.x86_64 0:2.30.2-2.amzn2.0.7 libmount.x86_64 0:2.30.2-2.amzn2.0.7 libsmartcols.x86_64 0:2.30.2-2.amzn2.0.7
  libuuid.x86_64 0:2.30.2-2.amzn2.0.7  util-linux.x86_64 0:2.30.2-2.amzn2.0.7

完了しました!
[root@ip-172-31-10-157 ec2-user]# java --version
openjdk 11.0.14.1 2022-02-08 LTS
OpenJDK Runtime Environment Corretto-11.0.14.10.1 (build 11.0.14.1+10-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.14.10.1 (build 11.0.14.1+10-LTS, mixed mode)

問題なくインストール出来ました。

Scalaインストール

公式ドキュメントだとbrewを使ってインストールする方法がまず紹介されています。
ですが、今回はGitHubからScalaバイナリをダウンロードすることにしようと思います。

それぞれのバイナリのダウンロード先は以下から取得しましょう。

v3.1.x - Assets - Bynary

v2.13.x - Other resources - Binary

brewなどを使う方法以外に、wgetでもってきて配置する方法も公式ドキュメントにインストール方法のひとつとしてちゃんと紹介されています。

[root@ip-172-31-10-157 ec2-user]# wget https://github.com/lampepfl/dotty/releases/download/3.1.2/scala3-3.1.2.tar.gz
--2022-04-20 01:54:44--  https://github.com/lampepfl/dotty/releases/download/3.1.2/scala3-3.1.2.tar.gz
github.com (github.com) をDNSに問いあわせています... 13.114.40.48
github.com (github.com)|13.114.40.48|:443 に接続しています... 接続しました。

:

[root@ip-172-31-10-157 ec2-user]# tar xvzf scala3-3.1.2.tar.gz 
scala3-3.1.2/bin/
scala3-3.1.2/bin/scalac
scala3-3.1.2/bin/scala.bat
scala3-3.1.2/bin/scaladoc
scala3-3.1.2/bin/scalac.bat
scala3-3.1.2/bin/scala
scala3-3.1.2/bin/scaladoc.bat

:

[root@ip-172-31-10-157 ec2-user]# mv scala3-3.1.2 /usr/local/scala
[ec2-user@ip-172-31-10-157 ~]$ export SCALA_HOME=/usr/local/scala
[ec2-user@ip-172-31-10-157 ~]$ export PATH=$PATH:$SCALA_HOME/bin
[ec2-user@ip-172-31-10-157 ~]$ scala --version
Scala code runner version 3.1.2 -- Copyright 2002-2022, LAMP/EPFL

Scaraへのパスを通すのを忘れないようにしましょう。

動作確認

最後に、軽く動作確認をします。
Scala 2のチュートリアルからHello World的なことだけしておきましょう。

[ec2-user@ip-172-31-10-157 ~]$ scala
Welcome to Scala 3.1.2 (11.0.14.1, Java OpenJDK 64-Bit Server VM).
Type in expressions for evaluation. Or try :help.
                                                                                                                                                                                
scala> println("Hello, world!")
Hello, world!

良さそうですね。

さいごに

次回以降はですね、Spark Cassandra Connectorを使ってAmazon Keyspacesへの接続をトライしてみようと思います。(最近出来るようになった)
実は、Spark Cassandra Connectorの前提条件にScalaが必要なのでこの記事を書きました。