winget へ choco または他の何かから可能な範囲で移行するメモ
- https://github.com/microsoft/winget-cli ;
winget
- https://github.com/microsoft/winget-pkgs ; Community repo
- https://github.com/microsoft/winget-pkgs/tree/master/manifests ; この辺りを眺めると
winget
を入れなくても対応パッケージが視えます
- https://github.com/microsoft/winget-pkgs/tree/master/manifests ; この辺りを眺めると
winget
を導入
- 現在は https://github.com/microsoft/winget-cli/releases から .appxbundle ファイルを入手して、
- 方法1: 開発者モードのサイドローディング機能を有効にしてPowerShellで
Add-AppxPackage
など → 参考 How to Install .Appx or .AppxBundle Software on Windows 10 - 方法2: Store の「アプリ インストーラー」を導入して .appxbundle を読ませる → アプリ インストーラー を入手 - Microsoft Store ja-JP
- 方法1: 開発者モードのサイドローディング機能を有効にしてPowerShellで
- そのうち Windows の標準機能として勝手にインストールされた状態になるのかもしれません。
winget
<- choco
移行例: Node.js
- 既存の別の何かで入れてある Node.js はそれぞれの方法で手アンインストール
winget
で導入winget install node
winget install node
の場合、 CUI でパッケージのダウンロードが進むとインストール経過は GUI のウィンドウが勝手に出てきて進みます。放っておくと(たぶん)成功で完了して CUI に制御が戻ります。
いまのところは残念ながら、途中で GUI のウィンドウが"しゃしゃり出て"来てしまうので winget install
をバックグラウンドで実行させつつ「ながら」で別作業を並行みたいなかっこいい使い方はできません。
また、既にインストール済みか一切チェックしやがらない現代のパッケージマネージャーとしてはわりとおばかさんな仕様のため、 winget install node
が成功した状態で winget install node
するとまったく同様にインストールを繰り返します。これは依存パッケージの仕組みやある目的のためにまとめてあれこれを導入したい場合にすっごい無駄です。
- Support for package dependencies · Issue #163 · microsoft/winget-cli · GitHub ; 「パッケージの依存関係に対応してください」
- Already installed app are not detected · Issue #216 · microsoft/winget-cli · GitHub ; 「既に導入済みのアプリを検出しやがりません」
- --update · Issue #120 · microsoft/winget-cli · GitHub ; 「
--update
でインストール済みならアップデート動作してほしい」 - version specific feature · Issue #227 · microsoft/winget-cli · GitHub ; 「特定バージョンのインストールオプションがほしい」
おまけメモ
↑では突然winget install
しましたが、教科書的な手順としては winget search node
, winget show node
など確認してから winget install node
です。
所感としては「実用するにはまだはやいけれど期待はしたい」です。Issueがたくさんあがっていますし、パッケージマネージャーとしてのコア機能部分でまだ不足が多いので、現在はパッケージが充実したとしてもパッケージマネージャーとしての機能性からは choco
の方が便利でいますぐ移行した方がよいとは言えません。来週には既にそうではなくなっているかもしれませんし、①年後には「そんなプロジェクトもそういえばありましたね、ハハッ」になっているかもしれません。