仕事用のマシンをWindows 11で新しく組むことにした。今使っているマシンのCPUは第4世代Coreなので、メモリー増設もCPU交換も限界。そもそもWindows 11ではサポートされていないため、潮時と考えた。
こういう場合は問題を引きずらないように、Windowsは新しいドライブに新規インストールすることにしている。ドライブのイメージコピー(クローン)は楽だが、潜在的なものを含めトラブルも「コピー」してしまう可能性がある。
Windows XPの頃に比べれば、システムの引っ越しはラクになったが、相変わらずアプリケーションは手作業で入れ直す必要がある。環境設定作業が面倒になるので、どうしても代替品がないときを除いて、筆者はインストール台数が制限されているアプリケーションは使わないことにしている。いきなりマシンが動かなくなった場合に、短時間で環境を再構築できない可能性があるからだ。そういうわけで利用しているソフトウェアの多くがインストール制限のないものだ。
今回は、この引っ越しにともなうアプリケーションのインストールにMicrosoftのパッケージマネージャーwingetを使ってみることにした。
Windows用のパッケージ管理ツール「Winget v1.4」を使う
Wingetは、現在プレビュー版がv1.4.2161、安定版がv1.3.2091であり、今回はプレビュー版を利用した。Wingetに関しては、これまでの連載で何回か扱っている(「一般向けの配布も開始されているWindows用のパッケージ管理ツール「winget」がv1.1に」)。
また、Microsoftの以下のページにドキュメントがある。使い方などに関しては上記の過去記事と、Microsoftの公式ドキュメントを参照していただきたい。
●winget ツールを使用したアプリケーションのインストールと管理
https://docs.microsoft.com/ja-jp/windows/package-manager/winget/
現在のWingetでは、exportサブコマンドを使うことで、そのマシンにインストールされているアプリケーションのうち、Wingetでインストール可能なプログラムのリストをJSON形式で出力することができる。
引っ越し先のマシン上で、このJSONファイルをWingetのimportサブコマンドで読み込むことで、リストにあるアプリケーションのインストールができる。ただし、この方法で可能なのは、Wingetのリポジトリに登録されているフリーのソフトウェア、オープンソース系のアプリケーション、Microsoftストアの一部のアプリケーションに限られる。ユーザーの使い方によっては、インストールできるプログラムは少ないかもしれない。しかし、時間はかかるものの、多数のプログラムを一気にインストールできるので、作業効率は悪くない。
実際に使ってみると、いくつか注意が必要な点があった。1つは、アプリケーションのバージョンの問題だ。元のマシンにインストールされているアプリケーションは、必ずしも最新版ではない。そこに、新しいバージョンでは動作しない、何か問題が発生しているといった「理由」があった場合もあれば、ただ単純にアップデートをサボっていた場合もある。
しかしWingetは、こうした事情を察してくれるわけではない。可能なのは、引っ越し元でexportする場合にバージョン情報を付けること、importするときにバージョン情報に従うか無視するか、だけである。なお、winget upgradeで、プログラムを一気に最新版にアップデートさせることも可能だ。
もう1つは、もはや不要なランタイムがexportのリストに含まれる可能性があることだ。Wingetは、export時には依存関係で入ったプログラムなのかどうかを区別していないため、たとえば、C/C++のランタイムはすべて見つけ出し、wingetでインストール可能なものはexportコマンドで出力する。
アプリケーションをアンインストールするとき、同時にインストールしたC/C++ランタイムまではアンインストールしてくれないことが多い。他のアプリが使っている可能性があるからだ。そのため、使わなくなった、あるいはアンインストールしたアプリケーション用のランタイムなどがJSONリストに含まれている可能性がある。
もう1つは、Wingetは歴史が浅いため、必ずしもすべてのバージョンがリポジトリに登録されているとは限らない点だ。複数のバージョンが共存可能なソフトウェアであっても、希望のバージョンはWingetではインストールできない可能性がある。
こうした問題点があるため、Wingetでのお引っ越しは「余計なものが入っても気にしないから簡単にする」あるいは「手作業をしてでも効率良くやりたい」のどちらかになる。どちらの場合でも、複数のソフトウェアを手動でダウンロードしてインストールするよりは楽ではある。

この連載の記事
-
第472回
PC
WindowsのエラーをMicrosoftに送信するテレメトリ機能を理解する -
第471回
PC
Windowsのコマンドラインでエイリアスを使う -
第470回
PC
Windows用のパッケージマネージャー「Winget」 プレビュー版で機能が充実してきた -
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? -
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる -
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う - この連載の一覧へ