Windows用パッケージマネージャー「winget.exe」のプレビューが開始された。バイナリーも提供されているので、ちょっと試してみた。なお、wingetはプレビュー版であり、最終版ではないので、場合によっては重大な問題が発生する可能性もある。ご自身のリスクで利用していただきたい。編集部も筆者も一切責任を負わないのでそのつもりで。
そもそもwingetとは一体何?
wingetは、マイクロソフトが開発した「公式」のパッケージマネージャーである。一般にパッケージマネージャーとは、アプリケーションパッケージの検索やインストール、アップデートなどの管理するためのもの。Linux系では、アプリケーションやOS関連ソフトウェアのインストールは、パッケージマネージャーを使うのが標準的で、各ディストリビューションごとに標準のパッケージマネージャーがある。
逆にどのパッケージマネージャーを採用しているかでLinuxディストリビューションを分類することもあるくらいに標準的なものになっている。Linuxのパッケージマネージャーが成功したので、他のOSでも現在ではパッケージマネージャーを搭載するのが広がっている。
そんな中で、標準のパッケージマネージャーがないのはWindowsぐらいだった。強いて言えばMicrosoftストアが似たような存在であるが、管理できるのは、AppxやMsixのようなMicrosoftストア用のパッケージのみで、Win32アプリケーション標準のMSIパッケージ形式には対応していなかった。wingetは、Win32アプリケーション用のパッケージマネージャーであり、Win32アプリケーションの検索、インストール、情報表示などができるようになっている。
一般にパッケージマネージャーは、対象アプリケーションを保存する「リポジトリー」と対になっている。リポジトリーは、ローカルに置くことも不可能ではないが、一般的には、インターネット側サイトとして作られる。このため、パッケージマネージャーは、ここからアプリケーションを検索などで探して、ダウンロードしてインストールできる。
wingetもマイクロソフトが管理するリポジトリーを持つ。マイクロソフトの主張によれば、「信頼できるリポジトリ」を構築することが自身でパッケージマネージャーを開発する理由だったとか。まあ、気持ちはわからないでもないが、Microsoftストアもリポジトリーの一種と考えるなら2つもリポジトリーが必要なのかどうか? と思わないわけでもないのだが、まあそこはマイクロソフトの自由である。とりあえず、wingetは「winget」というリポジトリー1つだけが登録された状態である。
なお、wingetには、インストールしたアプリを列挙したり、インストールされているアプリの情報を表示する機能はまったく含まれていない。これに関しては、以前この連載で解説したWin32アプリケーションのアンインストール情報を保存しているレジストリを見るしかない(WindowsでのWin32アプリケーションのインストール状態を調べる方法)。
毎回長いコマンドを打つのもなんなので、簡易なインストールパッケージ表示コマンドを作った。
function winget-list([string]$appname) {
$temp=(Get-ChildItem -Path (
'HKLM:SOFTWARE¥Microsoft¥Windows¥CurrentVersion¥Uninstall',
'HKLM:SOFTWARE¥WOW6432Node¥Microsoft¥Windows¥CurrentVersion¥Uninstall',
'HKCU:SOFTWARE¥Microsoft¥Windows¥CurrentVersion¥Uninstall'
) | ForEach-Object { Get-ItemProperty $_.PsPath})
if($appname -ne "") {
$temp | Where-Object { $_.DisplayName -like ($appname+"*")} ;
} else {
$temp | Sort-Object DisplayName | Select-Object publisher,displayversion,displayname,InstallLocation ;
}
}
勝手に名前を「winget-list」にしてあるが、名前は自由に決めてかまわない。引数なしで起動すると、インストールされているWin32アプリケーションをすべてテーブル形式で表示する。引数として文字列を与えると、指定された文字列を先頭に含むパッケージ名を探して情報を表示する(いわゆる前方一致での検索)。
なお、途中文字列で検索したい場合には、文字列先頭にワイルドカード文字「*」を付け、たとえば「*code」などと指定する。
winget.exeのインストール方法
まずは、インストールだが、githubにソースコードがある(https://github.com/microsoft/winget-cli)。
このリポジトリをクローンして自分のビルドするのが正統だが、さすがにそれはちょっと面倒。というわけでマイクロソフトもインストール用バイナリを用意してくれている(https://github.com/microsoft/winget-cli/releases)。
ここから、「Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle」をダウンロードして実行させれば、インストールしてくれる。なお、完全なコマンドラインツールである。
また、wingetを試すには、「App Installer」がインストールされている必要がある。これを入手する方法は3つ。
1. Windows Package Manager Insider Protamに参加してMicrosoftストアから入手
2. Windows Insider Programに参加してMicrosoftストアから入手
3. githubからソースコードを入手して自分でビルド、インストールする
「1」と「2」は、各プログラムに参加すると、Microsoftストアで「アプリ インストーラー(App Installer)」がインストールできるようになるので自分でインストールする。また、すでにInsider Programに参加しているならもうインストールされている可能性もある。
この連載の記事
-
第428回
PC
Google/Bingで使える検索オプション -
第427回
PC
WindowsのPowerShellのプロファイルを設定する -
第426回
PC
WindowsでAndroidスマホをWebカメラにする機能を試した -
第425回
PC
無料で使えるExcelにWord、Microsoft 365のウェブ版を調べた -
第424回
PC
Windowsの基本機能であるクリップボードについてあらためて整理 -
第423回
PC
PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? -
第422回
PC
Windows 11の目玉機能が早くも終了、Windows Subsystem for Android(WSA)を振り返る -
第421回
PC
進化しているPowerToys LANで接続したマシンでキーボード/マウス共有機能などが追加 -
第420回
PC
Windowsプレビュー版に搭載されたsudoを試す -
第419回
PC
Windows Insider Previewが変わって、今秋登場のWindows 11 Ver.24H2の新機能が見えてきた? -
第418回
PC
Windows 11のスマートフォン連携は新機能が追加されるなど、いまだ進化している - この連載の一覧へ