tech.guitarrapc.cóm

Technical updates

Windowsにおけるツールのインストール(2025)

2025年になって、Windowsでツールをインストールする方法を少し変えてきているのでメモです。

WinGetとScoop

WinGetが利用しやすくなってから、徐々にScoopからWinGetへ切り替えているツールが増えています。使い分け基準は次の通りです。

条件 WinGet Scoop
ツール自身が更新機能を持っている ×
ツールが他のツールをインストールする ×
シンボリックリンクで困るツール ×
それ以外 ×

WinGetの基準

ScoopでChromeとかをインストールするとChrome内部の自己更新が使えずScoopで都度更新する必要があります。こういったツールはWinGetで管理するのがWindows的に自然な使い勝手を維持できます。

また、UnityHubのようにツールがほかのツールをインストールする場合、それはWindowsのインストール済みアプリで管理されます。こういったツールはWinGetで管理するのがWindows的に自然ですし一貫性を保てます。

最後に、gitをシンボリックリンクでインストールするとUnity Package Maangerでうまく認識されません。こういったツールはWinGetで管理するのとツール互換性で困ることなく、Windows的に自然な使い勝手を維持できます。

Scoopの基準

「ScoopはWinGetと違ってツールごとにPATH環境変数が追加されない」のがとてもいいポイントで、これは2025年現在でもWinGetではできません。 このため「.exeのみ使う」一般的なツールはScoopでインストールするほうがWinGetよりも使い勝手がいいです。

このあたりはWinGetもZipインストールでポータルパッケージをサポートしたことで置き換えられればよかったのですが、今のところ思った感じではないので見送っています。

$ winget install Microsoft.NuGet
Command line alias added: "nuget"
Path environment variable modified; restart your shell to use the new value.

WinGetでインストールしているツール

WinGetで以下のツールをインストールしています。主に開発で用いるツールですね。

# Core tools
winget install -e --id Docker.DockerDesktop --accept-package-agreements
winget install -e --id Logitech.OptionsPlus --accept-package-agreements
winget install -e --id Microsoft.VisualStudio.2022.Professional --accept-package-agreements
winget install -e --id Unity.UnityHub --accept-package-agreements
winget install -e --id Git.Git --accept-package-agreements
winget install -e --id GitHub.GitLFS --accept-package-agreements
winget install -e --id Microsoft.VisualStudioCode --override '/SILENT /mergetasks="!runcode,addcontextmenufiles,addcontextmenufolders"'

また、環境によっては以下もインストールしています。CursorとかもWinGetでインストールできるのは素早い対応で便利。

# for Playing environment
winget install -e --id Amazon.Kindle --accept-package-agreements
winget install -e --id Valve.Steam --accept-package-agreements
winget install -e --id Elgato.StreamDeck --accept-package-agreements
winget install -e --id Google.Chrome --accept-package-agreements
winget install -e --id Anysphere.Cursor --accept-package-agreements

Scoopでインストールしているツール

Scoopは以下のツールをインストールしています。こうやって見ると結構多いですね。

$ scoop list | select name
Installed apps:

Name
----
7zip
7zip19.00-helper
actionlint
aws
aws-vault
azure-cli
bombardier
browserouter
busybox
chromedriver
conftest
ctop
dark
dive
duf
ecspresso
fd
fork
gcloud
gh
ghz
gibo
git
git-secrets
gitkraken
gpg
heidisql
helm
ilspy
innounp
jq
kdiff3
kubectx
kubens
linqpad
mobaxterm
msbuild-structured-log-viewer
nvm
opa
openssl
pwsh
py
python
shellcheck
slack
sops
tenv
terraform-docs
tflint
time
unzip
vim
vivaldi
vscode
vswhere
yamlfmt
yq

実際には、ScoopPlayBookを使って以下のように定義しています。

# https://github.com/lukesampson/scoop/tree/master/bucket
# sudo is not required from Windows 11 24H2, as it is offer by default from Developer settings.
- name: "Install fundamentals"
  scoop_install:
    state: present
    bucket: main
    name:
      - 7zip

- name: "Install linux tools"
  scoop_install:
    state: present
    bucket: main
    name:
      - busybox
      - duf
      - fd
      - jq
      - openssl
      - sops
      - tenv
      - tflint
      - time
      - unzip
      - vim
      - yq

- name: "Install windows tools"
  scoop_install:
    state: present
    bucket: main
    name:
      - actionlint
      - aws
      - aws-vault
      - azure-cli
      - chromedriver
      - dive
      - gh
      - gibo
      - helm
      - kubens
      - kubectx
      - nvm
      - shellcheck
      - pwsh

- name: "Install Programming Languages"
  scoop_install:
    state: present
    bucket: main
    name:
      - python

# https://github.com/lukesampson/scoop-extras
- name: "Install extras bucket"
  scoop_bucket_install:
    state: present
    bucket: extras

- name: "Install extras tools"
  scoop_install:
    state: present
    bucket: extras
    name:
      - fork
      - gcloud
      - gitkraken
      - heidisql
      - ilspy
      - kdiff3
      - linqpad
      - mobaxterm
      - msbuild-structured-log-viewer
      - streamdeck
      - slack
      - vswhere

- name: "Install terraform-docs bucket"
  scoop_bucket_install:
    state: present
    bucket: terraform-docs
    source: https://github.com/terraform-docs/scoop-bucket.git

- name: "Install terraform-docs tools"
  scoop_install:
    state: present
    bucket: terraform-docs
    name:
      - terraform-docs

- name: "Install guitarrapc bucket"
  scoop_bucket_install:
    state: present
    bucket: guitarrapc
    source: https://github.com/guitarrapc/scoop-bucket.git

- name: "Install guitarrapc tools"
  scoop_install:
    state: present
    bucket: guitarrapc
    name:
      - bombardier
      - browserouter
      - conftest
      - ctop
      - ecspresso
      - ghz
      - opa
      - py
      - yamlfmt

まとめ

時々Windows 11をリセットしているのですが、先日リセットして見直しをいれたのでメモでした。 できることなら、WinGetに一本化したいですね。

参考