Posted at

Windows10のWSLにRubyとRuby on Railsをインストールするメモ

WindowsのWSL(Windows Subsystem for Linux)にRuby on Rails環境を構築する手順のメモです。

こちらのブログを見ながら自分で環境を構築したときの手順をメモとして残すものです。

このブログのとおりにやって「Yay!You're on Rails!」まで行けました。

ありがとうございます。

しかしながら、このブログの著者は冒頭で以下のように述べていますので、可能ならMacやLinux上に環境を構築すると良いでしょう(^o^)

ですが、WSL上に環境を構築したい場合はこれが全てです。


If you want to install Ruby on Rails on Windows, look no further! I recommend that you use either Linux or macOS to develop in Rails if you have the option.



環境


  • Windows 10 Home (ver.1803)

  • Ubuntu 18.04


事前準備

まずはこれからのRubyやRuby on Railsのインストールに必要になるライブラリやアプリケーションをインストールします。

sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev libreadline-dev zlib1g-dev


rbenvのインストール

rbenvは複数のRubyのバージョンを管理、切り替える仕組みを提供します。

以下のコマンドでインストールできます。

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash

このrbenvを使うための準備をします。

この時点ではrbenvにパスが通っていないのでコマンドラインでrbenvと打っても「見つからない」と言われます。

これからrbenvをコマンドラインから使えるように以下の3つのコマンドを順に実行します。

最初の2つで.bashrcrbenvにパスを通し、初期化するコマンドを追加します。

これで、以後、shellを起動したときにrbenvを使えるようになります。

3つ目は今回、今すぐに設定を有効にするためにshellを再起動しています。

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL


Rubyのインストール

rbenvを使ってRubyをインストールします。

まずはrbenvで選択できるRubyのバージョンを確認します。

rbenv install --listと実行すると、インストール可能なRubyのバージョンが列挙されます。

shuhey@HelloWorld:~$ rbenv install --list

Available versions:
1.8.5-p52
1.8.5-p113
(中略)
2.6.0-rc2
2.6.0
2.6.1
2.7.0-dev
jruby-1.5.6
(略)

公式サイトによると現時点(2019年2月7日)での最新の安定版は2.6.1なので、rbenv install 2.6.1と入力して2.6.1をインストールします。

ダウンロードとインストールにはしばらく時間がかかるのでのんびり待ちます。

shuhey@HelloWorld:~$ rbenv install 2.6.1

Downloading ruby-2.6.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.1.tar.bz2
Installing ruby-2.6.1...
Installed ruby-2.6.1 to /home/shuhey/.rbenv/versions/2.6.1

次に使用するRubyのバージョンを指定します。

複数のバージョンのRubyをインストールしている場合、このようにして使用するRubyを切り替えます。

rbenv local 2.6.1

Rubyのバージョンを確認します。

shuhey@HelloWorld:~$ ruby -v

ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-linux]


Ruby on Railsのインストール

gemコマンドでインストールします。

gem install rails


bundlerのインストール

bundlerはRailsプロジェクト内で使用するgemを管理する仕組みです。

プロジェクト内に置いたGemfileというファイルに記載された内容に基づいてgemをインストールしたりできます。

プロジェクトごとに必要なバージョンのgemをインストールできるのでとても便利です。

これもgemコマンドでインストールします。

gem install bundler


Ruby on Railsプロジェクトの生成

プロジェクトの生成には以下のrails newコマンドを使います。

以下のHelloRailsの部分はプロジェクト名なので任意の名前を指定します。

rails new HelloRails

プロジェクトの生成が完了すると、上のコマンドを実行したディレクトリにHelloRailsというディレクトリができます。


Ruby on Railsアプリの実行

作成されたRailsプロジェクトのディレクトリに移動します。

cd HelloRails

プロジェクトのディレクトリ直下でrails serverコマンドを実行します。

shuhey@HelloWorld:~/HelloRails$ rails s

/home/shuhey/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/railties-5.2.2/lib/rails/app_loader.rb:53: warning: Insecure world writable dir /home/shuhey/.rbenv/versions in PATH, mode 040777
=> Booting Puma
=> Rails 5.2.2 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.0 (ruby 2.6.1-p33), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

上記のように表示されたらブラウザを開いてlocalhost:3000にアクセスします。

以下のように表示されたらOKです。

image.png


「can't activate sqlite3」エラーが出た場合の対処

localhost:3000にアクセスしたときに以下のようにエラーが表示されるかもしれません。

#<LoadError: Error loading the 'sqlite3' Active Record adapter. Missing a gem it depends on? can't activate sqlite3 (~> 1.3.6), already activated sqlite3-1.4.0. Make sure all dependencies are added to Gemfile.>

...(略)

image.png

これを解決するためにはGemfileファイルを編集します。

viでGemfileを開きます。

vi Gemfile

sqlite3のgemの記述がおそらくgem 'sqlite3'となっていると思うので、これをgem 'sqlite3', '~> 1.3.6'に変更します。

Gemfileを保存して閉じます。

bundle installコマンドでGemfileに加えた変更を適用します。

bundle install

すると、出力の中に以下のようなsqlite3に関する部分があります。

Using sqlite3 1.3.13 (was 1.4.0)

以前はバージョンが1.4.0だったのが1.3.13になったことがわかります。

これで改めてrails serverコマンドを実行すると、「You're on Rails!」と表示されると思います。