仕事用のマシンを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でのお引っ越しは「余計なものが入っても気にしないから簡単にする」あるいは「手作業をしてでも効率良くやりたい」のどちらかになる。どちらの場合でも、複数のソフトウェアを手動でダウンロードしてインストールするよりは楽ではある。

この連載の記事
-
第399回
PC
Windowsではプロセスからプログラムに関するさまざまな情報が得られる -
第398回
PC
Windows Subsystem for Androidの進化を確認 エクスプローラーからのファイルのドラッグ&ドロップが可に -
第397回
PC
Windowsにおけるディスク、ドライブ、パーティションの扱いの違い -
第396回
PC
Windows 11における新規作成コンテキストメニュー -
第395回
PC
Windowsの「近距離共有」は微妙だが、Windows版も登場した「ニアバイシェア」は使える -
第394回
PC
コマンドの出力が長いとき、PowerShellではとりあえずselect-objectでなんとかする -
第393回
PC
Windows 11のWinUI3対応で、MicrosoftはWin32アプリ、さらにWindows自体を改良しようとしている -
第392回
PC
あらためてWindowsにおける2進数、10進数、16進数について -
第391回
PC
WindowsのNTFS/ReFSに搭載されている「再解析ポイント」とは何か? -
第390回
PC
この秋登場予定のWindows 11 Ver.23H2はどうなるか? -
第389回
PC
Windowsにおけるファイルリンクについてあらためて説明する - この連載の一覧へ