Wingetにおける安定版v1.14からプレビュー版v1.16での新機能
ASCII.jp / 2023年7月2日 10時0分
WinGetは、記事執筆時点で以下の3つが配布されている。
●プレビュー版(v1.6.1573-preview) https://github.com/microsoft/winget-cli/releases/tag/v1.6.1573-preview ●プレリリース版(v1.5.1572) https://github.com/microsoft/winget-cli/releases/tag/v1.5.1572 ●安定版(v1.4.11071) https://github.com/microsoft/winget-cli/releases/tag/v1.4.11071
新機能として「winget configuration」(プレビュー版のみ)と「pinning」(プレビュー版、プレリリース版)があり、さらにPowerShell用モジュール「Winget.Client」(安定版を含む上記3バージョンに対応)がPowerShell Galleryで配布されている。
configurationは、アプリケーションのインストールと環境設定を同時にする機能で、サーバーやクライアントの初期設定などに利用できるもの。環境設定などには、PowerShell DSC(Desired State Configuration)を用いている。
pinningは、WingetのUpgradeコマンドから特定のプログラムを除外し、バージョンを固定するためのものだ。Winget.Clientは、PowerShell(制限付きだがWindows PowerShellを含む)からWingetの機能を使うためのものである。ページの関係から、今回は「pinning」と「Winget.Clinet」について解説し、次回「winget configuration」について解説する予定だ。
そもそもWinget pinningとは?
wingetには、インストールされているソフトウェアのバージョンを調べ、アップデートがあれば、これをインストールする「upgrade」コマンド(サブコマンド)がある。
pinningは、このときに除外するアプリケーション(パッケージ)を指定するものだ。除外方法は、「Blocking」、「Pinning」、「Gating」の3つ。
あらかじめpinningを指定しておけば、winget upgradeコマンドを使うときに、特定パッケージを除外するなど細かい操作はせずとも、pinning指定されていないパッケージをまとめて更新できるようになる。
Blockingは最も強く、指定されているパッケージは、winget upgradeオプションのほとんどでアップグレードされない。しかし、--forceオプションとともにパッケージ名を直接指定したときは、アップグレードがなされる。
pinningでは、単純なwinget upgradeではアップグレードされないが、パッケージ名を直接指定する、あるいは--pinnedオプションなどが指定されるとアップグレードが実行される。
gatingは、バージョン条件が設定され、それを満たす場合にはアップグレードされるが、条件を満たさないと、アップグレードがされない。バージョン条件は、バージョン番号で「1.*」など、数字とワイルドカードで指定され、「1.1」や「1.9」などへのアップグレードはされても、2.0にはアップグレードしない。
pinningの指定は、winget pinコマンドで行なう。このコマンドには、「add」「list」「remove」の3つのサブコマンドがあり、それぞれ、pinningの指定、pinning中のパッケージのリスト、pinningの解除をする。
addサブコマンドでは、以下のように「Blocking」「Pinning」「Gating」を指定する。
Blocking winget pin add <パッケージ名> --blocking Pinning winget pin add <パッケージ名> winget pin add <パッケージ名> --version <バージョン指定>
pinningは、winget v1.15以降で利用できる。なお、プレビュー版winget v1.16のupgradeでは、--uninstall-previousオプションの利用が可能になった。従来のwinget upgradeでは、一回アンインストール処理したあとインストールすることででアップグレードしていたが、一部のアプリケーションは、これにより、情報を失うことがあった。
PowerShell用Winget Clientモジュール
winget.clientは、PowerShell/Windows PowerShellから利用可能なモジュールである。具体的には、以下のコマンドを使ってインストールする(要管理者権限)。
Install-Module Microsoft.WinGet.Client
利用できるコマンドは、「Get-Command -Module Microsoft.WinGet.Client」で表示させることができる。
形式は、一般的なPowerShellコマンドと同じである。また、Get-Helpコマンドも利用できるが、現時点では、インターネット側のヘルプページが存在しない。ただし、GitHubにPowerShellクライアント関連のサンプルやドキュメントがある。
●GitHub/winget-cli Microsoft.WinGet.Client(英語) https://github.com/microsoft/winget-cli/tree/master/src/PowerShell/Microsoft.WinGet.Client
wingetは、その出力が込み入っていることと、出力フォーマットを変更する機能がほとんどないため、PowerShellのパイプライン内で使うのが面倒だった。たとえばwinget searchコマンドの出力には、リポジトリアクセスのゲージアニメーションを行うVTエスケープシーケンスが含まれてしまい、これを除去するなど面倒な処理が必要だった。
このPowerShellモジュールの提供により、Wingetの機能をPowerShellのパイプラインに入れて処理することが可能になった。このPowerShellモジュールは、安定版winget(v1.14)でも利用が可能だ。
当初は、Linuxのパッケージ管理コマンドに習う単純なパッケージインストールユーティリティだったが、インストールされているアプリケーション全般の情報を得ることが可能になり、一部Microsoftストアアプリのインストールにも対応した。これにより、オープンソース系のアプリケーションでも、新規マシンへのインストールが簡単になってきた。次回はパッケージインストールと同時に環境確認、設定ができるwinget configurationについて解説する予定だ。
この記事に関連するニュース
-
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた
ASCII.jp / 2024年11月24日 10時0分
-
延期が続く「Recall」、12月のプレビュー提供はどうなる? 阿久津良和のWindows Weekly Report
マイナビニュース / 2024年11月17日 16時0分
-
Windows Subsystem for Linuxガイド 第41回 WSL GUI設定
マイナビニュース / 2024年11月7日 15時31分
-
特定のハードウェアでWindows 11 24H2アップデート後に問題発生
マイナビニュース / 2024年10月30日 8時40分
-
GitHub Univerese 2024開催:GitHub CopilotのAIモデル選択可、自然言語による新たなアプリ開発ツールGitHub SparkなどAIネイティブな開発者体験を向上
Digital PR Platform / 2024年10月30日 1時15分
ランキング
-
1どうする? 大学生用パソコンの選び方 「4年通しよりも2年で買い替え」がオススメな理由
ITmedia NEWS / 2024年11月28日 13時26分
-
2NHKのネット受信契約(案)が“ダークパターン”過ぎて見過ごせない件(前編) NHKの見解は?
ITmedia NEWS / 2024年11月28日 19時9分
-
3【吉田輝和の絵日記】クズな父親とあばずれの母親から生まれたモヒカンがサバイバル生活を始めました。サンドボックスオープンワールドRPG『Elin』
Game*Spark / 2024年11月28日 17時0分
-
4ECナビカードプラス、2025年3月で年間利用ボーナスポイントを終了
ポイ探ニュース / 2024年11月28日 11時26分
-
5ローン・クレカ審査可否の背景が分かる 信用スコア開示サービスがきょうスタート
ITmedia NEWS / 2024年11月28日 13時59分
記事ミッション中・・・
記事にリアクションする
記事ミッション中・・・
記事にリアクションする
エラーが発生しました
ページを再読み込みして
ください