PowerShellからLinuxをアップデートする

前回までに作ってきた$PROFILEによって、PowerShellからWSLで動作しているLinuxディストリビューションのコマンドをネイティブコマンドのように利用できるようになった。これまでの調整で、大きな問題点はほぼ解決されているはずだ。今回は、この成果を確認してみよう。なお、$PROFILEについては前回の稿末に掲載しているのでそちらを参照していただきたい。

まず、PowerShellからwslfetchやneofetchコマンド(どちらもLinuxのコマンド)を実行してみると、次のようにきちんと動作している。

PowerShellからwslfetchコマンドやneofetchコマンドを実行したところ

WSLのデフォルトのLinuxディストリビューションはUbuntuだ。今から新規セットアップすればUbuntu 20.04 LTSが使われる。上記スクリーンショットでもUbuntu 20.04 LTSが動作していることがわかると思う。この環境はMicrosoft Store経由でインストールが行われている。

Microsoft Storeからインストールしたアプリケーションは、Microsoft Storeや設定アプリからアップデートを行える。だが、WSLで使うLinuxディストリビューションは仕組みが異なっているため、各Linuxディストリビューションが提供している法でアップデートやアップグレードを実施する必要がある。

しかし、それも結局は「コマンドを実行する」ため、PowerShellから行うことができる。まず、次のように「apt update」で最新のメタデータを取得する。

「sudo apt update」でメタデータを更新

後は「suto apt upgrade」でアップグレードを実施すれば最新版へ更新される。

「sudo apt upgrade」でアップグレード開始

「sudo apt upgrade」でアップグレード終了

最初に実行したwslfetchコマンドやneofetchコマンドを実行してみると、次のようにアップデートされたことを確認できる。

wslfetchコマンド/neofetchコマンドを実行してアップグレードされたことを確認

本当にアップグレードされているかどうかは、Ubuntu 20.04 LTS側から同じコマンドを実行すると確認できる。

Ubuntu 20.04 LTSからwslfetchコマンド/neofetchコマンドを実行して確認

「apt update」と「apt upgrade」は通常、Ubuntuにログインした状態で行う作業だが、このように”作り込んだ$PROFILE”を活用するとPowerShellからネイティブなコマンドのようにして実行することができる。

使いたいコマンドが見つからなければ「apt list」で検索して「apt install」でインストールすればよい。

新しいコマンドをインストールすることもできる

Windowsの管理もするし、Linuxのコマンドもよく使うという方ならば、この状態のPowerShellはかなり扱いやすいのではないだろうか。相互の環境を行き来するなかではちょっとした違いがストレスになるが、それを最小限に抑えつつ、美味しいところを使えるようになった。$PROFILEで簡単な設定をしたというより、やや大掛かりな仕組みを導入したような感じになってきたが、将来に渡って楽ができるのだからもうけものだろう。

日々の作業が楽になるなら、自分の環境は自分の使いやすいように変更してしまえばよい。ただし、本連載でも毎回取り上げているように、その変更はなにも一度に行う必要はない。気がついたときに機能を拡張/整理したり、無駄を削除したりと細かい調整を繰り返して$PROFILEを鍛えていけばよいのだ。

しばらく$PROFILEを調整していけばわかると思うが、$PROFILEの中身を複雑にしすぎると逆に$PROFILEが問題の原因になり始めることがある。$PROFILEの内容はあくまでもシンプルに、見通し良く、必要最小限のものだけを書くようにしておきたい。そしてコメントには「何をしているのか」ではなく「なぜそれをしているのか」を書くようにしておく。何をしているのかはスクリプトを読めばわかるので、なぜそのスクリプトを書いたのかという「理由」を記述しておくことのほうが、未来の自分にとって有益だ。

また、$PROFILEを書くことはPowerShellの理解を深めていく上でも役に立つ。PowerShellはシェルのような見た目をしているものの、実際にはオブジェクト指向のプログラミング言語であるため、本格的に使おうとするといろいろな規則を理解する必要が出てくるからだ。$PROFILEを組み上げていく過程で、その機能を調べて習得していくことができる。ぜひとも$PROFILEの活用に取り組んでいただきたい。