ねむい

睡魔と戦うのに忙しいので労働は別な人に任せたい

winget upgradeで新しいアプリがインストールされる

yellowho.hatenablog.com

昨日記事に書いたMicrosoft公式のWindowsパッケージマネージャー「アプリインストーラー」について、再び面白い動きを発見したのでメモ

> winget list --id BraveSoftware.BraveBrowser
名前  ID                         バージョン 利用可能   ソース
-------------------------------------------------------------
Brave BraveSoftware.BraveBrowser 0.22.721   94.1.30.87 winget

Webブラウザの「Brave」アプリを更新しようとした時です。 winget listコマンドで確認すると、現在インストールされているバージョンが0.22.721で、94.1.30.87へアップグレードできるかのように表示されています。

> winget upgrade BraveSoftware.BraveBrowser
見つかりました Brave [BraveSoftware.BraveBrowser] バージョン 94.1.30.87
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
Downloading https://github.com/brave/brave-browser/releases/download/v1.30.87/BraveBrowserStandaloneSilentSetup.exe
  ██████████████████████████████  84.2 MB / 84.2 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

winget upgradeを実行すると、特にエラーも無くアップグレードが完了したように表示されます。

> winget list --id BraveSoftware.BraveBrowser
名前  ID                         バージョン 利用可能   ソース
-------------------------------------------------------------
Brave BraveSoftware.BraveBrowser 0.22.721   94.1.30.87 winget

しかし、再びwinget listで調べると、アップグレード前と結果が変わっていないことが分かりません。

> winget list --id brave
名前  ID                          バージョン
--------------------------------------------
Brave brave                       0.22.721
Brave BraveSoftware Brave-Browser 94.1.30.87

winget listの検索条件をパッケージ名完全一致から部分一致に緩めてみると、「Brave」アプリが2つインストールされているのが確認できます。 実際、新しい方も古い方もアプリを起動できます。

winget upgradeを実行しただけなのに新しいアプリがインストールされるのはちょっと怖いですね。 ただし、インストール前にWindowsインストーラーが起動するのでインストーラーをキャンセルすれば防げると思います。

> winget uninstall --id brave
見つかりました Brave [brave]
パッケージのアンインストールを開始しています...
正常にアンインストールされました

アンインストール時はwinget uninstall --id braveだけで1つに特定できるようで、コマンドごとにオプションの振る舞いが違うような気がします。