PowerShellでスクリプトを開発する方法の説明を続けているが、先日MicrosoftからPowerShellユーザーとしては見逃すことのできない発表が行われたので、このニュースを取り上げておきたい。「Windows Package Manager 1.0」が公開されたのだ。これにより、PowerShellの使い方にも大きな影響が出るだろう。もちろん、良い方向の影響である。今後、PowerShellはますますWindowsの操作や管理に欠かすことのできないツールになりそうだ。

Windows Package Manager 1.0公開

Microsoft Windowsには長らくLinuxが採用しているような公式のパッケージ管理システムが存在していなかった。Microsoft Storeがそれに近い存在だが、このツールはGUIしか提供されておらず、加えて登録されているアプリケーションにも偏りがある。GUI系のアプリケーションが多く、CUI系のツールが弱いのだ。

こうした状況が何を招くかというと、複数の方法でアプリケーションのアップデートを管理しなければならないということだ。Microsoft Storeからインストールしたものは設定アプリケーションでアップデートできるが、設定アプリケーションに表示されないソフトウエアは自分でアップデートする必要がある。サードパーティ製のパッケージ管理システムを導入したのであれば、そちらでも管理も行わなければならない。

要するに手間がかかる状況なのだ。これを解決するのが今回公開された「Windows Package Manager」と呼ばれるMicrosoft公式のパッケージ管理システムだ。Linuxの「apt-get」を想像するのが一番わかりやすいと思う。Linuxユーザーなら一度くらい「Windowsのソフトウエアを『apt-get』で管理できれば楽なのに」と思ったことがあると思うのだが、それが実現される日が来たようだ。

Windows Package Manager 1.0の公開に関する情報は次のページにまとまっている。


詳しい説明は省略するが、要は「Windowsにおけるアプリケーションのインストールやアップデートが『winget』というコマンドでできるようになる」ということだ。これまでインストールや管理にかかっていた手間が一気に楽になる。開発者にとってはまたとない機能の登場だ。

試してみよう:まずはアンインストール

せっかくなので、手動でインストールして使っていたWindows TerminalとPowerShellを、Windows Package Managerでインストールしてみよう。まず、現在インストールされているアプリケーションを、これまで通り設定アプリケーションをからアンインストールしておく。

PowerShellをアンインストール

Windows Terminalをアンインストール

ここまではこれまでと同じだ。

Windows Package Managerをインストール

Windows Package ManagerはいずれWindows 10にデフォルトで導入されるようだが、それまではMicrosoft Store経由でインストールするか、次のサイトからパッケージをダウンロードしてインストールすればよい。

Releases · microsoft/winget-cli


インストール後に管理者権限でコマンドプロンプトを起動する。次のように「winget」というコマンドが実行できることを確認する。これがWindows Package Managerの操作コマンドだ(今後はwingetという言葉をWindows Package Managerを指すものとしても使っていく)。

wingetの動作確認

wingetは引数にlistを指定するとシステムにインストールされているソフトウエアの一覧を表示させることができる。

winget listの実行サンプル

このようにwingetを使うとMicrosoft Store経由でインストールされたアプリケーションやサードパーティサイト経由でインストールされたアプリケーションなどの管理を行うことができる。

Windows TerminalとPowerShellをインストール

それではwingetを使ってWindows TerminalとPowerShellをインストールしてみよう。インストールできるかどうかは「winget search」で調べることができる。「winget search」でインストールできるかどうか調べ、「winget install」でアプリケーションのインストールを行うという流れだ。

「winget install」の実行サンプル

ここでは「winget install “Windows Terminal Preview”」および「winget install PowerShell」でインストールを行っている。「winget list」で確認すると、指定したアプリケーションがインストールされていることをチェックできる。

アプリケーションがインストールされたかどうかを確認

上記スクリーンショットにあるように、執筆時点ではWindows Terminalのインストールには失敗している。まだ全てのアプリケーションがうまくインストールできるわけではない。この辺りは今後ユーザーが増えることで改善が進むだろう。

Windows Package Managerでアップデート

では、wingetコマンドでアップデートを行ってみよう。管理者権限でWindows Terminalを起動し、「winget upgrade —all」でアップデートを実施することができる。

インストールしたWindows Terminalを管理者権限で起動

「winget upgrade —all」でインストール済みソフトウエアをアップデート

「winget upgrade —all」でのアップデート完了

インストール済みソフトウエアを確認すると、アップデートが行われていることがわかる。

一部のソフトウエアがアップデートされている

wingetはインストールの手軽さも良いところだが、特に魅力的なのがアップデートの簡単さだ。これまでWindowsにおけるソフトウエアのアップデートは手間のかかる作業だったが、これからはコマンド一発で済む可能性がある。これは作業時間の大きな削減になってくれるはずだ。

wingetの利便性は登録されるソフトウエアがこれからどれだけ増えるかと、その更新がどれだけアグレッシブに行われるかにかかっているが、かなり有望な状況になってきたことは間違いのないところだ。これでWindowsそのものをLinuxのように使っていくことがより簡単になるだろう。