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に一本化したいですね。
参考
- winget-cli/doc/specs/#140 - ZIP Support.md at master · microsoft/winget-cli
- Support installing .zip files · Issue #140 · microsoft/winget-cli
- winget-cli/doc/specs/#182 - Support for installation of portable standalone apps.md at master · microsoft/winget-cli
- How to use winget to install VSCode with custom options? · microsoft/winget-cli · Discussion #1798
- Chocolatey vs. Scoop vs Winget - which Windows package manager to use? - Daft Dev (Blog by Mitch)
- WinGet が登場したのに、なぜ Scoop を使い続けているのか #winget - Qiita