昨日の続き、ひたすらインストール、Ruby のビルドチェック、アンインストールを繰り返した結果、本当に必要な最小の構成は以下であることが分かった。
{
"version": "1.0",
"components": [
"Microsoft.VisualStudio.Component.Roslyn.Compiler",
"Microsoft.Component.MSBuild",
"Microsoft.VisualStudio.Component.CoreBuildTools",
"Microsoft.VisualStudio.Workload.MSBuildTools",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.VC.Redist.14.Latest",
"Microsoft.VisualStudio.Component.Windows11SDK.26100"
],
"extensions": []
}
このうち、上4つは BuildTools を入れる上で絶対インストールされるもので、下の3つが Ruby をビルドするために必要なもの。VC の再配布ランタイムとか Windows SDK は別途インストールしているなら不要。要は VC.tools.x86.x64
をインストールすれば良い。
で、上の4つが必ず入るなら指定する必要はないのでは、とインストーラのオプションを調べてみたら以下でいけた。
winget install --id Microsoft.VisualStudio.2022.BuildTools -e --override "--passive --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.VC.Redist.14.Latest --add Microsoft.VisualStudio.Component.Windows11SDK.26100"
いつも何が必要なんだっけ...とか忘れがちで数GBも使わないファイルをインストールしていたので大変に便利になった。たぶん nobu がこの後に何かを作って ruby/ruby に入れつつ、セットアップ手順を更新すると思う。
ついでに Visual Studio には vswhere
という Visual Studio のコンポーネントがどこにインストールされているか、というのを検出するプログラムが含まれているのだけど、インストールやアンインストールを繰り返すとか、2022 だけじゃなくて 2019/2017 などを複数インストールしていると「vswhere ってどこにあるのを使うのがいいんだっけ...?」と混乱しがちなので scoop で入れてそれを使うようにした。
PS V:\> vswhere.exe -products Microsoft.VisualStudio.Product.BuildTools -version 17.0 -property installationPath
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools
PS V:\> vswhere.exe -products Microsoft.VisualStudio.Product.BuildTools -version 16.0,17.0 -property installationPath
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
-version
の使い方がめちゃくちゃ独特だけど、これで欲しいものがシュッと取り出せるので便利っぽい。vcpkg もだけど Visual Studio で入れるとどのコンポーネントに入ってるのかわからないし、全然更新されてなくて不便なことが多いので基本は scoop から入れるのが良いと思う。
引き続きマーベルの勉強。Disney+ でハルクを見た。
アベンジャーズで人間が巨大なオーガに変化して戦う、というのとそれほど自由にコントロールできるものでもない、というのは知っていたので、「なんで?」って辺りが分かったのはよかった。俳優が変わったのが時間の経過なのかはわからないけど、この作品とアベンジャーズとでめっちゃ変わっているなあ...というのが感想ではあった。
次はソーあたりを見る予定。