wingetの使い方まとめ

wingetの使い方まとめ

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を使用して管理するのは非常に手軽な印象です。

依存関係をきれいに解決してくれるわけではないので、何かしらのソフトの依存パッケージも更新対象として出てきてしまう為、そのあたりの更新には注意が必要です。