Windows 10の次期アップデートでは
導入されるUbuntuのバージョンも上がる
現在Windows Insider Programで配布されているPreview版では、Windows Subsystem for Linux(Bash on Windowsとも、以下WSLと略す)が改良される。
大きな変更の1つは、導入されるUbuntu Linuxのバージョンが上がることだ。もう1つは、WSLとWindows環境の統合化のひとつとして、WSL側からWindows側のアプリケーション(EXEファイル)を起動可能になる。
RS1(Windows Ver.1607)では、WSLとWindowsは、同じマシン内で動作し、ウィンドウの1つでWSLが動作しているが、両者はほとんど独立しており、WSL側からWindowsへのファイルのアクセスができるだけだ。
しかしRS2では、WSLからWindowsのコマンドを起動できるようになる。このため、コマンドラインパラメーターを使い、Windows側のアプリケーションになにがしかの情報を渡すことも可能になる。起動は拡張子を含めてnotepad.exeのように指定する。
なお、RS2プレビュー版では自動的にWindowsのパス設定がWSL側に取り込まれるようだ。ざっと試したところでは、WSLの/mnt/以下から見えるWindowsのファイルはbash上で指定できるものの、それ以外のWSLのパス(たとえば、ユーザーのホームディレクトリ)は、Windowsアプリからは見えないようだ(Build 15002)。指定すると、カレントディレクトリが変換できないので「C:\Windows\system32」を使うといったメッセージが表示される。
Windowsアプリケーションのオプションとしてファイルを指定する場合には、/mnt/cディレクトリなどの下にあるファイルを指定する必要がある。
Ubuntu 14.04から16.04へとが変わるが
必ずしもバージョンアップは必須ではない
Windows Insider Programでは、現在RS2(Red Stone 2、Creators Update)と呼ばれる次期アップデートのInsider Preview版が配布されているが、WSL関係では前述のようにUbuntuのバージョンが変更になる。ただし、すでにRS1(Windows 10 Ver.1607、Anniversary Update)でWSLをインストールしていた場合、Ubuntu 14.04がインストールされているが、その場合には、ユーザーがアップグレードしない限りは14.04のままになる。
ここで簡単にUbuntuのリリースについて解説しておく。UbuntuではLTS(Long Term Support)と呼ばれる長期間サポートされるリリースがある。LTSは2年間隔で更新され、サポート期間はリリースから5年。つまり、リリースから5年間は固定した環境として利用できる(もちろん個々のアプリは更新される)。
なお、Ubuntuのリリースは、毎年4月と10月に定期的に出され、リリース日を元にリリースを区別するバージョン番号を表記する。14.04とは「2014年4月」のリリースという意味。LTSとLTSの間には通常版と呼ばれるリリースが半年間隔で行われる。14.04のあと、14.10(2014年10月)、15.04、15.10があり、次のLTSが16.04である。半年に一回出る各バージョンには、コードネームが付き、14.04は「Trusty Tahr」(信頼できるヒマラヤタール)、16.04は「Xenial Xerus」(友好的なアラゲジリス)という名前になっている。
さて、Ubuntuのリリースバージョンの確認だが、WSL内で、/etc/lsb-releaseファイルを見ることで確認できる。
まず、現在RS1でWSLを使っている場合、RS2のInsider Previewをインストールしても、Ubuntuは14.04のままになる。また、RS2 Insider Previewで初めてWSLを有効にすれば、Ubuntuは16.04がインストールされる。後者の場合、選択の余地がないため、そのまま16.04を使うことになる。
問題は前者の場合に、16.04にアップグレードするべきか、またアップグレードはどうやって行なうのかである。まず、Ubuntuのアップグレードだが、14.04のサポートは2019年まであるので、必ずしもアップグレードしなくともよい。
リリースの違いにより、標準的にインストールされる言語システムのバージョンが違い、コンパイルなどが必要になるソフトウェアの場合、14.04の対応にとどまっているものもあり、新しいリリースが出たからといって絶対にアップグレードしなければならないというものでもないからだ。もちろん、新しいほうがいいというのであれば、アップグレードしてもかまわない。また、ちょっと使うだけというのであれば、どちらのリリースでもさほど違いはないと思われる。
少なくともRS2からは、WSLの標準のインストールは16.04に切り替わると思われるので、評価やちょっと触っただけという状態で、14.04にとどまる理由がないのであれば、16.04にアップグレードしておいたほうがいいかもしれない。
判断ポイントとしては、アップグレードの手間だろう。具体的なアップグレード方法としては大きく2つある。1つは、Ubuntuの機能を使って動作している14.04の環境を引き継いだままアップグレードする方法がある。もう1つは、WSLのlxrunコマンドで、アンインストール、再インストールする方法がある。前者は、環境を維持したまま行なうため、作業時間も長くなる。後者は、ユーザーフォルダなどを残すことはできるが、基本的に新規インストールとほぼ同じで、初期状態のUbuntu 16.04に切り替わる。
選択の条件は、すでにさまざまなソフトウェアをインストールしていて設定を再現するのが大変かどうかだ。つまり、ほとんどシステムを書き換えていないというのであれば、クリーンな16.04ができるLXRUNコマンドを使う方法がお勧めである。
もちろんこの状態でも、Ubuntuのリリースアップグレード機能を使って、環境を引き継いでアップグレードができるが、途中に判断を要求される場面もあり、時間もかかる。ちょっと使っただけというのであれば、わざわわざ手間を掛けてアップグレードするほどでもないということだ。また、リリースアップグレードは、Ubuntuの機能で、いつでも好きなときに実行できる。
このあたりをまとめると、すでにRS1でWSLを使い始めた場合、インサイダープレビューを入れた場合、以下の2つからの選択になると思われる。
●RS1でちょっとさわっただけ。あまり使ってない
→LXRUNで再インストールして16.04へ
●RS1でかなり環境を触り、比較的使っている
→Ubuntuは当面14.04のままにしておく。必要になったらアップグレード
具体的に方法をアップグレード方法を解説する。まずは、lxrunを使う方法だが、以下のコマンドを実行する。「/full」オプションをつけていないので、/home以下のユーザーディレクトリは残ったままになる。なお、最初のコマンドの「/y」は、すべての確認項目に対して「y」と答えるためのオプション指定だ。
lxrun /uninstall /y
lxrun /install
次に14.04の環境を引き継いでのアップグレードだが、bashを起動し、以下のUbuntuコマンドを実行する。
sudo do-release-upgrade
これは、Ubuntuのコマンドで、「--help」オプションや「man」で引数などを調べることが可能だが、基本的には引数なしで起動する。途中、いくつか質問が出るが、画面が崩れて見えなくなる場合、コンソールウィンドウの幅を変えてみると多少わかりやすくなることもある。
動作しなくなると業務上などで問題があるデリケートなソフトウェアを入れているような場合には、注意する必要があるが、そうでない場合、デフォルト値の選択のままで問題ない。実際にやってみるとわかるが、リリースのアップグレードには結構時間がかかる。もちろん環境設定して、いろいろとシステムを触ってしまったあとならば、こちらの方法を使うしかないが、前述したように現在のところRS2にしても、16.04が必須というわけではないようなので、14.04を使い続けるという選択も可能だ。
さて次回は、RS2のプレビュー版で実装されたWindowsバイナリの実行方法について解説する。
この連載の記事
-
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 - この連載の一覧へ