仕事用のマシンを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でのお引っ越しは「余計なものが入っても気にしないから簡単にする」あるいは「手作業をしてでも効率良くやりたい」のどちらかになる。どちらの場合でも、複数のソフトウェアを手動でダウンロードしてインストールするよりは楽ではある。
この連載の記事
-
第424回
PC
Windowsの基本機能であるクリップボードについてあらためて整理 -
第423回
PC
PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? -
第422回
PC
Windows 11の目玉機能が早くも終了、Windows Subsystem for Android(WSA)を振り返る -
第421回
PC
進化しているPowerToys LANで接続したマシンでキーボード/マウス共有機能などが追加 -
第420回
PC
Windowsプレビュー版に搭載されたsudoを試す -
第419回
PC
Windows Insider Previewが変わって、今秋登場のWindows 11 Ver.24H2の新機能が見えてきた? -
第418回
PC
Windows 11のスマートフォン連携は新機能が追加されるなど、いまだ進化している -
第417回
PC
Windows 11のスマートフォン連携機能をあらためて使ってみる -
第416回
PC
Windowsセキュリティ(Defender)をコマンドラインで扱う -
第415回
PC
ConvertFrom-Stringを使って、テキストデータをテンプレートで読み込む -
第414回
スマホ
Windows Subsytem for Linux(WSL)が昨年9月のアップデートでファイアウォール対応になった - この連載の一覧へ