📝

WSLにanyenvを入れてrbenvを使ってrubyを動かすまで

2023/08/29に公開

https://qiita.com/items/5c7f70d7c0979b478639


お詫び

Qiitaの元記事にて、区切り線を「---」で書いている場所があり、これがZennの記法に干渉して一部うまく表示できない記事がある事を認識しています。
全ての記事を精査しきれていないため、お手数ですがお見かけの際は教えていただけると大変喜びます。


https://qiita.com/nomurasan/items/84674c0581380aa9acc8

のスピンアウト記事です。
軽い気持ちでやってみたら案外ハマったので別記事にしました。

前提

  1. WSLが動いている
  2. linuxbrewが使える
  3. anyenvが使える

前提の手順については、上記記事をご参照ください。

1. rbenvをインストールする

anyenv install rbenv

超簡単!
うまく行かない場合はanyenvへのパスが通ってない可能性が高いと思います。

2. rubyをインストールする

私の環境ではここで問題が発生しました。

rbenvまでのパスも通したのに、rbenv: no such command 'install'と怒られる

これはbrew install ruby-buildで解決できます。gccでもbuild-essentialsでもないんですね。ハマりやすいので気をつけて!

BUILD FAILEDになる

これはバージョンにもよると思いますが、現行で最新の3.0.3を入れようとすると「パッケージが足りてないので入れてね」と怒られていました。
私の環境で足りなかったのは以下の通り。

  • sudo apt install -y zlib1g-dev

これはエラーメッセージ内のTry running 'apt-get install -y zlib1g-dev' to fetch missing dependencies.を落ち着いて読めば大したことないです。
だいたい公式サイトか、anyenv等を使用した場合に必要なパッケージが別途githubなどに書いてあると思いますので、そちらを参照するのが一番良い方法と思います。

3.rubyを実行する

ここでもハマりました。

インストールできたのにruby -vでCommand 'ruby' not foundになる

インストールが上手く行ってもパスを設定する必要があったりします。

echo PATH="$HOME/.rbenv/shims:$PATH" >>$HOME/.profile
exec $SHELL -l
ruby -v

anyenvを介さない場合、rbenvでinstallした状態でrubyにパスが通っているのですが、anyenvだとrbenvでrubyがインストールされるパスが異なるため?か、うまくいきません。
解決方法としては、anyenvのrbenvで入れたrubyのパスを指定してあげればいいです。

それでもrubyが実行できない

rubyのインストールができたら、rbenv global (バージョン)もお忘れなく。

それでもうまく行かない場合

どうしてもうまくいかないなら、インストールするバージョンは最新版に拘らず、古いものを使う方法も検討してみるのも良いかもしれません。

あるいは、個人開発と割り切ってapt install rubyとし、ディストリビューションで管理してしまう手もあります。

戻る

https://qiita.com/nomurasan/items/84674c0581380aa9acc8

GitHubで編集を提案

Discussion