wingetでインストールしたアプリをアップグレードする

Windowsのパッケージ管理ツールであるWingetは、リリースされたばかりで普段brewなどを利用していると足りない機能がいくつかあります

その中でも、インストール済みのアプリをバージョンアップする機能がないため中々導入に踏み切れないこともあるのですが、実験的機能としてアップグレードが存在したので、それの使い方を説明します

wingetのバージョンとfeaturesの確認

バージョンの確認

> winget
Windows Package Manager v0.2.3162 プレビュー
Copyright (c) Microsoft Corporation. All rights reserved.

WinGet コマンド ライン ユーティリティを使用すると、コマンド ラインからアプリケーションやその他のパッケージをインストールできます。

使用状況: winget [<コマンド>] [<オプション>]
使用できるコマンドは次のとおりです:
  install   指定されたパッケージをインストール
  show      パッケージに関する情報の表示
  source    パッケージのソースの管理
  search    アプリの基本情報を見つけて表示
  hash      インストーラー ファイルをハッシュするヘルパー
  validate  マニフェスト ファイルを検証
  settings  設定を開く
  features  試験的な機能の状態を表示

実験的機能の確認

> winget features
次の試験的な機能が進行中です。
これらの設定は、設定ファイル ' winget settings ' を使用して構成できます。

機能                    状態 プロパティ          リンク
-------------------------------------------------------------------------------
Command Sample          無効 experimentalCmd     https://aka.ms/winget-settings
Argument Sample         無効 experimentalArg     https://aka.ms/winget-settings
Microsoft Store Support 無効 experimentalMSStore https://aka.ms/winget-settings
List Command            無効 list                https://aka.ms/winget-settings
Upgrade Command         無効 upgrade             https://aka.ms/winget-settings

Upgrade Commandの有効化

winget settings

上記コマンドを実行すると、JSONに紐付けられたエディが開き、setting.jsonが表示されます

それを、以下のように修正すれば有効になります

{
    "$schema": "https://aka.ms/winget-settings.schema.json",

    // For documentation on these settings, see: https://aka.ms/winget-settings
    // "source": {
    //    "autoUpdateIntervalInMinutes": 5
    // },
    "experimentalFeatures": {
        "upgrade": true
    }
}

確認

以下のコマンドで有効になっていることを確認する

> winget
Windows Package Manager v0.2.3162 プレビュー
Copyright (c) Microsoft Corporation. All rights reserved.

WinGet コマンド ライン ユーティリティを使用すると、コマンド ラインからアプリケーションやその他のパッケージをインストールできます。

使用状況: winget [<コマンド>] [<オプション>]

使用できるコマンドは次のとおりです:
  install   指定されたパッケージをインストール
  show      パッケージに関する情報の表示
  source    パッケージのソースの管理
  search    アプリの基本情報を見つけて表示
  upgrade   指定されたパッケージを更新する
  hash      インストーラー ファイルをハッシュするヘルパー
  validate  マニフェスト ファイルを検証
  settings  設定を開く
  features  試験的な機能の状態を表示

あとは、以下のように使う

winget upgrade --name python

これでアップデートできるはず