WinGet 関連
- 試しにNeoVim を Windows へインストールしたくなる
- Git なども必要になりそう
Windows の環境はあまりいじりたくなかったのだが、そろそろパッケージマネージャーを使ってみようか。
で、とりあえず winget を試す。
少し試す
インストールが必要かなと思っていたのだが、試しにコマンドを実行してみたら入っていた。古くから使っている 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 が普通に入っていれば「なんか使える」状態になっているもよう。
パッケージの検索と確認
たぶん、下記が yay -Ss
apt search
とかに近いイメージ。
--name
と --id
あたりは意識することがあるかも。
winget search [キーワード]
-s
は付けないと有効なsourceすべてから探すもよう。おそらくsourceというのが、リポジトリとか channel に相当するものなのだろうなと。
内容を確認するとき。名前は部分一致でもいけるぽいが、複数ヒットするのはダメらしい。
winget show [名前 or id]
パッケージをインストール
-e
で完全一致。--scope
で user か machine か選択(デフォルトは user だけどフォールバックするときもあるもよう)。あとは -s
で source は絞っておいた方が無難かも
winget install -e --id [id]
ちょっと気になったのは依存関係はとくに処理されないのかなと。 検索してみたら現状では処理されないような感じだった。
インストール済パッケージを確認
winget list
各ツールのインストーラーを使った場合でもパッケージが source にあると winget で管理できるぽい(たぶん)。手動でダウンロードしたインストーラーを使って入れた VSCode なども表示された。
で、リストを見ていると、現状で使っているツールはほぼ winget でインストールできるもよう。
パッケージのキャッシュ
インストーラーが保存される場所。
$env:TEMP\winget
インストールが成功すると消えるようなことも書いてあったが、見た感じ残ってる(再起動とかで消えると思うけど)。
winget 側では管理はしていないもよう。
サードパーティーとは?
各行で文章が分かれているってことで、矛盾したことは言ってませんよ的な感じでよいのかな。
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 はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
どんなパッケージがある?
一覧を取得する方法は不明
winget.run というサイトがあるが、公式ではない?あとエラーになる。
とりあえず wiget search
で懐かしい名前などで検索してみた。エディター関連を見たら Vim や Notepad++ とかある。が、秀丸はないもよう(いわゆるストアアプリと msstore source は別?)。メール関連も Becky などはなかった。
GIMP や Inkscape もあった。
他には各種言語や GitHub CLI に podman などもあるもよう。意外なところで Auto Hot Key もあった。
フォント関連はあまりなさそう。
Windows はほぼ thin clinet 的な使い方だったが、環境を整えたくなってきた。
トラブル
なにかあれば追加。
該当するインストーラーが見つかりません。詳細については、ログを参照してください。
32bit home で Neovim をインストールしようとしたときに表示される。
おそらく 32bit 版がないのでないかと。
Neovim の release、Windows は win64
だけなので、winget source もたぶんそうなのかなと。
InternetOpenUrl() failed. 0x80072f05 : unknown error
PS> winget show Docker.DockerDesktop
ソースを更新できませんでした: winget
コマンドの実行中に予期しないエラーが発生しました:
InternetOpenUrl() failed.
0x80072f05 : unknown error
前日(2023-02-11)までは同じ操作をできていた。他にも同じ人がいるようで。
証明書の有効期限切れらしい。
半日くらいでなおっていた。
この手の稼働状況や復帰のステータスとか表示するページはあるのかな。