Posts WindowsにRails開発環境
Post
Cancel

WindowsにRails開発環境

概要

UbuntuをVirtual Boxで利用したり、Vagrantを利用してもっと楽に仮想マシーンを構築したり、とWindowsでもLinux環境をとっても簡単に構築できる昨今になりました(VirtualBoxにUbuntu、そしてコンピュータ言語をインストール(Gitはおまけ)http://thinkit.co.jp/story/2014/06/25/5072をどうぞw)。

しかし、それでもちょっとでもサーバーが少しでも速ければ開発時間も短くなるのではないか、という(若干せこい)思いもあったりします(特に、Selenium等の試験などでは結構時間がかかるので、差が広がる可能性も)。ただそうとは限らないかもしれないので(パフォーマンステスト参考)、あくまでも、気分的です。

というわけで、たまたま開発している自分のコンピュータがMacやLinuxじゃなく(私はMacが多いのですけど・・・w)、やむなくWindowsの場合にWindowsネイティブな環境で開発したい、と思い立ち、インストールした際のメモ書きです。

基本的にはnokogiriとかmysql2とか、qtを利用したCapybara&capybara-webkitのインストール、それとJekyllのインストールでいつもの「gem install ・・・」ではうまくいかなかった部分のメモ、ということになります。

前提条件

筆者のインストールしたコンピュータはWindows7・64ビット。2015年1月現在の状況です。

Ruby本体とnokogiri

Rubyにはインストーラ付きのものもありますが、これだとCコンパイルしないと「gem install」出来ないようなものをインストールできません。

そこで、「mingw」などのwin32環境でCコンパイルできる環境も揃えているhttp://railsinstaller.org/enから、Rails等のパッケージが始めから付いている「 WINDOWS RUBY 2.1」をダウンロードします。

ダウンロードしたファイルを実行して、デフォルトだとc:\直下に次のようなディレクトリーができます(2階層目までしか表示していません)。

インストーラーが、パスとかを通してくれます(Gitとかもインストールしてくれる)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
C:\RailsInstaller
├ DevKit
│ ├ bin
│ ├ etc
│ ├ include
│ ├ lib
│ ├ mingw
│ ├ postinstall
│ ├ sbin
│ ├ share
│ ├ config.yml
│ ├ devkitvars.bat
│ ├ devkitvars.ps1
│ ├ dk.rb
│ ├ m.ico
│ ├ msys.bat
│ └ msys.ico
├ Ruby2.1.0
│ ├ bin
│ ├ include
│ ├ lib
│ ├ share
│ └ setup_environment.bat
├ scripts
│ └ config_check.rb
├ unins000.dat
└ unins000.exe

ここで、一度Windowsをリブートすると良いかもしれません(パスなどがしっかり通るように)。

コマンドプロンプトで上記の「C:\RailsInstaller\DevKit」をカレントディレクトリにします。そこで

1
2
ruby dk.rb init
ruby dk.rb install

を行います。

これで、エラーが起こったりしたら「C:\RailsInstaller\DevKit\config.yml」をエディタで開いて

1
2
3
4
# ---
# - C:/ruby19trunk
# - C:/ruby192dev
# ---

となっているのを

1
2
3
#
- C:/RailsInstaller/Ruby2.1.0
#

に変更して、再度

1
ruby dk.rb install

を行います。

warningは出るかもしれませんが、これでOKです。

そのまま、http://www.nokogiri.org/をインストールしてみましょう。

このnokogiriは、html/xmlのパーサーですが、Linux等では問題なくインストールできるのですが、Windowsではこのmingwを使ってもうまくインストールできません。

プレリリース版はインストールできるので、コマンドラインで次のコマンドを実行して下さい。

1
gem install nokogiri --pre

もしこの際、次のようなエラーが起こって、インストールできない場合は

>SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

ここにあるように、

  1. http://curl.haxx.se/ca/cacert.pem のファイルをダウンロードし、例えば、C:\RailsInstaller/cacert.pemに保存します。
  2. コントロールパネルのシステム→システムの詳細設定→環境変数を開き
  3. システム環境変数に新規で次のものを登録します。 変数名: SSL_CERT_FILE 変数値: C:\RailsInstaller\cacert.pem

これで再度実行してみて下さい。私の環境ではOKでした。

QTとcapybara-webkit

ほとんどhttp://d.hatena.ne.jp/penult/20140429/1398755123に書いてある通りでOKでした。

capybara-webkitはQTが必要なのですが、5系はまだ使えそうになく、4.8を落としてきます。

http://download.qt.io/archive/qt/4.8/4.8.6/から「qt-opensource-windows-x86-mingw482-4.8.6-1.exe」ダウンロードし(相当ファイルはでかい)、クリックしてインストールします(ここではc:\qtにインストールしたとします)。

そして、c:\qtにパスを通します(わからない場合はhttp://next.matrix.jp/config-path-win7.htmlあたりを参考にしてください)。

そして、次のような作業を行います。

C:/qt/mkspecs/win32-g++/qmake.confをエディタで開き、

1
2
3
QMAKE_LFLAGS		= を

QMAKE_LFLAGS		= -static-libgcc -static-libstdc++

に変更します。

そして、コマンドプロンプト上で

1
2
3
4
5
6
7
8
9
10
gem install capybara-webkit
C:\work>gem install capybara-webkit
Fetching: capybara-webkit-1.3.1.gem (100%)
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
Successfully installed capybara-webkit-1.3.1
Parsing documentation for capybara-webkit-1.3.1
Installing ri documentation for capybara-webkit-1.3.1
Done installing documentation for capybara-webkit after 0 seconds
1 gem installed

でおしまいです。

MySQLとmysql2

http://cobot.hatenablog.com/entry/2014/02/01/211843を参考にしました。

とりあえず、MySQLがなかったら、http://dev.mysql.com/downloads/windows/installer/から、Windows (x86, 32-bit), MSI Installerでインストールしておきます(Oracleのユーザー登録が必要です、たぶん)。英語の説明がありますが、32-bitという名前になっているけれど、それはインストーラが32ビットということで、64ビット版もインストールされるらしい(Note: MySQL Installer is 32 bit, but will install both 32 bit and 64 bit binaries.)。

これとは別にc-connectorなるものをダウンロードしてきます。

http://dev.mysql.com/downloads/connector/c/に行って、32ビット版のzipファイルをダウンロードします(64ビットもOKだったこともあるのですが、出来ないときもあったので、用心して32ビット版を。でも挑戦したい人は止めませんw)。

解凍先は仮に

1
c:\mysql-connector-c-6.1.5-win32

とします。こののc:\ysql-connector-c-6.1.5-win32\libディレクトリからlibmysql.dllをC:\RailsInstaller\ruby\binにコピー。そして、コマンドライン上で、

1
gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:\mysql-connector-c-6.1.5-win32"'

でインストールできます。

MySQLが自動起動になっていない(蛇足)?

どう間違ったのか、もともとそうなのかはわからないのですが、MySQLをインストーラーでインストールしたはずなんですが、自動起動になっていません。

そこで

1
C:/mysql-5.6.22-win32/bin/mysqld.exe

を叩いて、デーモンを起動させてます。それからクライアントはコマンドプロンプトでカレントを「C:/mysql-5.6.22-win32/bin/」にします。そしてrootのパスワードをまだ設定してなかったら

1
2
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('untara') WHERE User='root';

とか設定します。そして、railsのdevelopment用のユーザーを作成します。

1
GRANT ALL PRIVILEGES ON *.* TO papanda@localhost IDENTIFIED BY 'hunyarara' WITH GRANT OPTION;

で、次からは、仮にRailsのdevelopment用のデータベース名がuntara_developmentなら、コマンドプロンプトで

1
2
3
4
mysql -u papanda -p
#hunyararaを入力してリターン
use untara_developmen;
select * .....

という感じでMySQLを使います。

シェア
#内容発言者

Ruby ワンライナー(1行プログラム)

パフォーマンステスト1

坂井和郎