Ruby
Rails
SQLite3
Windows10

Windows10でRuby on Railsの環境構築


目的

Windows10にてRuby on Railsの環境を構築する。

他の方のqiitaの記事等を参考にしているが、どのにも載っていなかったエラーの対策方法もあったため一応記事にした。


環境

Windows10 64bitマシン 


構築

1.rubyインストール

ダウンロードはこちらからRubyInstallerをダウンロードしてきて行う。rubyのversionは2.4系を使用する。

2019年2月5日現在だと、画像のRuby+Devlit 2.4.5-1 (x64)をダウンロードしてくる。

ruby_install.PNG

仮に、2.5系だとsqliteに対応しておらず、後々めんどくさい。

ダウンロード後、RubyInstallerを実行する。あとはライセンスに同意してクリック及びエンターしていくだけである。途中でコマンドプロンプトが立ち上がり2点ほど選択を要求されるが、どちらも気にせずエンターを押せばよい。

コマンドプロンプトが閉じればrubyのインストールは完了である。インストール後下記のように確認する。versionが表示されればOKである。一応合わせてRubygemsのversionも確認しておくとよい。


コマンドプロンプト

C:\path>ruby -v

ruby 2.4.5p335 (2018-10-18 revision 65137) [x64-mingw32]

C:\path>gem -v
2.6.14.3


2.bundlerインストール

bundlerが何なのかは各々調べてほしい。

bundlerのインストールと確認の方法は以下である。


コマンドプロンプト

C:/path>gem install bundler

Fetching: bundler-2.0.1.gem (100%)
Successfully installed bundler-2.0.1
Parsing documentation for bundler-2.0.1
Installing ri documentation for bundler-2.0.1
Done installing documentation for bundler after 5 seconds
1 gem installed

C:\path>bundler -v
Bundler version 2.0.1


3.sqlite3のダウンロード

この環境構築ではsqlite3を使用する。Railsがデータベースを利用し、デフォルトで使用するデータベースがsqlite3だからである。

sqlite3はこちらからダウンロードする。

Railsからsqlite3を利用するにはsqlite3.dllとsqlite3.exeが必要である。

下記画像だと、sqlite-dll-win64-x64-3260000.zipに.dll,sqlite-tools-win32-x86-3260000.zipに.exeファイルが入っているので、各々をダウンロード及び解凍し、中身をすべて環境PATHが通っているとこに置く。(今回はruby.exeの入っているディレクトリ)

sqlite.PNG

環境PATHの通っているところに置くと下記のようにsqlite3コマンドが使えるようになる。


コマンドプロンプト

C:\path>sqlite3 --version

3.26.0 2018-12-01 12:34:55 bf8c1b2b7a5960c282e543b9c293686dccff272512d08865f4600fb58238b4f9

4.Rails導入・実行

次にRailsを導入していく。Railsは下記コマンドでインストールでき、railsコマンドが使用できるようになる。


コマンドプロンプト

C:\path>gem install rails

(省略)
gem install rails

C:\path>rails -v
Rails 5.2.2


Railsのインストール後任意の場所にRailsプロジェクト用のディレクトリーを作り、railsコマンドでwebアプリケーションを作っていく。そのやり方はおそらく下記のように書かれていることが多い。


コマンドプロンプト

C:/path>mkdir sample

C:/path>cd sample
C:/path/sample>rails new TestApp

2019年2月5日現在、上記のやり方だとエラーが出る。

原因はrails newコマンド。このコマンドはアプリケーションを作るコマンドであるが、実行されるbundle installコマンドにて、sqlite3を使用するgemのinstallが行われる。そのgemのversionが1.4.0であり、1.4.0は2019年2月4日に追加されたばかりであったためか、gem installコマンドを利用すると下記のようなエラーを吐く。


コマンドプロンプト

C:\path>gem install sqlite3

Fetching: sqlite3-1.4.0.gem (100%)
Temporarily enhancing PATH for MSYS/MINGW...
Installing required msys2 packages: mingw-w64-x86_64-sqlite3
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.

current directory: C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/sqlite3-1.4.0/ext/sqlite3
C:/Ruby24-x64/bin/ruby.exe -r ./siteconf20190205-8936-17igga1.rb extconf.rb
checking for sqlite3.h... yes
checking for pthread_create() in -lpthread... yes
checking for -ldl... no
checking for dlopen()... no
missing function dlopen
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
--- 以下略 ---


その為、一時的な対策としてrails newコマンドを--skip-bundleオプションをつけて実行する。そうするとbundle installを行わず各種ファイルの準備でコマンドが終了し、アプリケーションのディレクトリができる。

その中にあるGemfileを編集し、sqlite3の部分を以下のように編集する.


Gemfile

gem 'sqlite3'


gem 'sqlite3', '1.3.13'

これによってエラーが出なくなるため、bundle installコマンドをアプリケーションのディレクトリで実行する。

5.serverの実行

Railsの導入後、アプリケーションのディレクトリでrails serverコマンドを実行する。

rubyのインストールのセクションで書いた2.5系のsqliteの問題が出るのはここ。

ブラウザでhttp://127.0.0.1:3000にアクセスし、Yay! You’re on Rails!のページが出たら終わり。


おわりに

一応、これでRuby on Railsの環境構築は終わり。あとはちゃんとしたコンテンツ作っていければなぁと思う。あと、2.5系じゃ使えない(一応解決策っぽい記事は見つけたけど、僕の技術だと解決できなかった)のでそこをなんとか解決できるようになれたらと思う。