Windowsでパッケージマネージャーを使う場合wingetやChocolateyであったりScoopを使用したりすると思いますが、
今回はwingetの使い方を下記ページを参考に簡単にまとめていきます。
https://learn.microsoft.com/ja-jp/windows/package-manager/winget/
wingetのインストール
WingetはMicrosoft Storeから入手可能です。
下記リンクをクリックして「インストール」ボタンを押すとMicrosoft Storeが立ち上がるので入手しましょう。
https://apps.microsoft.com/detail/9nblggh4nns1?rtc=1&hl=ja-jp&gl=JP#activetab=pivot:overviewtab
アプリの検索
https://learn.microsoft.com/ja-jp/windows/package-manager/winget/search
アプリの検索は
winget search [アプリ名]
で検索します。
例えばVisual Studio Codeで検索する場合は
winget search vscode
と検索します。
アプリを曖昧に検索する
そんなアプリの正式な名称なんてわからないよ!という場合に曖昧な検索も可能です。
winget search --query ""
と実行すると利用可能なアプリの一覧を返してくれます。
例えば、「Obsidian」というアプリを検索する場合は
winget search --query "Obsi"
上記のように実行すると、下記のようにObsidianのインストール可能なパッケージの一覧がでてきます。
名前 ID バージョン ソース
-----------------------------------------------------------
Obsidian Obsidian.Obsidian 1.6.7 winget
Hindsight obsidianforensics.HindsightGUI 2023.03 winget
アプリのインストール
https://learn.microsoft.com/ja-jp/windows/package-manager/winget/install
アプリをインストールする際は「winget install」を使います。
パッケージのIDがわかればそれをコピーして指定するだけです。
前述のようにObsidianをインストールする場合は
winget install Obsidian.Obsidian
と実行すればインストーラーが立ち上がってインストールされます。
こちらも同様に「--query」引数が使えるのでそれでインストールしてみても良いかもしれませんが、余計なパッケージをインストールする可能性があるのでおすすめしません。
インストールされているアプリの確認
https://learn.microsoft.com/ja-jp/windows/package-manager/winget/list
インストールされたアプリの一覧を確認するには「winget list」コマンドを使用します。
winget list
しかし、これだとwinget経由でインストールされた以外のアプリ一覧も軒並み表示されてしまうので、ソース名に"winget"を指定してリスト表示してみます。
winget list --source winget
これでも絞り込め切れてない気はしますが、アプリ一覧を確認するには良いでしょう・・・。
アプリの更新
https://learn.microsoft.com/ja-jp/windows/package-manager/winget/upgrade
インストールされたアプリを更新するには「winget upgrade」コマンドを使います。
アプリに搭載されているアップデート機能で更新しても良いですが、装備されていないアプリがある場合や一括で最新版にアップデートしてしまいたい場合に特に便利なコマンドです。
インストールされているアプリに更新があるか確認
winget upgrade
上記コマンドを実行することで、インストールされているアプリの一覧が出てきます。
特定のアプリの更新
特定のアプリを更新したい場合は、上記で出てきたアプリのIDを「winget upgrade」の次に指定するだけです。
winget upgrade [アプリのID]
例えば、Obsidianを更新したい場合は
winget upgrade Obsidian.Obsidian
と実行します。
すべてのアプリを一括更新
全部最新版にするという場合は下記コマンドを実行することで、インストール済みのすべてのアプリを更新対象にすることができます。
winget upgrade --all
確認が鬱陶しいので管理者権限でコマンドプロンプトを立ち上げておくことをおすすめします。
アプリのアンインストール
https://learn.microsoft.com/ja-jp/windows/package-manager/winget/uninstall
インストールしたアプリはinstallコマンドと同じような形で「winget uninstall」コマンドを使用します。
winget uninstall [アプリのID]
こちらも例としてObsidianをアンインストールしたい場合は下記のように実行します。
winget uninstall Obsidian.Obsidian
特定のバージョンのみアンインストール
また、同じアプリIDでもバージョン違いのアプリがインストールされていることがあります。
当方の環境ではPostgreSQL16のマイナーバージョン違いでのインストールがありました。
PostgreSQL 16 PostgreSQL.PostgreSQL.16 16.3-2 winget
PostgreSQL 16 PostgreSQL.PostgreSQL.16 16.0 winget
特定のバージョンのみアンインストールする場合は下記のようにversionを指定してアンインストールします。
winget uninstall --id PostgreSQL.PostgreSQL.16 --version 16.0
wingetで入れたアプリのバックアップとリストア
PCを買い替えた際に今まで入れていたアプリをインストールし直したい場合や、インストールアプリを他の人とシェアしたい時に便利なのがexportコマンドとimportコマンドです。
https://learn.microsoft.com/ja-jp/windows/package-manager/winget/export
https://learn.microsoft.com/ja-jp/windows/package-manager/winget/import
インストールアプリのバックアップ
winget export [-o] <output> [<options>]
エクスポート先を指定すると、パッケージの情報を含んだjsonファイルを作成します。
下記のようにしてデスクトップにファイルをエクスポートしてみます。
winget export -o .\Desktop\export.json
インストールアプリのリストア
winget import [-i] <import-file> [<options>]
エクスポートと同じ要領で、先程エクスポートしたアプリをファイルから一括でインストールします。
winget import -i .\Desktop\export.json
これで一括でインストールされると思います。(アプリのアップグレートがある場合はアップグレードが走ります)
まとめ
他にもwingetツールのコマンドは多々あるのですが、日常使いで必要なコマンドは上記であげた内容で十分かと思います。
wingetコマンドではインストーラーが無いアプリは現状ではインストールができないようなので、別途環境変数を書き換える必要のあるものなどはまだ手動でインストールする必要がありそうです。
とはいえ普段遣いで使う分には困らないであろうアプリが収録されているので、wingetを使用して管理するのは非常に手軽な印象です。
依存関係をきれいに解決してくれるわけではないので、何かしらのソフトの依存パッケージも更新対象として出てきてしまう為、そのあたりの更新には注意が必要です。