Open11

WinGet 関連

hankei6kmhankei6km
  1. 試しにNeoVim を Windows へインストールしたくなる
  2. Git なども必要になりそう

Windows の環境はあまりいじりたくなかったのだが、そろそろパッケージマネージャーを使ってみようか。

で、とりあえず winget を試す。

https://github.com/microsoft/winget-cli

hankei6kmhankei6km

少し試す

インストールが必要かなと思っていたのだが、試しにコマンドを実行してみたら入っていた。古くから使っている 32bit の Home にも入っていたので更新していれば入るようになってるのかな?

PS > winget -v
v1.4.10173

で、Powershell から使うといつも通りでフォントが変わったりで文字化けになったりする。とりあえずプロパティからフォントを MS ゴシック にしたが、めんどうなので Windows Terminal 入れた。

で、 seatch しようとしたら、いつものライセンスについてのプロンプトが出てくる。

PS>  winget search neovim
'msstore' ソースでは、使用する前に次の契約を表示する必要があります。
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
ソースが正常に機能するには、現在のマシンの 2 文字の地理的リージョンをバックエンド サービスに送信する必要があります (例: "US")。

すべてのソース契約条件に同意しますか?
[Y] はい  [N] いいえ: y

なお、下記が具体的に何をやるのかはちょっと調べた範囲では出てこなかった(ライセンスにサイレントに同意するオプションは出てくるけど)。

ソースが正常に機能するには、現在のマシンの 2 文字の地理的リージョンをバックエンド サービスに送信する必要があります (例: "US")。

なお、https://aka.ms/microsoft-store-terms-of-transaction を見ても「デバイスのプロファイルにリージョン的なものがあるらしい、それを使ってるらしいぞ」という感じしかわからんかった

ということで、Windows が普通に入っていれば「なんか使える」状態になっているもよう。

hankei6kmhankei6km

パッケージの検索と確認

たぶん、下記が yay -Ss apt search とかに近いイメージ。

--name--id あたりは意識することがあるかも。

winget search [キーワード]

-s は付けないと有効なsourceすべてから探すもよう。おそらくsourceというのが、リポジトリとか channel に相当するものなのだろうなと。

内容を確認するとき。名前は部分一致でもいけるぽいが、複数ヒットするのはダメらしい。

winget show [名前 or id]
hankei6kmhankei6km

パッケージをインストール

-e で完全一致。--scope で user か machine か選択(デフォルトは user だけどフォールバックするときもあるもよう)。あとは -s で source は絞っておいた方が無難かも

winget install -e --id [id]

ちょっと気になったのは依存関係はとくに処理されないのかなと。 検索してみたら現状では処理されないような感じだった。

https://github.com/microsoft/winget-cli/issues/163

hankei6kmhankei6km

インストール済パッケージを確認

winget list

各ツールのインストーラーを使った場合でもパッケージが source にあると winget で管理できるぽい(たぶん)。手動でダウンロードしたインストーラーを使って入れた VSCode なども表示された。

で、リストを見ていると、現状で使っているツールはほぼ winget でインストールできるもよう。

hankei6kmhankei6km

サードパーティーとは?

各行で文章が分かれているってことで、矛盾したことは言ってませんよ的な感じでよいのかな。

PS C:\tmp2> winget install --id Microsoft.VCRedist.2015+.x64 -e
見つかりました Microsoft Visual C++ 2015-2022 Redistributable (x64) [Microsoft.VCRedist.2015+.x64] バージョン 14.34.31931.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
hankei6kmhankei6km

どんなパッケージがある?

一覧を取得する方法は不明

winget.run というサイトがあるが、公式ではない?あとエラーになる。

とりあえず wiget search で懐かしい名前などで検索してみた。エディター関連を見たら Vim や Notepad++ とかある。が、秀丸はないもよう(いわゆるストアアプリと msstore source は別?)。メール関連も Becky などはなかった。

GIMP や Inkscape もあった。

他には各種言語や GitHub CLI に podman などもあるもよう。意外なところで Auto Hot Key もあった。

フォント関連はあまりなさそう。

Windows はほぼ thin clinet 的な使い方だったが、環境を整えたくなってきた。

hankei6kmhankei6km

トラブル

なにかあれば追加。

hankei6kmhankei6km

該当するインストーラーが見つかりません。詳細については、ログを参照してください。

32bit home で Neovim をインストールしようとしたときに表示される。

おそらく 32bit 版がないのでないかと。

Neovim の release、Windows は win64 だけなので、winget source もたぶんそうなのかなと。

hankei6kmhankei6km

InternetOpenUrl() failed. 0x80072f05 : unknown error

PS> winget show Docker.DockerDesktop
ソースを更新できませんでした: winget
コマンドの実行中に予期しないエラーが発生しました:
InternetOpenUrl() failed.
0x80072f05 : unknown error

前日(2023-02-11)までは同じ操作をできていた。他にも同じ人がいるようで。

https://github.com/microsoft/winget-cli/issues/566

証明書の有効期限切れらしい。

https://github.com/microsoft/winget-cli/issues/2956

半日くらいでなおっていた。

この手の稼働状況や復帰のステータスとか表示するページはあるのかな。