ねむい

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

Microsoft公式のWindowsパッケージマネージャーツールを使ってみた

codezine.jp

今まではWindowsパッケージマネージャーにはchocolateyを使っていたのですが、久々にサイトを覗いたら良く分からないことになっていたので、Microsoft純正のを使ってみました。

インストール方法

記事での名前は「Windows Package Manager 1.0」になっていましたが、現在の名前は「アプリインストーラー」です。
下記のストアからインストール可能…なはずなんですが、私はインストールボタンを押してもダウンロードが始まらなかったため、この方法は諦めました。
www.microsoft.com

別の方法として、「Windows Package Manager 1.0」GitHubリポジトリにあるリリースページから直接インストーラーをダウンロードします。
Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle をダウンロードしてダブルクリックで展開すると、Windowsインストーラー画面が起動しますので画面に従ってインストールすれば完了です(このリリースページは執筆時点の最新の安定版です) github.com

使い勝手

「アプリと機能」で表示されるアプリをCLI上から操作できるようになるため便利です。 公式アプリなおかげか、chocolateyと違ってインストールパスが独自のパスを指定しないため、同じアプリを2重にインストールすることが無いのは嬉しいですね。
ブラウザからインストーラーをダウンロードしてインストールしたアプリも、インストールパスが揃っていればこのツールで管理できます。

> winget --help

Windows Package Manager v1.1.12653
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

個人的に興味深いのはimportexportコマンドです。 自身の環境に入っているアプリのリストを出力し、他の環境でリストを使ってアプリを入れることができます(nodejsで言うところのpackage.jsonpackage-lock.json相当ですね) これにより、Windows環境のセットアップがグッと楽になりそうです。
ただしアプリがパッケージで配布されていない場合はおそらくインストールされないので注意です(古いソフトや有料ソフトは配られてなさそう)

> winget import --help

Windows Package Manager v1.1.12653
Copyright (c) Microsoft Corporation. All rights reserved.

ファイルに一覧表示されているすべてのパッケージをインストールします。       

使用状況: winget import [-i] <import-file> [<オプション>]

次の引数を使用できます。
  -i,--import-file             インストールするパッケージを記述したファイル

次のオプションを使用できます。
  --ignore-unavailable         使用できないパッケージを無視する
  --ignore-versions
  --accept-package-agreements  パッケージのすべての使用許諾契約に同意する
  --accept-source-agreements   ソース操作中にすべてのソース契約に同意する

詳細については、次を参照してください。 https://aka.ms/winget-command-import
> winget export --help

Windows Package Manager v1.1.12653
Copyright (c) Microsoft Corporation. All rights reserved.

インストールされているパッケージの一覧をファイルに書き込みます。その後、パッケージを import コマンドを使用してインストールできます
。

使用状況: winget export [-o] <output> [<オプション>]

次の引数を使用できます。
  -o,--output                 結果が書き込まれるファイル

次のオプションを使用できます。
  -s,--source                 指定したソースからパッケージをエクスポートする
  --include-versions          作成されたファイルにパッケージ バージョンを含める
  --accept-source-agreements  ソース操作中にすべてのソース契約に同意する

詳細については、次を参照してください。 https://aka.ms/winget-command-export

バグ?

winget listで確認したところ、Thunderbirdのバージョンが古いようなので、winget upgradeでアップグレードしたのですが、なぜかThunderbirdが2つインストールされてしまいました。
おそらく、インストール済のThunderbirdx64 jaなのに対し、パッケージマネージャで表示されるものはen-USということで別アプリとして扱われたのだと思います。
Thunderbirdの公式サイトから最新のインストーラーをダウンロードしてアップグレードしたら最新のx64 jaになりました。

> winget list

名前                                            ID                                              バージョン      利用可能   ソース
---------------------------------------------------------------------------------------------------------------------------------
(前略)
Mozilla Thunderbird                             Mozilla.Thunderbird                             78.14.0         91.1.2     winget
(後略)
> winget show --id Mozilla.Thunderbird

見つかりました Mozilla Thunderbird [Mozilla.Thunderbird]
バージョン: 91.1.2
公開元: Mozilla
発行元 URL: https://www.mozilla.org/en-US/
発行元のサポート URL: https://support.mozilla.org/en-US/
作成者: Mozilla Foundation
モニカー: thunderbird
説明: Thunderbird is a free email application that is easy to set up and customize - and it's loaded with great features!
ホーム ページ: https://www.thunderbird.net/en-US/
ライセンス: Mozilla Public License Version 2.0
ライセンス URL: https://www.mozilla.org/en-US/MPL/2.0/
プライバシー URL: https://www.mozilla.org/en-US/privacy/thunderbird/
著作権 URL: https://www.mozilla.org/en-US/foundation/trademarks/policy/
インストーラー:
  種類: Msi
  ロケール: en-US
  ダウンロード URL: https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/91.1.2/win64/en-US/Thunderbird%20Setup%2091.1.2.msi
  SHA256: 27ecf21ff26aff491fdf674f1aa0b27ecb35bec8037918987f79f2f2768ab8f9