M1 Mac に sbt を入れて Scala 3 の REPL を使用する

2021年9月26日 engineerint

こんにちは、 @kz_morita です。

今回は、sbt をインストールして、scala 3 の REPL を使えるようにしたので、対応内容をメモします。

Java のインストール

sbt を使用するために、Java 8 系をインストールします。

自分は、Amazon Corretto 8 をインストールしました。

Amazon のサイト から macOS x64 の 拡張子が pkg の方をダウンロードしました。

落としてきたら、pkg を実行して、そのままインストールをします。

自分の環境だと jenv を使って java のバージョンを管理しているので、以下のコマンドでインストール先を確認して、jenv add をします。

$ /usr/libexec/java_home --verbose
Matching Java Virtual Machines (2):
    17 (arm64) "Homebrew" - "OpenJDK 17" /opt/homebrew/Cellar/openjdk/16.0.2/libexec/openjdk.jdk/Contents/Home
    1.8.0_302 (x86_64) "Amazon" - "Amazon Corretto 8" /Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home


$ jenv add /Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home
...
$ jenv versions 
  system
* 1.8 (set by /path/to/home/.jenv/version)
  1.8.0.302
  17
  corretto64-1.8.0.302
  openjdk64-17

上記までで、Java はインストール完了しました。

$ java -version
openjdk version "1.8.0_302"
OpenJDK Runtime Environment Corretto-8.302.08.1 (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM Corretto-8.302.08.1 (build 25.302-b08, mixed mode)

sbt のインストール

次に、sbt をインストールします。

intel CPU の mac であれば、brew install sbt で入りますが、M1 Mac は以下のようなエラーが出ました。

$ brew install sbt

sbt: The x86_64 architecture is required for this software.
Error: sbt: An unsatisfied requirement failed this build.

なので、 こちらのページ からユニバーサルパッケージからのインストールを行います。

ユニバーサルパッケージからのインストールにある zip をダウンロードしてきます。

落としてきた zip の中に、sbt の実行ファイルがあるので、パスが遠ているところ ( /usr/local/bin ) などにコピーすればインストール完了です。

$ sudo mv ~/Downloads/sbt/bin/sbt /usr/local/bin

$ which sbt
/usr/local/bin/sbt

$ sbt -version
sbt version in this project: 1.5.5
sbt script version: 1.5.5

sbt コンソールから REPL を起動

sbt のインストールが完了したら適当なプロジェクトを作成します。

自分は、Scala 3 の環境が欲しかったので、以下のコマンドでテンプレートを利用します。

$ sbt new lampepfl/dotty.g8

実行すると、プロジェクト名など聞かれるので適当に入力します。

作成されたディレクトリで、sbt コマンドを打ってREPLを起動します。

$ sbt

# sbt が立ち上がったら、console コマンドで REPL を立ち上げる
sbt:scala3-simple > conosle

これで、REPLが立ち上がったので適当にScalaコードを入力して確認することができます。

scala> val x = 5 
val x: Int = 5

scala> val y = 5L
val y: Long = 5

まとめ

今回は、M1 Mac に sbt をインストールし、REPL を起動するところまでにやったことをメモしました。 以前の記事 で IntelliJ 上からは実行できるようになっていたのですが、REPL も欲しかったので sbt を使ってインストールする手順を行ってみました。

M1 Mac だと sbt が Homebrew で install できなかったりするので注意が必要そうです。

この記事をシェア