概要
今回の記事では、Windowsのパッケージマネージャであるwingetを丁寧に解説します。
これまでWindowsのパッケージマネージャは、「chocolatey 」や「scoop」がありました。
Macのbrewのような公式のパッケージマネージャはなかったが、ついに マイクロソフト公式のパッケージマネージャ「winget」 が2020年6月30日に初回リリースされました。
とても良さそうだったので、記事にまとめました。
Windowsパッケージマネージャwingetを学んでいきましょう。
wingetを使ってソフトのインストール、更新(アップグレード)、削除(アンインストール)など について学ぶことができます。
前提条件
- Windows 10 1709 (ビルド 16299) 以降のOSであること
目的(ゴール)
今回の記事では、Windows公式のパッケージマネージャ winget を使って node.js などをインストールしたりする方法について学びます。
メリット
wingetを使えるようになると、
- ソフトをコマンドラインでインストールできるため、インストール手順書などを作るときにいちいち画面キャプチャを取得する必要がなくなる。
- 複数のパソコンにソフトをインストールする手間が減る。(パソコンの引っ越しも容易になる)
- コマンドラインでインストールできるのでバッチ処理もできる。
など、パソコンの環境構築がラクになります。
目次
内容
winget のよく使いそうな操作を丁寧に解説します。
今回は題材としてnodejsをと取り扱います。
より詳しい内容は下記の公式サイトを参考にしてみてください。
コマンドプロンプトを開く
今回はコマンドプロンプト(cmd)を使用します。
管理者として実行すると余計なダイアログが表示されなくてすみます。
wingetのコマンドが使用できるか確認
wingetのバージョンが確認できればOKです。
C:\Windows\system32>winget -v
v1.3.2091
万一 wingetコマンドが使用できない場合は、Microsoft Store からwingetをインストールしましょう。
インストールするソフトを探す
さっそく、nodejsを探してみます。インストールしたいソフトの検索はsearch
コマンドを使用します。
searchコマンド実行
winget search nodejs
searchコマンド実行結果
予想以上に検索結果が表示されましたが、公式のNode.jsは下記の3つだと思われます。
- Node.js LTS 16.16.0 (推奨版)
- Node.js 18.7.0 (最新版)
- Node.js Nightly 19.0.0 (開発中版)
名前 ID バージョン 一致 ソース
-----------------------------------------------------------------------------------
Node.js OpenJS.NodeJS 18.7.0 Moniker: nodejs winget
Volta Volta.Volta 1.0.8 Tag: nodejs winget
微信开发者工具 Tencent.wechat-devtool 1.05.2108130 Tag: nodejs winget
QQ小程序开发者工具 Tencent.qq-devtool 0.5.5-beta.5 Tag: nodejs winget
pnpm 7 pnpm.pnpm.7 7.9.5 Tag: nodejs winget
pnpm 6 pnpm.pnpm.6 6.34.0 Tag: nodejs winget
Node.js Nightly OpenJS.NodeJS.Nightly 19.0.0 Tag: nodejs winget
Node.js LTS OpenJS.NodeJS.LTS 16.16.0 Tag: nodejs winget
RunJS lukehaas.RunJS 2.5.1 Tag: nodejs winget
Laragon LeNgocKhoa.Laragon 5.0.0.210523 Tag: nodejs winget
Open Video Downloader jely2002.youtube-dl-gui 2.4.0 Tag: nodejs winget
NVM for Windows CoreyButler.NVMforWindows 1.1.9 Tag: nodejs winget
CodeLite CodeLite.CodeLite 15.0.0 Tag: nodejs winget
下記が表示された場合は内容を確認した上で、"Y"を入力し同意しましょう。
> C:\Windows\system32>winget search nodejs
> 'msstore' ソースを使用するには、使用する前に次の契約を表示する必要があります。
> Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
> ソースが正常に機能するには、現在のマシンの 2 文字の地理的リージョンをバックエンド サービスに送信する必要があります (例: "US")。
>
> すべてのソース契約条件に同意しますか?
> [Y] はい [N] いいえ:
ソフトをインストールする
今回は Node.js LTS(推奨版)をバージョン指定(16.15.0)でインストールします。install
コマンドを使用します。
installコマンド実行
winget install "Node.js LTS" -v 16.15.0
今回の Node.js LTS のように空白がある場合は”(ダブルクォート)で囲みましょう。
バージョン(-v)を指定しない場合、最新バージョンがインストールされます。
installコマンド実行結果
「インストールが完了しました」と表示されればOKです。
C:\Windows\system32>winget install "Node.js LTS" -v 16.15.0
見つかりました Node.js LTS [OpenJS.NodeJS.LTS] バージョン 16.15.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
Downloading https://nodejs.org/dist/v16.15.0/node-v16.15.0-x64.msi
██████████████████████████████ 27.2 MB / 27.2 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました
listコマンド実行
インストールされた Node.js LTS v16.15.0(推奨版)を確認します。list
コマンドを使用します。
winget list "Node.js LTS"
listコマンド実行結果
Node.js LTS 16.15.0 がインストールされていることが確認できます。
C:\Windows\system32>winget list "Node.js LTS"
名前 ID バージョン 利用可能 ソース
----------------------------------------------------
Node.js OpenJS.NodeJS.LTS 16.15.0 16.16.0 winget
利用可能(バージョン)を確認すると v16.16.0 とあり、更新(アップグレード)できることがわかります。
ソフトを更新(アップグレード)する
インストールされた Node.js LTS v16.15.0(推奨版)をv16.16.0 に更新(アップグレード)します。upgrade
コマンドを使用します。
upgradeコマンド実行
winget upgrade "Node.js LTS"
upgradeコマンド実行結果
Node.js LTS 16.16.0 でインストールされている(更新されている)ことが確認できます。
C:\Windows\system32>winget upgrade "Node.js LTS"
見つかりました Node.js LTS [OpenJS.NodeJS.LTS] バージョン 16.16.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
Downloading https://nodejs.org/dist/v16.16.0/node-v16.16.0-x64.msi
██████████████████████████████ 27.2 MB / 27.2 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました
ソフトを削除(アンインストール)する
Node.js LTS 16.16.0 を削除(アンインストール)します。uninstall
コマンドを使用します。
uninstallコマンド実行
winget uninstall "Node.js LTS"
uninstallコマンド実行結果
「正常にアンインストールされました」と表示されればOKです。
C:\Windows\system32>winget uninstall "Node.js LTS"
見つかりました Node.js LTS [OpenJS.NodeJS.LTS]
パッケージのアンインストールを開始しています...
正常にアンインストールされました
ソフトを一括でインストールする
- 一括でインストールするソフトウェアの情報をJSONファイルの雛形をexportコマンドで取得します。
- 取得した雛形ファイルを編集し、一括でインストールしたいソフトの情報(ここでは
Node.js
とWindowsTerminal
の2つ)を記載します。
exportコマンド実行
インストールされたソフト(バージョン情報付き)のJSONファイル(winget-export.json)を取得します。
C:\Windows\system32>winget export -o winget-export.json --include-versions
exportコマンド実行結果
wingetでインストールしていないソフトは管理できないようですが、今回は気にせず進めます。
C:\Windows\system32>winget export -o winget-export.json --include-versions
インストールされているパッケージのバージョンは、どのソースからも利用できません: Notepad++ Editor
~ 省略 ~
インストールされているパッケージのバージョンは、どのソースからも利用できません: Amazon.NoSQLWorkbench 3.3.0
ソフト管理をwingetに統一したい場合は、対象のソフトをwingetで再インストールしましょう。
importコマンド実行
雛形ファイル(json)に指定したファイルを使用して、複数のソフト(ここでは2つ)をインストールしてみます。
雛形ファイルの編集
2取得した雛形ファイル(winget-export.json)を編集します。一括でインストールしたいソフトの情報(ここではNode.js
とWindowsTerminal
の2つ)を記載します。
{
"$schema" : "https://aka.ms/winget-packages.schema.2.0.json",
"CreationDate" : "2022-08-28T00:18:55.941-00:00",
"Sources" :
[
{
"Packages" :
[
{
"PackageIdentifier" : "Microsoft.WindowsTerminal",
"Version" : "1.14.2281.0"
},
{
"PackageIdentifier" : "OpenJS.NodeJS.LTS",
"Version" : "16.16.0"
}
],
"SourceDetails" :
{
"Argument" : "https://cdn.winget.microsoft.com/cache",
"Identifier" : "Microsoft.Winget.Source_8wekyb3d8bbwe",
"Name" : "winget",
"Type" : "Microsoft.PreIndexed.Package"
}
}
],
"WinGetVersion" : "1.3.2091"
}
importコマンド実行
C:\Windows\system32>winget import winget-export.json
importコマンド実行結果
Node.js
とWindowsTerminal
の2つがインストールされていることが確認できます。
C:\Windows\system32>winget import -i winget-export.json
(1/2) 見つかりました Windows Terminal [Microsoft.WindowsTerminal] バージョン 1.14.2281.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
██████████████████████████████ 100%
インストールが完了しました
(2/2) 見つかりました Node.js LTS [OpenJS.NodeJS.LTS] バージョン 16.16.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
Downloading https://nodejs.org/dist/v16.16.0/node-v16.16.0-x64.msi
██████████████████████████████ 27.2 MB / 27.2 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました
まとめ
wingetはがいかがでしたか?
下記のコマンドを使用することにより、Windowsのソフトウェア管理も便利になったと思います。
winget search
:インストールするソフトを探すwinget install
:ソフトをインストールするwinget upgrade
:ソフトを更新(アップグレード)するwinget uninstall
:ソフトを削除(アンインストール)するwinget export | import
:ソフトを一括でインストールする
wingetはマイクロソフト公式のパッケージマネージャなので、今後デファクトスタンダードになっていく可能性があり、今のうちから使い慣れておいて損はないと思います。
本記事を読んでいただきありがとうございまいた。
少しでもみなさまのお役に立てばうれしいです。