日本時間5月20日0時から始まったMicrosoftのBuildで、Windows Package Managerが発表されました。
Windows Package Manager Preview
コマンドラインインターフェイスなパッケージマネージャです。
Linuxディストリビューションはaptやyum(たくさんありすぎてちゃんと把握してない)といったパッケージマネージャが、MacでもHomebrewなどのパッケージ管理システムが存在しているわけですが、WindowsはWindows 8までMicrosoft公式のアプリケーションパッケージマネージャはありませんでした。
Windows 8からストアアプリの配布を行うMicrosoft StoreアプリはWindows 10に至るまで存在しているわけですが、残念ながら成功しているとは思えません。
これはストアアプリとして公開するための手順が複雑であったこと、DesktopBridgeができるまでUWP形式のものしか基本的に公開できなかったこと、そしてセキュリティ上の問題を取り除くためにがちがちにできることを制限したことが原因だと私は解釈しています。
また、個人的にはWindows再インストール時に復元してくれず、マイアプリ欄から一つ一つインストールしなおす必要がある(コマンドラインのインストール手段がないのでスクリプト化できない)のも不満があります。
MS公式のパッケージマネジャーとしてはコマンドラインインターフェイスのPackage Management(OneGet)がWindows 10になってから公開されたのですが、こちらも瞬間話題になったような気がするものの、あっという間にすたれた印象です。
非公式なパッケージマネージャとしてChocolateyやScoopがあります。
こちらはなかなか活発に活動しているようで、実際環境構築時に使っているのですが、やはり公式外ということで一抹の不安はあります。
また、ChocolateyはUAC問題、Scoopはユーザー領域にインストールするのでUAC問題は基本的にないものの、Chocolateyに対してパッケージ数で劣ります。
またリポジトリ公開者=開発者ではないので、アップデートについていかなかったり悪意のあるソフトウェアをインストールされてしまう可能性が否定できず。
そんななかで新たに発表されたこの Windows Package Manager
。
果たしてこれまで抱えてきた問題を解決するものとなるのでしょうか。
まず大事なのはインストール可能なパッケージをたくさん確保することだと思います。
Microsoftストアは魅力的なソフトウェアが提供されていないことが過疎化の原因の一つだと思っています(卵か鶏かみたいなところはありますが)。
Windows Package Managerは今のところ開発者向けツールの位置づけのように思われますが、それでもやはり開発者が使うツールは一通りそろっていないとつらいものがあります。
この点ではナーバさんの投稿を見る限り、公開段階でそこそこの量の開発者向けパッケージを確保できているように見えます。
たくさんあるっぽい。 pic.twitter.com/xWuuyAxkZz
— ナーバ(Naba) (@Naba0123) May 19, 2020
次にMSもしくは開発元が提供する安全なリポジトリ、パッケージ(Windows Package Managerではマニフェストというみたい)であること。
Microsoftストアは開発者が公開を行い、MSがチェックをすることで安全性を担保していますが、ChocolateyやScoopはこの辺りが心配です(確かVirusTotalでチェックしたりとかしてた気はしますが)。
少なくとも公式提供でないパッケージは先ほど書いたように必ずしもリポジトリでインストールされるソフトウェアが最新バージョンとは限らず、そして本物のソフトウェアをインストールする保証はありません。
Windows Package Managerは公式のリポジトリのほかサードパーティリポジトリが用意されるようですが、少なくとも公式リポジトリについてはSmartScreenやSHA256ハッシュ検証などで悪意のあるソフトウェアがインストールされる可能性を減らすようです。
次に、インストールコマンドを実行したらインストールが完了するまでノータッチで完了すること。
つまりは管理者権限不要であること、です。
Scoopが受けた理由はまさにこれだと思いますが、インストールコマンドを実行したらインストーラがダウンロードされて、実行されて、そしてUACウィンドウがぴょこんと出てきてそこでインストールが止まってしまうようでは困るんです。特に一気にソフトウェアをインストールしたいときに。
ScoopはZIP形式等で公開されているものをユーザー領域にインストールすることでUACを回避していますが、これだとインストーラしか公開されていないようなソフトだとダメなんですよねぇ。
これはインストーラの作りの問題でもあるので難しいとは思うのですが。
そういえばMSIXって結局どうなったんでしたっけ。
とりあえず眠い頭でつらつら書いてみたのですが、公式でパッケージマネージャが公開されること自体は大歓迎です。
Windowsを初期化した際、必要なソフトウェアを一つ一つインストーラをダウンロードしてインストールする手間が省けたらどんなに素晴らしいことか。
ただ、だいたいいつもこの手のMSソリューションは理想は高く現実は程遠くになりがちですので、どうかそんなことにならないことを祈っています。