仕事用のマシンを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でのお引っ越しは「余計なものが入っても気にしないから簡単にする」あるいは「手作業をしてでも効率良くやりたい」のどちらかになる。どちらの場合でも、複数のソフトウェアを手動でダウンロードしてインストールするよりは楽ではある。
この連載の記事
-
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 -
第447回
PC
この秋登場のWindows 11の新バージョン、Ver.24H2の状況を見る -
第446回
PC
Windows 11のフォトアプリがUWPからWin32アプリになったことで今更わかるUWPの問題点 -
第445回
PC
次期Windows 11ではAndroidのファイルをエクスプローラーからアクセス可能になる -
第444回
PC
外部ファイルをExcelに読み込む際の作業を効率化するPower Queryの活用 -
第443回
PC
Windows Terminalで採用されたCascadia Codeフォントを使うとプログラムを書くとき断然見やすい -
第442回
PC
Copilot+ PCで実現されるローカル推論で「対クラウド企業」を指向するMicrosoft -
第441回
PC
WSL以前から40年以上続く、Windows(Microsoft)とUNIXとの関わり -
第440回
PC
そもそも「Copilot+ PC」とは何なのか? -
第439回
PC
今更more.comを使うのか!? Windowsでのページングを考える - この連載の一覧へ