こんにちは。不可思議絵の具です。
今回のWindows 10のCreators UpdateはBash on Windows(以後BoW)の改善が一番楽しみでした!
BoWはCreators Updateでどう変わったのでしょうか?
公式ブログの内容を元に解説します。
インストール時の詳細を書いた記事もあわせてご覧頂けますと幸いです。
アップグレード方法
既にBoWをインストールしている場合、Creators Updateを適用しても内蔵のUbuntuは14.04のままなので、別途アップグレードが必要です。
fuka@cyan:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
ちなみに、この時点で今まで使えなかったpingコマンドなどが使えるようになっています。
fuka@cyan:~$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=128 time=0.510 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=128 time=0.649 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=128 time=0.707 ms
また、漢字表示が欠けるなどの症状も改善されています。
BoW上で
sudo do-release-upgrade
を実行しても良いのですが、MSは再インストールを推奨しています。
再インストールはPowerShell又はDOSプロンプトで
lxrun /uninstall /full /y
と
lxrun /install
を実行します。
やる前に.bashrc
とかのバックアップを忘れないようにね!
私は忘れてました(T_T)
再インストール後のバージョン表示です。
fuka@cyan:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
「Description」が「Ubuntu 16.04.2 LTS」であればアップグレード成功です。
改善点
では本題! BoWの改善点です。
私が嬉しかった順に紹介します。
なお、画面写真は本家ブログの記事から引用させて頂きました。
WindowsコマンドとLinuxコマンドの相互利用
LinuxからWindowsアプリを起動したり
WindowsからLinuxアプリを起動したり
ということが出来るようになりました。
私が嬉しかったのは、これによってBoWからWindows版のVagrantとVirtualBoxを使えるようになったこと!
パフォーマンスを犠牲にせずに「本物の」Linux環境で作業ができるようになりました。
今までVagrantはGit Bash上で使っていました(※)が、その他の作業をする時にLinuxツールが無いため「あっ…そういやこれLinuxじゃなかった…(。>﹏<。)」と、その度に枕を濡らしておりました。
※BoW内ではUbuntu版VirtualBoxは動かない
→Windows版VirtualBoxが必要
→連動するVagrantもWindows版が必要
→BoW上でVagrantが使えなかった
完全なLinux環境で全ての作業をできるようになったので、ネットに転がっているMacやLinux用のHowTo記事がより参照しやすくなるのではないかと思っています。
Vagrantコマンドに「.exe」さえ付け足せば、Windows版Vagrantが使えました。
#".exe"が無いとLinuxコマンドと認識される
fuka@cyan:/mnt/c/usr/dev/vagrant/ygkb.jp.local$ vagrant
プログラム 'vagrant' はまだインストールされていません。 次のように入力することでインストールできます:
sudo apt install vagrant
#".exe"を付けるとWindowsコマンドと認識される
#仮想マシン起動
fuka@cyan:/mnt/c/usr/dev/vagrant/ygkb.jp.local$ vagrant.exe up
Bringing machine 'ygkb.jp.local' up with 'virtualbox' provider...
(中略)
==> ygkb.jp.local: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> ygkb.jp.local: flag to force provisioning. Provisioners marked to run always will still run.
#仮想マシン終了
fuka@cyan:/mnt/c/usr/dev/vagrant/ygkb.jp.local$ vagrant.exe halt
==> ygkb.jp.local: Attempting graceful shutdown of VM...
エスケープシーケンス対応の改良
tmuxなどの高度な画面制御を必要とするツールが動かせるようになりました。
…つか、それ以前に、旧BoWでは漢字表示が欠けたり、カーソルの処理が不十分だったので日本語環境では実用できませんでした。
純正コンソールに絶望して速攻でConEmuに行ってしまいましたが、これなら純正コンソールでも常用できそうで嬉しいです。
管理者権限不要でシンボリックリンクが張れるようになった
旧BoWではシンボリックリンクを張るためにはイチイチ管理者権限でコンソールを開き直す必要があったのですが、その必要が無くなりました。
ネットワーク関連コマンド(IfconfigやPing)の対応
なんでpingくらい使えねぇんだよ?普通に要るやろ?と憤ったのも今は昔。
ネットワーク関連のコマンドが動くようになり、より一層互換性が増しました。
INOTIFYによるファイル変更通知機能の追加
ファイルを修正したとき、Ubuntuに更新が通知されるようになりました。
例えばWindows上のエディタでファイルを弄ると、Ubuntu上のNode.jsなどのアプリケーション・サーバーが検知して自動リビルドが出来るようになります。
より一層クロス開発がやりやすくなりました。
フルカラー対応
24bitまでの好きな色が使えるようになりました。カスタマイズが捗るね!
俺はどうでもいいけど…。
マウス対応
Midnight CommanderやHtopなどのリッチなCUIアプリでマウスが使えるようになったそうです。
俺はどうでもいいけど…。
UNIXソケット/Netlinkソケットに対応
「Unixソケット」と「Netlinkソケット」の機能が追加されたとのこと。
門外漢なのでよく分かりませんが、プロセス間通信を使ったアプリのデバッグが出来るようになるんですかね。
TCPソケットとIPv6の改善
IPv6とTCPソケットの機能が強化されている模様。
マウント機能の強化
今回確認したブログには記述されていなかったのでCreators Updateリリース分に適用されているかは分からないが、以下のような機能もあるみたいです。
参照 BoWリリースノート
参照 File System Improvements to the Windows Subsystem for Linux
共有フォルダを直接マウント
sudo mount -t drvfs '\\server\share' /mnt/share
こんな感じで共有フォルダを直接マウントできるみたい。
ソースをWindows Serverに置いておくときに捗りそう!
ドライブを直接マウント
sudo mkdir /mnt/d
sudo mount -t drvfs D: /mnt/d
元々、固定ドライブは自動的にマウント出来ていましたが、USBスティックやDVDドライブなどの外付けディスクを追加できるようになったようです。
本番機からUSBスティックで持ってきたソースを参照するなんて使い道はどうですかね。
シリアルポートの対応
参照 Serial Support on the Windows Subsystem for Linux
ってことはLinuxで作った制御システムとかもデバッグ出来るようになるのかな。
今までラズベリーパイでやってた家電製品の制御をWindowsでできるようになったりして?
今回ばかりはMicrosoftの気合を感じる
Linuxを徹底的に忌み嫌い、ハブっていた一時期のことを考えると隔世の感…。
まさか、あのMicrosoftがここまでLinuxに歩み寄ることになるとは…。
往年のServices for UNIX(SFU)を思い出しますが、より一般に、すそ野を広げたいという気合を感じます。
今まで、WindowsでのLinux系のクロス開発(要はWeb関連)においては、ネットの情報がことごとくmacOSかLinuxが前提だったため、本当に歯痒い思いをしていましたが、これでmacに引けを取らなくなったのではないでしょうか。
少し前まで、仕事用PCにUbuntuをインストールし直して、Windows 10を仮想マシンで動かそうかと割とマジで考えていましたが、考え直すことにしました。
BoWのためにWindows 10を使ってみたいと思った方は下記の記事も読んでみてください。
BoWはHome/Proどちらでも使えますよ!
では!(^O^)/