マイクロソフトがWindows公式パッケージマネージャーを発表。「パッケージマネージャーではない」と反論するユーザー

Table of Contents

マイクロソフトがWindows公式パッケージマネージャーを発表。「パッケージマネージャーではない」と反論するユーザー

Build Microsoft は、新しいパッケージ マネージャー (現在プレビュー) をリリースする予定であると発表しましたが、これは便利そうですが、いくつか厄介な疑問や問題も生じます。

現在開催中の (仮想) Build カンファレンスで発表された、想像力豊かな名前の Windows パッケージ マネージャーは、NuGet や NPM などのソリューションがある開発者向けコンポーネントではなく、アプリケーションをインストールするためのものです。

Linuxの優れた機能の一つは、DebianのAptのようなパッケージマネージャーを利用できることです。これらのツールを使えば、コマンドラインからアプリケーションの依存関係をインストール、削除、管理できます。依存関係のバージョン問題や設定ファイルの破損といった問題が発生することもあり、完璧ではありませんが、ほとんどの場合、必要なものを簡単に入手でき、スクリプトも使用できます。多くのユーザーは、Windowsでも同様に使いやすくなればと考えています。

Microsoftは、Windowsパッケージマネージャーを導入することで、比較的最近注目を集めているコマンドラインへの愛着をさらに強化しました。これにより、リポジトリからパッケージをインストールできるようになります。デフォルトのリポジトリはコミュニティリポジトリと呼ばれています。マルウェア対策として、Microsoftは「SmartScreen、静的解析、SHA256ハッシュ検証、その他いくつかのプロセスを活用することで、悪意のあるソフトウェアがリポジトリやユーザーのマシンに侵入する可能性を低減しています」と述べています。

現在利用可能なアプリケーションをざっと見てみると、7Zip、AWS CLI(コマンドラインインターフェース)、Azure CLI、Discord、Dropbox、KeePass、Git、Inkscape、TreeSize、LibreOffice、PowerToys、SQL Server Management Studio、Gimp、Visual Studio、Firefox、Spotify、Zoomなど、幅広いアプリケーションに対応しています。パッケージの検索やハッシュ値の検証が可能で、改ざん防止に役立ちます。サードパーティ製のリポジトリも追加可能ですが、まだ存在しません。一般提供開始時には、Windows 10 バージョン1709以降がサポートされる予定です。

Windows パッケージ マネージャーで利用可能なパッケージの一部

Windows パッケージ マネージャーで利用可能なパッケージの一部

これらの問題に関して、まず頭に浮かぶのは、なぜマイクロソフトは既存のパッケージマネージャーを使わずに新しいパッケージマネージャーを開発したのかということです。代替案としては、7,700以上のパッケージと10億以上のパッケージをユーザーがインストールしたとされるChocolateyなどがあります。

「新しいソリューションを開発するに至った理由はいくつかある」とマイクロソフトのシニア プログラム マネージャー、デミトリウス ネロン氏は語る。

これらは主にコミュニティリポジトリのセキュリティに関係していますが、「クライアントプログラムをネイティブWindowsアプリケーションとして提供すること」に関して、具体的な課題は存在しないと彼は述べています。さらに、「現在のパッケージマネージャーに満足しているのであれば、使い続けてください」と付け加えました。

さらに深刻なことに、現在のプレビューはインストールのみに制限されており、パッケージの削除オプションすらありません。パッケージの自動更新や更新メカニズムすら存在せず、依存関係の管理機能も特にありません。今後の課題としては、アンインストール、アップデート、ストアアプリのサポートといった機能の追加が挙げられます。

これらの問題により、WinGet GitHubリポジトリで「パッケージマネージャーではない」という根本的な問題が提起されました。投稿者は、「インストーラー(パッケージではない)をダウンロードして実行するだけ(管理ではない)」と述べていました。

グループプログラムマネージャーのアンドリュー・クリニック氏は、WinGetは「開発者マシンのセットアップに必要なスクリプト機能」を求める声に応えたもので、Windowsパッケージ管理の真のソリューションは推奨される展開方法であるMSIXにあると答えた。しかし、多くのアプリケーションがまだMSIXをサポートしていないため、WinGetは他の種類のインストールを排除することはできないと述べた。「MSIXに対応すれば、アプリを最新の状態に保ち、クリーンにアンインストールできるだけでなく、必要な依存関係も把握できます」とクリニック氏は述べた。

Windowsは常に移行期にありますが、MSIXが十分に組み込まれ、満足のいくパッケージ管理が実現するまでには、まだ時間がかかりそうです。また、WinGetが現在対応していない有料アプリケーションの問題もあります。

WinGet は改善の余地がありますが、期待通りに動作させるには Windows 自体の進化に依存します。®

Discover More