概要
WSL では、linux ディストリビューションを起動することができます。
公式に対応するディストリビューションは、Microsoft Store から入手することになりますが、必要な条件を整えられれば、その他のディストリビューションを使用することもできます。
Amazon Linux 2 では、オンプレミスでの使用のために各種イメージファイルが配布されています。こちらの配布ファイルを利用して、WSL で Amazon Linux 2 を起動してみます。
インストール・起動ツール
インストール・起動のために以下のツールを使用します。
準備
あらかじめ Windows の機能の有効化 から 「Windows Subsystem for Linux」 を有効化しておきます。
Amazon Linux 2 イメージファイル配布サイトから、コンテナ用のイメージファイルを入手します。記事執筆時点での最新版は、以下のファイルになりました。
インストール
配布ファイルが、tar.xz フォーマットなので、tar.gz フォーマットへ圧縮変換を行います。
xz, gzip 等の変換ツールは、Git for Windows 等に付属しているものを使用するとよいでしょう。
> xz -d -c amzn2-container-raw-2.0.20181024-x86_64.tar.xz | gzip > rootfs.tar.gz
wsl-toyc.zip を展開して、アーカイブ内のファイルをリネームして、次のように配置します。起点となるフォルダーは、NTFS ファイルシステム上の任意の場所で良いようです。
amzn/rootfs.tar.gz # 上記で変換したイメージファイル
amzn/create-toyc.exe # wsl-toyc.zip 内のファイル
amzn.exe # wsl-toyc.zip 内の launch-toyc.exe をリネーム
amzn/create-toyc.exe を実行します。
エラーコード 0x80070005 が表示される場合は、「管理者として実行」で起動させてください。(以前は、管理者権限不要だったように記憶していますが、仕様変更されたようです。)
インストール成功すれば、数分ほどで、amzn/rootfs/ 以下に linux 環境のファイル群が展開されます。これらのファイルは、Windows 側から見ることができるのですが、直接書き込み操作を行うと、ファイル破損の原因になるので、触らないようにしてください。
起動
amzn.exe ファイルが、起動用実行ファイルになります。PATH 設定された、任意の場所に配置することができます。
初めに、パッケージの更新を行います。
> amzn yum update -y
インストールする時期によりますが、いくつかのパッケージが更新されるかと思われます。
amzn.exe を引数なしで実行すると、bash によるインタラクティブシェルが起動します。
Amazon Linux 2 をローカルで使用する目的としては、ソフトウェア開発があると考えられますが、開発ツールをインストールしてみます。
> amzn yum groupinstall -y "Development Tools"
gcc などの開発ツールが利用可能になります。
> amzn gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-libmpx --enable-libsanitizer --enable-gnu-indirect-function --enable-libcilkrts --enable-libatomic --enable-libquadmath --enable-libitm --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)
話題の corretto も試してみましょう。
extras から、インストールできます。
> amzn amazon-linux-extras install -y corretto8
> amzn java -version
openjdk version "1.8.0_192"
OpenJDK Runtime Environment (build 1.8.0_192-amazon-corretto-preview-b12)
OpenJDK 64-Bit Server VM (build 25.192-b12, mixed mode)
良いようです。
Java コンパイラも必要なら、追加インストールします。
> amzn yum install -y java-1.8.0-amazon-corretto-devel
> amzn javac -version
javac 1.8.0_192
削除
環境が不要になったり、最初から作り直したい場合は、WSL 標準の wslconfig コマンドで、登録解除が可能です。
> wslconfig -u amzn