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!」と表示されると思います。