俺の開発研究所

Ruby on Rails、Linux、Windowsを中心にIT技術系の備忘録とか。よく忘れるので。

*

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

      2018/09/20

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

以前の環境構築手順はこちら。
Windowsの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

インストールするフォルダを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」は不要みたいだ。

Windows Ruby on Rails

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

gemのアップデート

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

Railsのインストール

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

mysql2について

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

まず、アプリケーションのフォルダで「bundle install」コマンドでgemインストールを行う。
「–path vendor/bundle」で、システムのgemではなく、アプリケーション内でgemをインストールした。
何やら「MySQL Connector/C」というものを使用してビルドしろとメッセージが。

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

以下のコマンドでbundlerのビルドオプションへ追加すると、「ユーザーディレクトリ\.bundle\config」に設定された。
「アプリケーションディレクトリ\.bundle\config」には追加されないのか?よくわからん。。

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

ひとまず放置してマイグレーションを行ってみたが、Loadエラー。
そもそも「mysql2 0.4.10 (x64-mingw32)」ってのはまだRuby 2.4.Xに対応していないみたい。
gemのフォルダ内を見てみたが、2.3までのフォルダ・バイナリファイルはあるが、2.4のフォルダがない。

えー、めんどくさい。。
と思いつつ調べてると、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にしか登録されていないので注意。

お、いけたっぽい。
さっきビルドオプションが効かなかったのは、パスの記述がスラッシュではなく¥マークだったからか…?
とりあえず「x64-mingw32」の方をアンインストール。

Gemfile.lockを直接修正しておく。

再び、マイグレーションするとエラーなくなり通った。
アプリケーション動いたし、とりあえずこれでいいか。

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

以上。

 - プログラミング