Windows 10/11用パッケージ管理ツールのWingetが、今年5月27日にVer.1.0となった。これにより安定版としての配付が開始された。なお、9月27日にプレビュー版Ver.1.1.1270、安定版Ver.1.1.12653が公開されている。ここでは、この最新のプレビュー版を元にWingetについて解説する。
そもそもWingetとは一体何?
あらためてWingetについて紹介しておこう。正式には「Windows Package Manager Client」といい、Microsoftのオープンソースソフトウェアの1つだ。名称が長いので本記事ではこれを「Winget」と表記する。
wingetを使うことで、ソース(一般的なパッケージマネージャーのリポジトリ)に登録されたアプリケーションパッケージのインストールや検索が可能になる。現時点でソースには、Winget専用のものと、Microsoftストアの一部アプリケーションが含まれる。Wingetに関しては、これまでにプレビュー版を扱ったので概要に関しては、以下の記事を参照頂きたい。
●Windowsで開発中のパッケージマネージャー「winget」がv0.3に
●Windows用アプリのインストールがコマンドラインで可能なパッケージマネージャー「winget」はどうなった?
●Windows 10のパッケージマネージャーであるwingetのプレビュー版を試す
プログラム配布用のマネージャーを含む
Windows Package Manager
続いて「Windows Package Manager」は、このWingetとリポジトリに登録するためのManifestファイルを作成するソフトウェアWingetcreate、そしてサードパーティのWin32アプリ用のリポジトリ(正確にはリポジトリに登録するためのManifestファイルの登録先)となるCommunity Repositoryという3つの要素からなる。
・Windows Package Manager
https://docs.microsoft.com/ja-jp/windows/package-manager/
・Windows Package Manager Client(Winget)
https://github.com/microsoft/winget-cli
・Windows Package Manager Manifest Creator(WingetCreate)
https://github.com/microsoft/winget-create
・Windows Package Manager Community Repository
https://github.com/microsoft/winget-pkgs/
とりあえず、アプリをインストールするだけというのであれば、Wingetだけを使えばよいが、自作のプログラムなどを登録したいというのであれば、残り2つを見ておく必要がある。また、GitHubのCommunity Repositoryには、登録されたアプリケーションのManifestファイルがあるので、Searchコマンドだけではわからない場合などにはここを見るのもいいかもしれない。
このうちWingetに関しては、Microsoftストアの「アプリインストーラー」に含まれているため、たとえばWindows Terminalなど、アプリインストーラーを必要とするソフトウェアをインストールしていれば、すでにWingetが入っているはずだ。もし、手動で入れたいなら、アプリインストーラーをMicrosoftストアから入手するのが最も簡単な方法である。そのほか、前述のGitHubからmsixパッケージを入手し、手動でインストールする方法もある。
Ver.1.1の改良点など
Wingetは、サブコマンドで動作を指定し、さらにオプションで細かい動作を指定する。
各サブコマンドで指定可能なオプションには次のようなものがある。
なお、sourceサブコマンドはさらに「add」「list」「update」「remove」「reset」「export」の6つのサブコマンドが必要で、そのオプションは次のようなものだ。
これらのうちsettingsサブコマンドはjsonファイルを出力し、「.json」に関連付けられているエディタなどが開く(何も設定されていないと最初にエディタを選ぶ)。ここには、Wingetの動作を指定するオプションが指定可能で、それには次のような設定項目がある。
具体的には、以下のリストのようなjsonファイルを作成する。なお、検索方法などに関しては、前記の過去記事を参照いただきたい。
{
"source": { "autoUpdateIntervalInMinutes": 240 },
"visual": { "progressBar": "rainbow" },
"installBehavior": {
"preferences": {
"scope": "machine",
"locale": ["ja-JP","en-US"] } },
"telemetry": { "disable": true },
"network": {
"downloader": "do",
"doProgressTimeoutInSeconds": 60 },
"experimentalFeatures": {
"dependencies":true,
"directMSI":true }
}
オプションでv0.4以降に追加されたものは赤で表示した。追加されたオプションである「--accept-package-agreements」と「--accept-source-agreements」は、それぞれパッケージとソースの利用許諾(ライセンス)に対してユーザーに尋ねることなしに合意するものだ。
以前のバージョンでは、Wingetでのインストール時には、Microsoftはライセンスには一切関わらず、許諾はしないといったメッセージが表示されていたが、パッケージ側で指定があれば、ライセンス確認ができるようだ。これらは、スクリプトなどによる自動インストールを想定したもの。ただし現時点では、ソースはMicrosoftのものとMicrosoftストアの2つしかなく、ソースに対する利用許諾が必要なサイトはデフォルトでは登録されていない。とはいえ、スクリプトなどで利用するなら、これらはあらかじめ指定しておいたほうがいいだろう。
「--header」は、「--source」とともに利用し、RESTアクセス時のHTTPヘッダーにつけるオプション文字列を指定するもの。現在Wingetに登録されているソース(wingetとmsstore)では指定の必要はない。
実験機能は前記settingsサブコマンドで設定するが、状態はfeaturesサブコマンドで確認できる。実験機能は「directMSI」「dependencies」の2つ。「directMSI」はmsi形式のパッケージをWindows Installerではなく、MSIAPIを使って直接インストールすることを指示するもの。「dependencies」はパッケージの依存関係情報を表示させるもの。
この連載の記事
-
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 - この連載の一覧へ