こんにちは、 @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 できなかったりするので注意が必要そうです。