WindowsのRuby on Railsインストール手順(Ruby 2.4.3-1、Rails 5.1.4、mysql2 0.4.10)

Ruby on Rails プログラミング
この記事は約11分で読めます。

※当ブログではアフィリエイト広告を利用しています。

以前、Ruby 2.0.0を使用していたのですが、パソコン初期化してRuby on Railsを再インストールしようとしたところ、いろいろ変わっていたのでメモ書きを残します。

以前の環境構築手順はこちらです。

なお、今回のバージョンは以下のとおりです。

  • Windows 10 Pro(64bit)
  • Ruby 2.4.3-1(x64)
  • gem 2.7.4
  • Rails 5.1.4
  • mysql2 0.4.10

Rubyのインストール

まずは、RubyInstallerをダウンロードします。

RubyInstaller公式サイトより、「Ruby 2.4.3-1(x64)」をダウンロードしました。

2018年1月8日時点の最新バージョンは「Ruby 2.5.0-1(x64)」だが、安定版は2.4.X。

また、2.5.0を使用した場合、Railsをインストールする際にnokogiri-1.8.1がインストールできくてめんどくさかったので、2.4.Xの方が良いかと思います。

インストーラーをダウンロードしたら実行します。

Windows Ruby on Rails

ライセンス同意して次へ。

Windows Ruby on Rails

インストールするフォルダをC直下や適当な位置にします。

このフォルダは「C:\Program Files」などの半角空白が入るものは避けたほうがいいです。

そして、Ruby実行ファイルへの環境変数PATH追加をチェックしておきます。

このチェックでPATHへ追加されるのは、ユーザー環境変数のPATHに追加されていましたが、後でシステム環境変数のPATHの方へ追加しておくのがいいと思います。

Windows Ruby on Rails

インストール完了画面に、「MSYS2のインストールを実行するか」のチェックがあるので、チェックオンにして終了します。

Windows Ruby on Rails

すると、コマンドプロンプトが立ち上がるので、1・2・3と順に入力してインストールしていきます。

これは「ridk install」というコマンドでも開くことができます。

Ruby 2.4.0より前は「DEVELOPMENT KIT」というものが必要だったが、2.4.0以降はRubyInstallerにこの「MSYS2 toolkit」が含まれて、「DEVELOPMENT KIT」は不要みたいです。

Rubyがインストールできたら、バージョンを確認。

>ruby -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]

gemのアップデート

Rubyがインストールできたら、gemのアップデートを行います。

>gem -v
2.6.14

>gem list
*** LOCAL GEMS ***

bigdecimal (default: 1.3.0)
did_you_mean (1.1.0)
io-console (default: 0.4.6)
json (default: 2.0.4)
minitest (5.10.1)
net-telnet (0.1.1)
openssl (default: 2.0.5)
power_assert (0.4.1)
psych (default: 2.2.2)
rake (12.0.0)
rdoc (default: 5.0.0)
test-unit (3.2.3)
xmlrpc (0.2.1)

>gem update --system

>gem -v
2.7.4

>gem list
*** LOCAL GEMS ***

bigdecimal (default: 1.3.0)
bundler (default: 1.16.0)
did_you_mean (1.1.0)
io-console (default: 0.4.6)
json (default: 2.0.4)
minitest (5.10.1)
net-telnet (0.1.1)
openssl (default: 2.0.5)
power_assert (0.4.1)
psych (default: 2.2.2)
rake (12.0.0)
rdoc (default: 5.0.0)
rubygems-update (2.7.4)
test-unit (3.2.3)
xmlrpc (0.2.1)

Railsのインストール

続いて、Railsのインストール行います。

>gem install rails
Done installing documentation for concurrent-ruby, i18n, thread_safe, tzinfo, activesupport, rack, rack-test, mini_portile2, nokogiri, crass, loofah, rails-html-sanitizer, rails-dom-testing, builder, erubi, actionview, actionpack, activemodel, arel, activerecord, globalid, activejob, mini_mime, mail, actionmailer, nio4r, websocket-extensions, websocket-driver, actioncable, thor, method_source, railties, sprockets, sprockets-rails, rails after 55 seconds
35 gems installed

>rails -v
Rails 5.1.4

>gem list rails
*** LOCAL GEMS ***

rails (5.1.4)
rails-dom-testing (2.0.3)
rails-html-sanitizer (1.0.3)
sprockets-rails (3.2.1)

mysql2について

アプリケーションでmysql2を使用していたのだが、環境作るのにものすごくつまづきました。

まず、アプリケーションのフォルダで「bundle install」コマンドでgemインストールを行います。

「–path vendor/bundle」で、システムのgemではなく、アプリケーション内でgemをインストールしました。

何やら「MySQL Connector/C」というものを使用してビルドしろとメッセージが。

>bundle install --path vendor/bundle
…
Fetching mysql2 0.4.10 (x64-mingw32)
Installing mysql2 0.4.10 (x64-mingw32)
…
Bundle complete! 33 Gemfile dependencies, 93 gems now installed.
Bundled gems are installed into `./vendor/bundle`
Post-install message from mysql2:

======================================================================================================

  You've installed the binary version of mysql2.
  It was built using MySQL Connector/C version 6.1.11.
  It's recommended to use the exact same version to avoid potential issues.

  At the time of building this gem, the necessary DLL files were retrieved from:
  http://cdn.mysql.com/Downloads/Connector-C/mysql-connector-c-6.1.11-win32.zip

  This gem *includes* vendor/libmysql.dll with redistribution notice in vendor/README.

======================================================================================================

とりあえず、MySQL公式サイトより、「MySQL Connector/C」をダウンロードして、適当な場所へ配置します。

以下のコマンドでbundlerのビルドオプションへ追加すると、「ユーザーディレクトリ\.bundle\config」に設定されました。

「アプリケーションディレクトリ\.bundle\config」には追加されないのか?よくわからん。。

この状態で再度「bundle install」を実行するが、変化がない。
ビルドオプションが効いていない?

>bundle config build.mysql2 '--with-mysql-dir="C:\Tools\mysql-connector-c-6.1.11-winx64"'
 
>bundle install

ひとまず放置してマイグレーションを行ってみたが、Loadエラー。

そもそも「mysql2 0.4.10 (x64-mingw32)」ってのはまだRuby 2.4.Xに対応していないみたいです。

gemのフォルダ内を見てみたが、2.3までのフォルダ・バイナリファイルはあるが、2.4のフォルダがありません。

>bundle exec rake db:migrate
rake aborted!
LoadError: cannot load such file -- mysql2/2.4/mysql2

えー、めんどくさい。。

と思いつつ調べてると、mysql2 README-GitHubにWindowsに関する記載がありました。

要約すると、以下のようなこんな感じです。

  • mysql2のgemはデフォルトでmysql.comからMySQL Connector/Cをダウンロードして使用する。ローカルのものを使用する場合は、「–with-mysql-dir=c:/mysql-connector-c-x-y-z」を付ける。(パスはスラッシュ)
  • デフォルトでmysql2のgemディレクトリに「libmysql.dll」がコピーされる。それを防ぐには、「–no-vendor-libmysql」を付ける。
  • 上記で防いだ場合、「libmysql.dll」は環境変数「RUBY_MYSQL2_LIBMYSQL_DLL」、mysql2のgemディレクトリ「vendor/libmysql.dll」、システム環境変数「PATH」の3つから順に探して見つかったものを使用する。

ふむふむ。

じゃあ、「bundle install」でビルドオプションが効かなかったので、「gem install」で直接インストールしてみてはどうか。

上記の通りオプションを入力し、MySQL Connector/Cの「libmysql.dll」ファイルはruby.exeと同じフォルダに配置します。

Rubyインストール時には、システム環境変数PATHには登録されておらず、ユーザー環境変数PATHにしか登録されていないので注意です。

>bundle exec gem install mysql2 --platform=ruby -- '--no-vendor-libmysql --with-mysql-dir="C:/Tools/mysql-connector-c-6.1.11-winx64"'

Fetching: mysql2-0.4.10.gem (100%)
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions with: '--no-vendor-libmysql --with-mysql-dir="C:/Tools/mysql-connector-c-6.1.11-winx64"'
This could take a while...
Successfully installed mysql2-0.4.10
Parsing documentation for mysql2-0.4.10
Installing ri documentation for mysql2-0.4.10
Done installing documentation for mysql2 after 0 seconds
1 gem installed

お、いけたっぽい。

さっきビルドオプションが効かなかったのは、パスの記述がスラッシュではなく¥マークだったからか…?

とりあえず「x64-mingw32」の方をアンインストールしました。

>bundle exec gem uninstall mysql2

Select gem to uninstall:
 1. mysql2-0.4.10
 2. mysql2-0.4.10-x64-mingw32
 3. All versions
> 2
Successfully uninstalled mysql2-0.4.10-x64-mingw32

Gemfile.lockを直接修正しておきます。

>修正前
mysql2 (0.4.10-x64-mingw32)

>修正後
mysql2 (0.4.10)

再び、マイグレーションするとエラーなくなり通りました。

アプリケーション動いたし、とりあえずこれでいいか…。

>bundle exec rake db:migrate
 
>rails s

最後に

WindowsでのRuby on Railsは、環境構築でつまづくこと山のごとし。

プログラミング
\よかったらシェアしてね!/
えふめん

大阪在住、30代。
業務系SE・社内SE。

PCトラブルの調査、自作デスクトップPCのこと、PC周辺機器のレビューなどの記事を書いています。

えふめんをフォローする
この記事が気に入ったら
いいね!しよう
最新情報をお届けします。
俺の開発研究所

コメント

  1. spa より:

    ありがとうございます。
    参考にさせていただきます。

    • えふめん より:

      >spaさん
      閲覧していただきありがとうございます。

  2. […] あとここも見た。上より分かりやすいかも。 […]

タイトルとURLをコピーしました