ほりひログ

所属組織の製品 (Azure とか) に関連する内容が多めだけど、個人の見解であって、所属組織を代表する公式情報ではないです。

winget を入れてみた

winget とは

Windows 10 用のパッケージ マネージャです。
# 中の人なわけでも、知り合いが作っているわけでもなく、Build での発表で知ったレベルです

devblogs.microsoft.com

docs.microsoft.com

何をもってして "パッケージ マネージャ" なのか (この辺で盛り上がってます) 、ChocolateyScoop との違いは、など分からないことばかりですが、試してみました。

導入方法

ここに書いてある通りで、winget のインストール方法はいくつかあります。

  1. Microsoft Store から App Installer をインストール
  2. Release ページから App Installer パッケージをダウンロード、手動インストール
  3. ソースから App Installer をビルド

1 の Microsoft Store からのインストールは、下記のページから Microsoft Store を開いてインストールするだけですが、Windows 10 Insider Build を使うか、Preview flight ring へのサイン アップが必要です。

www.microsoft.com

今回は、2. のパッケージの手動インストールを試しました。

手動インストールに挑戦!

と言っても、Release ページからダウンロードしてきて、 f:id:horihiro:20200523114219p:plain

パッケージをダブルクリックするだけです。

f:id:horihiro:20200523115243p:plain

コマンドプロンプトから winget が実行できると思います。

f:id:horihiro:20200523115532p:plain

注意!

GitHubRelease にあるパッケージを使って、手動でパッケージを更新すると、今後 Microsoft Store からの自動更新が受けられなくなるそうです。

Note that installing this package will give you the WinGet client, but it will not enable automatic updates from the Microsoft Store.

github.com

なので、App Installerロールバック方法も書いておきます。

# 自分が試した範囲なので、自己責任でお試しください

まず PowerShell を管理者権限で開いて、下記コマンドを実行します。

Get-AppxPackage *Microsoft.DesktopAppInstaller* | remove-appxpackage -AllUsers

これで winget もきれいさっぱりなくなっているはずです。 f:id:horihiro:20200523120047p:plain

App Installer もなくなっているので、必要な人は、改めて Microsoft Store より、リリース版の App Installer を入れてください。

パッケージ管理

winget でインストールできるアプリは、こっちのリポジトリで管理されています。 github.com

You are highly encouraged to submit manifests for your favorite application.

て書いてあるので、試しに WindowsNode.js バージョン管理アプリの Nodist を追加してみました。

  1. microsoft/winget-pkgs を fork する
  2. manifests に追加したいアプリに関するマニフェスト ファイルを追加する
  3. 追加したマニフェスト ファイルを winget validate で検証する
  4. microsoft/winget-pkgs に Pull Request を送る

翻訳前ですが、Microsoft Docs 上にもドキュメントがありました。

出した Pull Request はこちら。 github.com マージされるでしょうか。

余談

ちなみに、最初は Deno を追加しようとしましたが、プレビュー版でサポートしているインストールは、 exe, msi msix のみです。

docs.microsoft.com

winget ツールの現在のプレビューでは、次の種類のインストーラーがサポートされています。
- EXE
- MSIX
- MSI

なので、ps1 一発でインストールできる Deno は追加できませんでした。
# そもそも Chocoratey でも、Scoop でもインストールできるしね。

ps1 でのインストールも検討されているようです。

github.com

以上です。