57
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows10でRuby on Railsの環境構築

Posted at

目的

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系じゃ使えない(一応解決策っぽい記事は見つけたけど、僕の技術だと解決できなかった)のでそこをなんとか解決できるようになれたらと思う。

57
38
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
57
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?