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つで.bashrcにrbenvにパスを通し、初期化するコマンドを追加します。
これで、以後、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です。
「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.>
...(略)
これを解決するためには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!」と表示されると思います。