Linux には当然のように存在し、Mac でも Homebrew というようなパッケージマネージャーが存在しています。
パッケージマネージャーを利用すれば、インストールしたいソフトウェアやドライバ、それらが依存関係を持つものをコマンド操作でインストールしたり、アップデートしたりできます。
Windowsだけ、入れたいソフトウェアごとにWebブラウザでアクセスしてダウンロードして。。。みたいな操作が必要でしたが、
winget
というWindowsパッケージマネージャーが存在しています。割と最近まで存在を知りませんでした。
たまたま 新しいPC (OS: Windows 11) を購入し真っさらに近い状態なので winget
を使って一部ソフトウェアをインストールしてみました。
今回試した環境は、 バージョン: 21H2, OSビルド: 22000.493 です
準備
上記にリンクしたMSの公式サイトに以下のように書いてあります
Microsoft Store に移動すると、アプリ インストーラーを更新するだけで、winget コマンド ライン ツールがインストールされます。
Microsoft Storeにアクセスし、winget を検索するとアプリ インストーラーが表示されます。
このスクリーンショットでは表示できていませんが、アプリインストーラの更新ボタンを押します。
これで準備完了です。
winget の利用
DOSプロンプトで winget install {対象のパッケージ}
で対象のパッケージ(ソフトウェア等)をインストールすることができます。
■7-Zipをインストールした例
C:\Users\ykiv>winget install 7-zip 見つかりました 7-Zip [7zip.7zip] バージョン 21.07 このアプリケーションは所有者からライセンス供与されます。 Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。 Downloading https://www.7-zip.org/a/7z2107-x64.exe ██████████████████████████████ 1.46 MB / 1.46 MB インストーラーハッシュが正常に検証されました パッケージのインストールを開始しています... インストールが完了しました
■WinSCPをインストールした例
C:\Users\ykiv>winget install WinSCP 見つかりました WinSCP [WinSCP.WinSCP] バージョン 5.19.6 このアプリケーションは所有者からライセンス供与されます。 Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。 Downloading https://sourceforge.net/projects/winscp/files/WinSCP/5.19.6/WinSCP-5.19.6-Setup.exe/download ██████████████████████████████ 10.8 MB / 10.8 MB インストーラーハッシュが正常に検証されました パッケージのインストールを開始しています... インストールが完了しました
無事に 7-Zip や WinSCP がインストールできていました。
利用可能なコマンド
winget
コマンドだけで実行すると利用可能な各種コマンドが以下のように表示されます
C:\Users\ykiv>winget Windows パッケージ マネージャー v1.2.10271 Copyright (c) Microsoft Corporation. All rights reserved. WinGet コマンド ライン ユーティリティを使用すると、コマンド ラインからアプリケーションやその他のパッケージをインストールできます。 使用状況: winget [<コマンド>] [<オプション>] 使用できるコマンドは次のとおりです: install 指定されたパッケージをインストール show パッケージに関する情報を表示します source パッケージのソースの管理 search アプリの基本情報を見つけて表示 list インストール済みパッケージを表示する upgrade 指定されたパッケージをアップグレードします uninstall 指定されたパッケージをアンインストール hash インストーラー ファイルをハッシュするヘルパー validate マニフェスト ファイルを検証 settings 設定を開くか、管理者設定を設定する features 試験的な機能の状態を表示 export インストールされているパッケージのリストをエクスポート import ファイル中のすべてのパッケージをインストール 特定のコマンドの詳細については、そのコマンドにヘルプ引数を渡します。 [-?] 次のオプションを使用できます。 -v,--version ツールのバージョンを表示 --info ツールの一般情報を表示 詳細については、次を参照してください。 https://aka.ms/winget-command-help
■searchコマンドの実行例
C:\Users\ykiv>winget search "IntelliJ IDEA" 名前 ID バージョン 一致 ソース ----------------------------------------------------------------------------------------------------------------- IntelliJ IDEA Ultimate Edition (EAP) JetBrains.IntelliJIDEA.Ultimate.EAP 221.4501.155 Tag: intellij idea winget IntelliJ IDEA Community Edition (EAP) JetBrains.IntelliJIDEA.Community.EAP 221.4501.155 Tag: intellij idea winget IntelliJ IDEA Ultimate Edition JetBrains.IntelliJIDEA.Ultimate 213.6777.52 winget IntelliJ IDEA Educational Edition JetBrains.IntelliJIDEA.Edu 213.6461.90 winget IntelliJ IDEA Community Edition JetBrains.IntelliJIDEA.Community 213.6777.52 winget
この実行例を見る限り、IntelliJ IDEA も winget
でパッケージとして管理されているようです
補足
winget
でソフトウェアをインストールした場合、.msi ファイルを手動で実行してインストールした場合と比較して、コンテキストメニュー(右クリックメニュー)には対象ソフトウェアが追加されない等の違いが出る場合があります。