概要
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
もしこの際、次のようなエラーが起こって、インストールできない場合は
ここにあるように、
- http://curl.haxx.se/ca/cacert.pem のファイルをダウンロードし、例えば、C:\RailsInstaller/cacert.pemに保存します。
- コントロールパネルのシステム→システムの詳細設定→環境変数を開き
- システム環境変数に新規で次のものを登録します。 変数名: 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を使います。