見出し画像

Windows標準のパッケージ管理ツール「Winget」について調べてみた


はじめに


こんにちは、SHIFTのITソリューション部に所属しているHoribeです。

突然ですが、みなさんはWindowsのパッケージ管理ツールと聞いて何を思い浮かべるでしょうか?

macOSであればHomebrew、Linux系であればaptやyumなどが有名で、OSとセットのようなイメージで使われている方が多いかと思います。一方で、Windowsのパッケージ管理システムは知らないという人も多いかもしれません。

実はWindowsにもWindows Package Manager、通称Wingetというパッケージ管理ツールが存在します。本記事ではこのWingetについて、ツールが開発された背景や基本的な使い方、使用するメリットについて解説しようと思います。

Wingetとは


Winget(正式名称: Windows Package Manager)は、Microsoftによって開発されたWindows標準のパッケージ管理ツールです。一般的なパッケージ管理と同様に、コマンドラインから簡単にソフトウェアのインストール、アップデート、アンインストールを行うことができます。

Wingetが登場する以前にも、WindowsにはChocolateyScoopなどのサードパーティ製のパッケージ管理ツールが存在していました。これらのツールと比べてWingetが優れているところは、Microsoftが公式に提供しているという点だと思います。公式のサポートがあることで、OSとの互換性やセキュリティにおいて信頼性が高いと考えられます。一方で、提供しているパッケージ数はWingetが約6000個、Chocolateyが約9000個となっています(2024年6月時点)。これから差は縮まっていくと思いますが、提供しているパッケージ数に関しては歴史が長いサードパーティ製のツールに軍配が上がるようです。

非公式ですが、UniGetUIというWingetを使うためのGUIアプリケーションも存在します。

導入手順


Wingetは、Windows 10バージョン1809以降およびWindows 11に標準で搭載されています。したがって、最新のWindows Updateをインストールしていれば、すでにWingetが利用可能な状態になっています。上記より古いバージョンを使用している場合は、Microsoft Storeから「アプリ インストーラー」をインストールすることでWingetを利用できるようになります。

基本コマンド


Wingetの基本的なコマンドは以下になります。

ソフトウェアの検索

winget search <パッケージ名>

ソフトウェアのインストール

winget install <パッケージ名>

インストール済みソフトウェアの一覧表示

winget list

ソフトウェアの更新

個別: winget upgrade <パッケージ名>

一括: winget upgrade --all

ソフトウェアのアンインストール

winget uninstall <パッケージ名>

使い方


実際にWingetを使ってソフトウェアをインストールする流れを解説します。
今回はGoogle Chromeをインストールしてみます。
まずはWingetで管理可能なパッケージにGoogle Chromeがあるか調べます。

winget search chrome

searchコマンドを入力すると、以下のように検索結果が表示され、IDやバージョンなどが確認できます。

名前             ID               バージョン
------------------------------------------------
Google Chrome    Google.Chrome    127.0.6533.120
...              ...              ...

IDを引数にして、インストールします。

winget install Google.Chrome

installコマンドを入力すると、最新バージョンのGoogle Chromeがダウンロードされ、インストールまで自動的に完了します。完了後は通常のインストーラーを用いた場合と同様にスタートメニューから起動できます。

インストール済みのアプリケーションを最新バージョンにアップデートすることもコマンド一つで簡単に行えます。

winget upgrade --all

upgradeコマンドを入力すると、すべてのアプリケーションを一括で更新することができます。 本記事では割愛しますが、タスクスケジューラと組み合わせることで定期的にupgradeコマンドを実行し、自動的に最新のバージョンに保つことも可能です。

また、PCを交換する・追加する際、アプリケーションの移行も簡単に行うことができます。

winget export --output <ファイルパス>

exportコマンドを入力すると、outputオプションで指定したパスにJSONファイルが出力されます。 このファイルにはインストール済みのアプリケーション情報が記載されています。

出力したJSONファイルを移行先のPCに配置します。

winget import --import-file <ファイルパス>

importコマンドを入力すると、import-fileオプションで指定したパスにあるJSONファイルを読み込みます。 インストールされていないアプリケーションはインストールされ、インストールされているアプリケーションも最新版にアップデートされます。 プロジェクトでチーム開発をする際、全員がWindows環境であれば開発環境のセットアップなどにも活用できると思います。

おわりに


今回の記事では、Windows標準のパッケージ管理ツールであるWingetについてまとめました。パッケージ管理ツールは依存関係が複雑になることもあり、バグが発生するとユーザーへの影響が非常に大きいです。WingetはMicrosoft公式のツールであるため、定期的なアップデートやバグ修正など、サードパーティアプリよりも安心して使用できる強みがあります。現時点では発展途上な機能もありますが、今後ますます改善されユーザーも増えていくのではないかと思います。

Wingetを活用することで、効率的にWindows環境を整えることができます。導入や使い方も難しくないため、エンジニアはもちろん、ぜひエンジニア以外の方にも使っていただけたら幸いです。


執筆者プロフィール: Rintaro Horibe
ITソリューション部に所属。主に開発業務を担当している。 マイブームは音楽と散歩。

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

PHOTO:UnsplashBram Van Oost