WSL (Windows Subsystem for Linux) 向け Linux ディストリビューションである "WLinux" に RHEL ベースの "WLinux Enterprise" が登場しました。
これを機に WLinux を使うようにしてみたので セットアップ Tips を紹介します。
2019年11月 更新
WLinux の後継である Pengwin について記載しました。 → WSL向けディストリビューション "Pengwin" を Windows 10 で使う最小手順
TL;DR
- Windows Store から WLinux をインストール
-
$ sudo apt install -y libssl-dev libreadline-dev zlib1g-dev
(Ruby を入れる場合) $ wlinux-setup
- 気に入ったら
CMD> wslconfig /s WLinux
で規定のディストリビューションにする
注意:有料ですからお気を付けください。
以上です。
WLinux のインストール
WLinux もしくは WLinux Enterprise それぞれ Microsoft Store からのインストールになります。 wlinux
で検索すれば見つかるはずです。
今回私が使うのは WLinux の方です。後述しますが、それぞれベースディストリビューションが異なり、個人的には Debian 由来の apt 等、慣れ親しんでいるからという一点で WLinux を選んでいます。
インストール先
Windows 上では C:\Users\YOU\AppData\Local\Packages\WhitewaterFoundryLtd.Co.**\
に入ります。
rootfs はこのディレクトリの下の LocalState\rootfs\
です。
ちなみに Ubuntu 18.04 なら C:\Users\ma2sh\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_**
に入ります。
まあここを直接いじることは無いと思いますが、覚えておいて損はありませんので掲載しておきます。
WLinux と WLinux Enterprise はベースディストリビューションが異なる
- WLinux は 2018年9月にローンチした、Debian ベースのディストリビューション
- パッケージ管理は apt
- WLinux Enterprise は 2018年12月にローンチした、RHEL (RedHat Enterprise Linux) ベースのディストリビューション
- パッケージ管理は yum
出典: WhitewaterFoundry/WLinux、Winodws 10にRHEL互換の新しいLinux「WLinux Enterprise」登場
wlinux-setup コマンド
WLinux のインストール後に LANG やスクリプト系言語のセットアップだけでなく、特定のディレクトリをカレントにして起動できるシェル拡張 "Open with WLinux" をインストールしてくれる、対話形式のセットアッパーです。
$ wlinux-setup
以下のようなダイアログが表示されます。ぽちぽちと選択して [OK] すれば、それにあった環境がインストールされるというものです。
- LANGUAGE: LANG 設定をします。
ja_JP.UTF8
とか入れたければここからです。 - EXPLROER: 右クリックで "Open with WLinux" を開いてくれるシェル拡張のインストールです。
- SHELLS: WLinux は bash が標準ですが、それ以外の csh 等入れたいときはどうぞ。
- EDITORS: 試してません、ゴメンナサイ。私は Windows 側で VScode 使うんで。
- PYTHONPI: Python 3.7 をインストールしてくれます。pipも入ります。
- NODEJS: 最新の Node.js と npm を入れてくれます。
- GO: 試してません、ゴメンナサイ。たぶん最新の golang が入ります。
- RUBY: rbenv を使って Ruby をインストールしてくれます...が!事前準備が必要ですのでご注意
- DOTNET: 試してません、ゴメンナサイ。
- JAVA: 試し(ry
- POWERSHELL: 試し(ry
- GUI: 試し(ry
- DOCKER: Windows 側で動かしている Docker daemon (Docker for Windows) と通信できるようにしてくれます。ですのでインストールされるのは
docker
コマンドだけですのでご注意を。 - CASSANDRA: 試してません。なぜこの並びに入るのか、ちょっとよくわかりません。
PYTHONPI で install される Python 3.7 with PyPi の運用;
pip
は ~/.local/bin/pip
にインストールされます。即ち pip
を実行する際には --user
を付けましょうという事です。
もちろん python3 -m venv DIR
と venv を使って運用することも可能です。
$ pip install --user awscli
単純に pip install
してしまうと /usr/local/*
に配置しようと試みますが失敗します。
また sudo pip
は環境変数 PATH に ~/.local/bin
が標準では含まれないので system-wide に入れるならひと手間 (/etc/sudoers
を編集)する必要があります。
RUBY / rbenv を使った Ruby の install;
WLinux インストール直後で wlinux-setup から RUBY を選んでも失敗します。
失敗時の /tmp/ruby-build.*.log
を見てみると、必要な extension の build に失敗しているためです。
そのため sudo apt install -y libssl-dev libreadline-dev zlib1g-dev
で必要なライブラリをインストールしてから改めて RUBY のインストールをしましょう。
失敗の様子;
installing capi-docs: /home/ma2shita/.rbenv/versions/2.5.3/share/doc/ruby
The Ruby openssl extension was not compiled.
The Ruby readline extension was not compiled.
The Ruby zlib extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `apt-get install -y libssl-dev libreadline-dev zlib1g-dev` to fetch missing dependencies.
apt で入れた後で改めて wlinux-setup
からインストールしようとすると、以下のように不吉な文言が表示されますが、気にしないで行きましょう。
(理由は このへん)
以下のパッケージには満たせない依存関係があります:
libcurl4-openssl-dev : 競合: libssl1.0-dev しかし、1.0.2q-2 はインストールされようとしています
libssl-dev : 競合: libssl1.0-dev しかし、1.0.2q-2 はインストールされようとしています
libssl1.0-dev : 競合: libssl-dev しかし、1.1.1a-1 はインストールされようとしています
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
気に入ったら既定にしませう
cmd.exe から wslconfig
で既定のディストリビューションが設定できます
>wslconfig /l
Windows Subsystem for Linux ディストリビューション:
Ubuntu-18.04 (既定)
WLinux
>wslconfig /s WLinux
>wslconfig /l
Windows Subsystem for Linux ディストリビューション:
WLinux (既定)
Ubuntu-18.04
あとがき
Just do it!
EoT