新PCセットアップも開発環境構築も爆速に!Windows Package Manager (winget) 完全ガイド
新しいWindows PCを手に入れたとき、最初に何をしますか? 多くの人は、Webブラウザ、開発ツール、チャットアプリなど、必要なソフトウェアを一つずつダウンロードし、インストールしているのではないでしょうか。また、既存のPCでも、アプリの更新通知にうんざりしたり、一つずつ手動でアップデートする手間を感じているかもしれません。
こうした手間のかかる作業を、コマンド一つで劇的に変えるツールがあります。それが「Windows Package Manager」、通称「winget」です。この記事では、wingetの基本から、新PCのセットアップ、開発環境の構築、さらには自動更新まで、実践的な活用法を詳しく紹介します。
Windowsのアプリ管理を劇的に変える「winget」とは?
wingetは、Microsoftが開発したWindows用のパッケージマネージャーです。パッケージマネージャーとは、ソフトウェアの検索、インストール、更新、アンインストールといった管理作業を自動化するツールのこと。Linuxにおけるaptやyum、macOSにおけるHomebrewのような存在です。
これまでWindowsでは、これらの作業はGUIのインストーラーやストアアプリを通じて手動で行うのが一般的でした。しかし、wingetを使えば、コマンドラインからこれらの操作を一元的に実行できるようになります。
Windows 11には標準で搭載されており、すぐに使い始められます。Windows 10の場合でも「App Installer」をMicrosoft Storeから入手すれば利用可能です。
なぜwingetが便利なのでしょうか?
- インストールが簡単:コマンド一つでアプリをインストールできます。
- 更新が一括:インストール済みのアプリをまとめて最新版に更新できます。
- 移行がスムーズ:現在のPCのアプリ構成をエクスポートし、新しいPCにまとめてインポートできます。
- 開発効率向上:必要な開発ツール群をスクリプトで一括導入できます。
wingetの裏側には、GitHubの「microsoft/winget-cli」リポジトリ(2.4万以上のスターを獲得)と、コミュニティによって管理されるパッケージ定義の「microsoft/winget-pkgs」リポジトリがあります。これにより、多くのソフトウェアがwingetを通じて利用可能になっています。
まずはここから!wingetの基本コマンドを使いこなす
wingetを使うには、PowerShellまたはコマンドプロンプトを開きます。管理者権限は必須ではありませんが、一部の操作では必要になる場合があります。
アプリを検索する
winget search コマンドを使って、インストールしたいアプリを検索します。例えば、「Visual Studio Code」を探してみましょう。
winget search "Visual Studio Code"
実行すると、以下のような結果が表示されます。
名前 ID バージョン マッチ
------------------------------------------------------------------
Visual Studio Code Microsoft.VisualStudioCode 1.85.1 Visual Studio Code
Visual Studio Code Insiders Microsoft.VisualStudioCode.Insiders 1.86.0 Visual Studio Code
検索結果には「ID」が表示されます。このIDが、後述するインストールやアンインストールで必要になる識別子です。
アプリをインストールする
検索で見つけたIDを使って、アプリをインストールします。ここではVisual Studio Codeをインストールしてみましょう。
winget install Microsoft.VisualStudioCode
インストールが始まると、進行状況が表示されます。完了すると「正常にインストールされました」と表示されます。
もし、検索結果が複数あり、完全一致させたい場合は --id と -e オプションを組み合わせます。
winget install --id Microsoft.VisualStudioCode -e
-e は「exact match」の略で、指定したIDに完全に一致するパッケージを対象とします。
インストール済みアプリの一覧を表示する
winget list コマンドで、現在PCにインストールされているパッケージの一覧を確認できます。wingetでインストールしたものだけでなく、多くのデスクトップアプリも表示されます。
winget list
アプリを更新する
インストール済みのアプリを最新バージョンに更新することは、セキュリティと機能の両面で重要です。
まず、更新可能なアプリがあるかを確認するには winget upgrade を実行します。
winget upgrade
利用可能な更新がある場合、一覧が表示されます。
特定のアプリだけを更新したい場合は、そのアプリのIDを指定します。
winget upgrade Microsoft.VisualStudioCode
すべての更新を一括で適用したい場合は --all オプションを使います。
winget upgrade --all
このコマンド一つで、多くのアプリが最新の状態になります。
アプリをアンインストールする
不要になったアプリは winget uninstall コマンドで削除できます。
winget uninstall Microsoft.VisualStudioCode
インストール時と同様に、IDを指定して実行します。
実践!wingetで実現する快適なWindows環境
ここからは、wingetをさらに活用し、Windows環境をより快適にするための実践的なユースケースを紹介します。
新PCの初期セットアップを爆速化
新しいPCを購入した際、以前の環境と同じアプリを一からインストールするのは大変な作業です。wingetを使えば、この作業を劇的に簡素化できます。
1. 現在のPCのアプリ構成をエクスポートする
既存のPCで、インストールされているアプリの情報をJSON形式でファイルに出力します。
winget export -o packages.json
この packages.json ファイルには、wingetが認識するアプリのIDとバージョン情報が記録されます。
packages.json の中身は以下のような形式です。
{
"$schema": "https://aka.ms/winget-packages.schema.2.0.json",
"CreationDate": "2023-12-20T05:00:00.000-00:00",
"Sources": [
{
"Id": "winget",
"Packages": [
{
"PackageIdentifier": "Microsoft.VisualStudioCode"
},
{
"PackageIdentifier": "Git.Git"
},
{
"PackageIdentifier": "Mozilla.Firefox"
}
]
}
]
}
2. 新しいPCにアプリを一括インストールする
新しいPCで、先ほどエクスポートした packages.json ファイルを使ってアプリを一括インストールします。packages.json ファイルを新しいPCにコピーしてから、以下のコマンドを実行します。
winget import -i packages.json
このコマンドを実行すると、packages.json に記述されたすべてのアプリが自動的にインストールされます。手動で一つずつダウンロード・インストールする手間が省け、環境構築の時間を大幅に短縮できます。
開発ツールを一括インストールする
開発者にとって、Git、Node.js、Visual Studio Code、Pythonといったツールは必須です。これらもwingetを使えば、コマンド一つでまとめて導入できます。
例えば、これらのツールを一括でインストールするには、次のようにコマンドを連結して実行できます。
winget install --id Git.Git -e && winget install --id Nodejs.Nodejs -e && winget install --id Microsoft.VisualStudioCode -e && winget install --id Python.Python.3.11 -e
&& でコマンドを繋ぐことで、前のコマンドが成功した場合に次のコマンドが実行されます。これにより、必要な開発環境を効率的に構築できます。Pythonのバージョンは適宜調整してください。
定期アップデートを自動化する
アプリの更新はセキュリティを維持する上で重要ですが、手動での確認は忘れがちです。winget upgrade --all コマンドとWindowsのタスクスケジューラを組み合わせることで、定期的な自動更新を設定できます。
タスクスケジューラを開く Windowsのスタートメニューから「タスクスケジューラ」を検索して開きます。
新しいタスクを作成する 「操作」メニューから「基本タスクの作成」または「タスクの作成」を選択します。
タスクの設定
- 名前: 例えば「winget_auto_update」といった分かりやすい名前を付けます。
- トリガー: 「毎日」「毎週」など、更新を実行したい頻度を設定します。
- 操作: 「プログラムの開始」を選択し、以下のように設定します。
- プログラム/スクリプト:
powershell.exe - 引数の追加:
-NoProfile -ExecutionPolicy Bypass -Command "winget upgrade --all --silent"
- プログラム/スクリプト:
--silent オプションを付けることで、更新がバックグラウンドで静かに実行され、ユーザーの操作を妨げません。また、管理者権限が必要な更新がある場合、タスクのプロパティで「最上位の特権で実行する」にチェックを入れる必要があります。
wingetをさらに使いこなすためのヒントと注意点
wingetは非常に強力なツールですが、いくつかの注意点も理解しておくことで、よりスムーズに活用できます。
管理者権限が必要な操作
多くのアプリはユーザープロファイル内にインストールされますが、システム全体にインストールされるアプリや、システム設定を変更するアプリは管理者権限が必要です。
例えば、特定のアプリをシステム全体にインストールしたい場合、--scope machine オプションを使用することがあります。
winget install --id <PackageID> --scope machine
このコマンドを実行する際は、PowerShellやコマンドプロンプトを「管理者として実行」する必要があります。
GUI前提のアプリとサイレントインストール
wingetは基本的にサイレントインストール(ユーザーの介入なしに自動でインストールを進める方式)を試みます。しかし、中にはGUIでの操作が必須だったり、サイレントインストールに対応していないインストーラーもあります。
そのようなアプリの場合、wingetでのインストールが途中で止まったり、失敗したりする可能性があります。エラーが発生した場合は、そのアプリをwingetでインストールできないか、手動でのインストールが必要かを検討してください。
wingetの背後にあるもの
wingetのパッケージ定義は、GitHubの「microsoft/winget-pkgs」リポジトリで管理されています。これはコミュニティ主導で、新しいパッケージが日々追加・更新されています。もし、探しているアプリがwingetで見つからない場合は、このリポジトリにパッケージの追加を提案することもできます。
これにより、wingetは非常に多くのソフトウェアに対応し、透明性が高く、信頼できるパッケージ管理を実現しています。
wingetは、Windowsでのアプリ管理を大きく変える可能性を秘めたツールです。手動でのインストールや更新から解放され、より多くの時間を本来の作業に充てられるでしょう。
まずは手始めに、お使いのPCで winget upgrade --all を実行してみてください。眠っていたアプリの更新が見つかるかもしれません。
まとめ・次のステップ
この記事が役に立ったら、ブログのメールマガジンへ登録してください。 AI活用・個人開発・副業に関する最新情報を週1回お届けします。
このブログでは、会社員をしながら副業でSaaSを開発する過程をリアルに発信しています。