2018年1月5日金曜日

Windows Subsystem for Linux(WSL)のopenSUSE Leap 42にrbenvでRubyをインストールする

WSLでは2018年1月5日現在で、UbuntuとopenSUSE Leap 42とSUSE Linux Enterprise Server 12が使えます。
僕はUbuntuじゃなくてopenSUSEを使ってます。
別にUbuntuでも良いんですが、なんとなくみんな使ってるからなーみたいな気持ちで。あとなんかaptとdpkgがあまりなじみないというのもありますね。
同時に入れられるみたいなのでそのうちUbuntuも入れるかもしれませんけども。

このところ公私ともにRubyばっかりなので、WSLでサクッと何かコード書くならRuby使いたいかなと。
しかしですね、WSLのopenSUSEはデフォルトだとRuby 2.1が入ってるんです。いかんせん古いのとrbenv使いたいよねってことで導入してみました。
普通にopenSUSEなので、WSLじゃないopenSUSEでも一緒の手順で入るとは思います。

1. パッケージアップデート

とりあえず何はともあれzypperでパッケージアップデート。
sudo zypper update

2. rbenv本体の導入

rbenvをgit cloneしてきて.bash_profileに設定を追加。
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval (rbenv init -)' >> ~/.bash_profile
. ~/.bash_profile

3. rbenvプラグインの導入

rbenv-buildとrbenv-updateあたりは必須ですよね。
mkdir -p "$(rbenv root)/plugins"
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)/plugins/ruby-build"
git clone https://github.com/rkh/rbenv-update.git "$(rbenv root)/plugins/rbenv-update"

4. 追加のパッケージの導入

素の状態だとパッケージがいくらか足りなくてRubyのビルドでエラーになるのでzypperでインストールしておきます。
Ruby v2.4.3とv2.5.0はこれでいけました。
sudo zypper install libopenssl-devel readline-devel zlib-devel

5. Rubyのビルド

あとは以下のようなコマンドでRubyをインストールすれば導入は終わりです。
rbenv install 2.5.0
終わりなのですが、Rubyのビルドにめっちゃ時間かかります。Surface LaptopのCore i7 + メモリ16GBのPCで40分程度かかりました。
軽く調べてみたところどうも、WSLはプロセスの生成と破棄が遅いようでconfigureとかmakeとかでプロセスの生成と破棄を繰り返すようなやつはだいぶ時間がかかるみたいです。
Microsoftさん頑張って……。

6. インストールしたRubyを使う

Rubyのビルド終わったらあとはお好みで
rbenv global 2.5.0
とか
rbenv local 2.5.0
とかしたらrbenvで入れたやつが使えるようになります。

0 件のコメント:

コメントを投稿