備忘録。
Cygwinとか使うならSDKMANでいいと思いますが、私はScoopってのも使ってますね。
— Takahiro YAMADA (@yamadamn) September 26, 2019
Cygwin 環境はないので Scoop を試してみる。Scoop は Mac で言うところの Homebrew みたいなもの。
PowerShell 5 以上が必要。
> $PSVersionTable Name Value ---- ----- PSVersion 5.1.18362.145 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.18362.145 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1
実行ポリシーを変更してインストールする。
> Set-ExecutionPolicy RemoteSigned -scope CurrentUser > Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') Initializing... Downloading scoop... Extracting... Creating shim... Downloading main bucket... Extracting... Adding ~\scoop\shims to your path. 'lastupdate' has been set to '2019-09-27T12:47:42.7720596+09:00' Scoop was installed successfully! Type 'scoop help' for instructions.
試してみる
無念にもプロキシ環境の場合は事前に設定すること。
今回は JDK をインストールしてみる。Scoop の JDK は Java bucket というものに含まれる。
> scoop search jdk Results from other known buckets... (add them using 'scoop bucket add <name>') 'java' bucket: bucket/adoptopenjdk-hotspot-jre bucket/adoptopenjdk-hotspot bucket/adoptopenjdk-lts-hotspot-jre bucket/adoptopenjdk-lts-hotspot bucket/adoptopenjdk-lts-openj9-jre bucket/adoptopenjdk-lts-openj9 bucket/adoptopenjdk-openj9-jre bucket/adoptopenjdk-openj9 bucket/adoptopenjdk-upstream bucket/ojdkbuild-full bucket/ojdkbuild bucket/ojdkbuild10-full bucket/ojdkbuild10 bucket/ojdkbuild11-full bucket/ojdkbuild11 bucket/ojdkbuild12-full bucket/ojdkbuild12 bucket/ojdkbuild8-full bucket/ojdkbuild8 bucket/ojdkbuild9-full bucket/ojdkbuild9 bucket/openjdk bucket/openjdk10 bucket/openjdk11 bucket/openjdk12 bucket/openjdk13 bucket/openjdk14 bucket/openjdk7-unofficial bucket/openjdk9 bucket/oraclejdk bucket/oraclejdk12
> scoop bucket add java Checking repo... ok The java bucket was added successfully. > scoop search jdk 'java' bucket: adoptopenjdk-hotspot-jre (12.0.2-10) adoptopenjdk-hotspot (12.0.2-10) adoptopenjdk-lts-hotspot-jre (11.0.4-11) adoptopenjdk-lts-hotspot (11.0.4-11) adoptopenjdk-lts-openj9-jre (11.0.4-11-0.15.1) adoptopenjdk-lts-openj9 (11.0.4-11-0.15.1) adoptopenjdk-openj9-jre (12.0.2-10-0.15.1) adoptopenjdk-openj9 (12.0.2-10-0.15.1) adoptopenjdk-upstream (11.0.3-7) ojdkbuild-full (12.0.1.12-1) ojdkbuild (12.0.1.12-1) ojdkbuild10-full (10.0.2-1.b13) ojdkbuild10 (10.0.2-1.b13) ojdkbuild11-full (11.0.3.7-1) ojdkbuild11 (11.0.3.7-1) ojdkbuild12-full (12.0.1.12-1) ojdkbuild12 (12.0.1.12-1) ojdkbuild8-full (1.8.0.212-1.b04) ojdkbuild8 (1.8.0.212-1.b04) ojdkbuild9-full (9.0.4-1.b11) ojdkbuild9 (9.0.4-1.b11) openjdk (12.0.2-10) openjdk10 (10.0.2-13) openjdk11 (11.0.2-9) openjdk12 (12.0.2-10) openjdk13 (13-33) openjdk14 (14-16-ea) openjdk7-unofficial (7u80-b32) openjdk9 (9.0.4-12) oraclejdk (12.0.2-10) oraclejdk12 (12.0.2-10)
OpenJDK をインストールする。現時点では OpenJDK 12 がインストールされて、ユーザー環境変数に JAVA_HOME=~\scoop\apps\openjdk\current
が設定される。
> scoop install openjdk Installing 'openjdk' (12.0.2-10) [64bit] openjdk-12.0.2_windows-x64_bin.zip (187.4 MB) [===============================================================] 100% Checking hash of openjdk-12.0.2_windows-x64_bin.zip ... ok. Extracting openjdk-12.0.2_windows-x64_bin.zip ... done. Linking ~\scoop\apps\openjdk\current => ~\scoop\apps\openjdk\12.0.2-10 'openjdk' (12.0.2-10) was installed successfully! > java -version openjdk version "12.0.2" 2019-07-16 OpenJDK Runtime Environment (build 12.0.2+10) OpenJDK 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
OpenJDK 13 をインストールしてみる。
> scoop install openjdk13 Installing 'openjdk13' (13-33) [64bit] openjdk-13_windows-x64_bin.zip (186.8 MB) [===================================================================] 100% Checking hash of openjdk-13_windows-x64_bin.zip ... ok. Extracting openjdk-13_windows-x64_bin.zip ... done. Linking ~\scoop\apps\openjdk13\current => ~\scoop\apps\openjdk13\13-33 'openjdk13' (13-33) was installed successfully! > java -version openjdk version "13" 2019-09-17 OpenJDK Runtime Environment (build 13+33) OpenJDK 64-Bit Server VM (build 13+33, mixed mode, sharing)
バージョンを切り替える。
> scoop reset openjdk@12.0.2-10 # @ でバージョンを指定する場合 Resetting openjdk (12.0.2-10). Linking ~\scoop\apps\openjdk\current => ~\scoop\apps\openjdk\12.0.2-10 > scoop reset openjdk13 # 名前で指定する場合 Resetting openjdk13 (13-33). Linking ~\scoop\apps\openjdk13\current => ~\scoop\apps\openjdk13\13-33
その他
仕組み的に PATH が汚れないしバージョンの切り替えが簡単でいいかもしれない。ローカルの開発環境を構築するのに便利そう。というかその目的で作られたツールっぽい。
参考)