テクノロキャンバス

プログラミングや読んだ本、訪れた美術館についてアウトプットしようと思っています。

PCセットアップのスタンダードになるか? WinGet 1.6 を試してみた

先日、窓の杜を眺めてたらこんな記事を見つけました。
forest.watch.impress.co.jp

またMicrosoftがPowerToys系のツールのアップデートを発表をしたのかと斜め読みをしていましたが、こんな一文がありました。

 新コマンドとしては、「winget download」が挙げられる。これはインストーラーをダウンロードするだけで実行はしないコマンドで、IT管理者が一般ユーザーに展開するパッケージを揃えたい場合などに役立つ。
https://forest.watch.impress.co.jp/docs/news/1535509.html

IT管理者というわけではないですが、仕事でオフライン環境を構築する機会があるので興味を惹かれ試してみました。

基本的な使い方

wingetについて調べてみると、Microsoftにwingetのトレーニングページがありました。
learn.microsoft.com
一通り読んでみると、Ubuntuで言うaptgetとほぼ同じような使い方ができるようです。

早速コマンドプロンプトを開いて、下記コマンドを打ってみます。

$ winget search vscode


一回目ではこのようなメッセージが出るので、yと入力してエンターを押します。

すると、vscodeと付くパッケージが一覧表示されました。

目的のVSCodeは一番上のものなので、IDで指定します。

$ winget install vscode Microsoft.VisualStudioCode

これで本来はインストールされるのですが、インストール済みなのですでにあると言われてしまいましたw
※VSCodeはwingetで入れていないので、通常のインストーラから入れていてもバージョンを読み取って最新か確認してくれるというわけですね。

簡単な仕組み解説

さて、ここまでMicrosoftのVSCodeでインストールを試してきましたが、実はwingetはChromeやFirefoxといったMicrosoft以外が作ったソフトでのインストールにも対応しているのです!
試しにchromeを探してみると、こんな結果が出てきます。

この中の上から3番目、IDがGoogle.Chromeとなっているのが普段使っているChromeのパッケージなので、先程と同じくID指定でinstallコマンド実行でインストールすることができます。

何故Microsoft以外のソフトもダウンロードできるのかというと、このようなgithubリポジトリがあります。
github.com
Microsoftの翻訳に習うとWindows パッケージ マネージャー コミュニティ リポジトリというもので、誰でもパッケージが追加できるようになっているのです。
試しにリポジトリ内で、winget-pkgs/manifests/g/に移動すると、Googleのフォルダがありました。

このフォルダにはGoogleが作ったChromeやGoogleDrive、Firebaseといった名前が並んでいます。
ここにyamlファイルが格納されており、それぞれのソフトについてインストールURLや更新日、バージョンなどの情報が格納されているのです。
このフォルダがたくさんあることで、Microsoft以外の色々なソフトのインストールに対応しているという訳です。

ダウンロードオンリー

さて、だいぶ脱線しましたが、最初に興味を持ったダウンロード機能を試してみましょう。
ダウンロードだけをするには、aptgetと同じくwingetのあとにdownloadをつけるだけです。
今回はpowertoysをインストールしてみるべく、下記のコマンドを実行してみます。

$ winget download powertoys


すると、2パッケージ出てくるので、今回は下のMicrosoft.PowerToysをダウンロードしてみます。

選択するには正式なIDを入れる必要があるので、コマンドは下記のようになりますね。

$ winget download Microsoft.PowerToys

すると、しばらくダウンロードした後にDownloadフォルダに下記のようなファイルがダウンロードされました。

確認のため、この時点でPowerToysが実行可能かスタートメニューから探してみると、インストールがまだなので見つかりません。
そして、PCをインターネットから遮断し、オフラインになっている状態で先程ダウンロードしたインストールファイルを実行します。

すると、普通のインストーラが起動しインストールをすることができます。
当然、インストール後にはスタートメニューからPowerToysを起動することができます。

これにて、予めインストーラをダウンロードしてオフラインでもインストールすることができることを確認できました!