ニュース

ポータブルアプリに対応した「Windows Package Manager(winget) 1.3」が公開

Windows標準のアプリパッケージ管理システム

「Windows Package Manager 1.3」

 米Microsoftは8月3日(日本時間)、アプリケーションパッケージのCUI管理ツール「Windows Package Manager 1.3」をリリースした。パッケージのインストール体験を向上させるためマニフェストにいくつかの拡張が施されるなど、さまざまな改善が施されている。

 「Windows Package Manager」(winget)は、コマンドラインでアプリケーションのインストール・アップデート・アンインストールが行えるパッケージ管理システム。管理者権限で起動した「Windows Terminal」などで以下のコマンドを入力するだけで、アプリをインストールできる。Linuxでいうところの「apt-get」や「DNF」、Macの「Homebrew」に相当するものといえるだろう。

# 「Visual Studio Code」をインストール
winget install vscode

 「winget」は、「Windows 10 バージョン 1809」以降および「Windows 11」で利用可能。「ストア」アプリで「アプリ インストーラー」をアップデートすれば、最新バージョンとなる。また、「GitHub」のプロジェクトページから無償でダウンロードすることも可能。

「ストア」アプリで「アプリ インストーラー」をアップデートすれば、最新バージョンとなる

インストール体験の向上

 本バージョンでは、マニフェストが改善。たとえばパッケージに関連ドキュメントが含まれている場合、「winget show <package>」コマンドでドキュメントと関連するURLをチェックできるようになった。

 また、ほとんどのコマンドラインアプリはパッケージのインストール後に環境変数の再読み込みが必要となるが、インストール後にそれを注意するインストールノートを表示できるようになった。これが不要であれば設定ファイル(後述)に「suppressInstallNotes」オプションを書き加えればよい。コマンド入力時に「-display-notes」や「-suppress-notes」を追加すれば設定ファイルの記述に関係なくインストールノートを表示できる。

インストールノートを表示できるようになるなど、インストール体験を改善

 そのほかにも、実行ファイル(EXE)ベースのインストーラーの多くが提供するカスタムレスポンスにも対応。インストールが失敗した場合、標準のエラーメッセージに加え、URLも示されるようになった。これはインストールが失敗した原因を調査する際に役立つ。

設定の改善・拡充

 「winget」では「winget settings」で設定の変更が可能。コマンドを実行するとJSONファイルに関連付けられたアプリが開くが、お勧めは「Visual Studio Code」で、JSONスキーマを読み込んで入力補完を行ってくれる。「winget」の設定をすべて把握していなくても、プルダウンから選択肢を選ぶだけで設定をカスタマイズしていけるわけだ。

「winget settings」で設定ファイルを表示
「Visual Studio Code」ならば入力補完が効く

 「winget 1.3」では設定も拡充されており、前述の「suppressInstallNotes」以外にも、ログレベルを4段階で調整するオプションが用意されている。

機能の向上

 「winget --info」はシステムや「winget」の情報を取得するのに役立つコマンドだが、最新版ではこのコマンドでシステムのアーキテクチャー(x64、x86、arm64など)を確認できるようになった。

「winget --info」でシステムのアーキテクチャー(x64、x86、arm64など)を確認

 また、プログレスバーがコミュニティによる貢献により改善され、ブロックがより細かくなった。つまり、以前よりも滑らかに動作するようになる。「winget」はプログレスバーのスタイルをカスタムできるが、これはすべてのスタイルに適用されるとのこと。

 そのほかにも、表示バージョンと内部バージョンが異なるパッケージ(「Microsoft .NET SDK」など)への対応も改善されており、ユーザーには表示バージョンを尊重しつつ、バージョンの比較は内部バージョンで正しく行うといった処理が可能となっているという。

ポータブルアプリのサポート

 このように「winget 1.3」ではさまざまな変更が施されているが、なかでも注目したいのがインストーラーを持たない「ポータブルアプリ」パッケージのサポートだ。現在、このタイプのパッケージとして「Microsoft.NuGet」がリポジトリに登録されており、「winget」からインストール・アンインストールできるようになっているという。これで追加されたパッケージは、Windowsの「設定」アプリの[アプリと機能]セクションにもちゃんと登録される。

追加されたポータブルパッケージは、Windowsの「設定」アプリの[アプリと機能]セクションにもちゃんと登録される

 同社は「winget 1.3」が広範囲に展開されたタイミングで、ポータブルパッケージのマニフェスト提出を受け付ける考え。ポータブルアプリはレジストリなどを汚さないため一部のユーザーに好まれるが、管理が面倒というデメリットがあった。「winget」のポータブルパッケージ対応はこれを改善する可能性があり、今後の展開に注目したい。