#はじめに
開発環境をそれまでのWindowsからLinuxに全面的に移行しました。自分のメモも兼ねて書き記します。
#発端
「プログラミングElixir」(Ohmsha)を読みつつ試していたのですが、Windows上のiexでどうも本の通りにならない箇所がありました。WindowsのターミナルはいまだにシフトJISが使われていますし、開発ツールもLinuxに比べれば充実していません。この際、WindowsからLinuxに移行することにしました。
#Windows Subsystem for Linux(WSL)
以前からVMWareによりUbuntuを使っていました。メイン開発環境をUbuntuにすることにしたものの、仮想OSでは速度が出せません。また、最近になって動作が不安定でした。何か他にないかと探していましたら、マイクロソフト純正のUbuntuが提供されていることがわかりました。Windows10のサブシステムとして提供されているもので、仮想OSより効率が優れているということでした。これに移行することにしました。
#WSLのインストール
WSLのインストールにあたっては下記の記事がとても参考になりました。この通りにやればだいじょうぶです。
https://qiita.com/Aruneko/items/c79810b0b015bebf30bb
リポジトリの変更は必ずやってください。これにより日本のJAISTに接続されるようになります。当初、これをやらずにアップデートしようとしたところが海外サーバーではうまくいきませんでした。JAISTのサーバーはしっかりしていて安心です。
#Ubuntuのバージョン
当初、WSLで選択できるOSはUbuntuしかなかったそうなのですが、現在では各種のLinuxが提供されています。またUbuntuも最新バージョンのものと若干古いバージョン16.04の2つが提供されています。私は16.04の方にしています。Elixirを使う分にはどちらでも問題ないと思います。私が開発、メンテナンスしているISLisp、Prolog処理系につきGCC7.3ではうまく動作しませんでした。そこでGCCの古いものが使われている16.04の方を敢えて選択しています。
#ATOMエディタ
Windows環境ではATOMを利用しています。Linuxでも同じATOMが使えると便利でした。WSLではWindows環境とLinux環境とが密に統合されています。Windows用のATOMがほぼそのまま使えます。WSLで利用するためには2つの点につき手を加える必要がありました。
〇ターミナルをWSLのbashに変更すること
〇改行コードをCRLFからLFにすること
#ターミナルの変更
ATOMではターミナルを使うためにplatformio-ide-terminalというパッケージが利用できます。このデフォルトはWindowsのPower shell なのですが、これをWSLのbashに変更することができます。下記の記事が参考になりました。
https://fuchiaz.com/atom-wsl/
ターミナルを起動させるときにはATOMの画面の左下の + マークをクリックします。
#改行コードの変更
Windows用のATOMでは改行コードはCRLFです。しかし、LinuxではLFです。これを変更する必要があります。ATOMのパッケージに変更可能にするものがありました。
line-ending-converter というパッケージです。
下記の記事が参考になります。
https://loumo.jp/wp/archive/20151102000052/?fbclid=IwAR2HB9k83A0KW4-swVyyvkt6wzUlS6_cTMrVMqwqOqRKKVvLSIJ6UewDsc8
ターミナルを起動させると右下に改行文字が表示されます。CRLFとなっているものをクリックしてLFに変更します。これでLinuxのテキストを書き込むことができます。
#Elixirのインストール
いよいよElixirをインストールします。WSLのUbuntuのターミナルを起動します。WindowsのスタートメニューのUbuntuをクリックします。あるいは上記の設定ができていればATOMのターミナルもUbuntuが起動します。
公式ページのUbuntuでのインストールの説明の通りにWSLのターミナルから操作すればOKです。
Ubuntu 14.04/16.04/17.04/18.04 or Debian 7/8/9
Add Erlang Solutions repo: wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
Run: sudo apt-get update
Install the Erlang/OTP platform and all of its applications: sudo apt-get install esl-erlang
Install Elixir: sudo apt-get install elixir
#快適
仮想OSで使うのと違ってメモリも食わず、性能も良好です。自作のISLisp、Prolog処理系も軽快に動作しWindows上での動作と遜色ありません。ATOMエディタはWindowsとUbuntuの両方に跨って使えるので便利です。メインはUbuntuにしつつもWindows上での開発、メンテナンスも継続しなければならなかったのでこの環境は快適です。