トップ «前の日記(2025/05/29 (木) ) 最新 次の日記(2025/05/31 (土) )» 編集 RSS feed

HsbtDiary


2025/05/30 (金) [長年日記]

Ruby をビルドするための最小の Visual Studio コンポーネントをインストール

昨日の続き、ひたすらインストール、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 に入れつつ、セットアップ手順を更新すると思う。

vswhere を scoop で入れた

ついでに 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+ でハルクを見た。

アベンジャーズで人間が巨大なオーガに変化して戦う、というのとそれほど自由にコントロールできるものでもない、というのは知っていたので、「なんで?」って辺りが分かったのはよかった。俳優が変わったのが時間の経過なのかはわからないけど、この作品とアベンジャーズとでめっちゃ変わっているなあ...というのが感想ではあった。

次はソーあたりを見る予定。