Paradigm Shift Design

ISHITOYA Kentaro's blog.

WindowsでRailsの開発環境を準備する

2年前くらいにすこしだけ触って、それから放置していたRailsを仕事で使うことになったので、今回再度、環境を構築しようと思ったのだけれど、備忘録がなくて少し苦労しました。
後輩たちも使うそうなのでまとめて備忘録をつけておこうと思います。

RubyRailsと書籍

あー、RubyはMatzさんが開発したスクリプト言語です。Ruby - Wikipediaとか読んだらいいと思う。
Railsは、言語ではなくてRubyで書かれたWebアプリケーションフレームワークです。まぁRuby on Rails - Wikipediaを読めばいいんじゃないか。
Webアプリケーションフレームワークが何をするかわからないなら[ThinkIT] 第1回:Webアプリケーションフレームワークとは (1/4)とか読んでください。


Rubyの本は、

プログラミングRuby 1.9 −言語編−

プログラミングRuby 1.9 −言語編−


でいいのではないかと思う。Rails
RailsによるアジャイルWebアプリケーション開発 第3版

RailsによるアジャイルWebアプリケーション開発 第3版


で、両方ともオーム社eStore(β)から電子書籍で買える。こういうリファレンス本こそ電子書籍の価値がある。検索できるってことがどれだけ効率に影響するか…。iPadで読むときはi文庫HDがよろしかろうと思います。PDF が読める iPad アプリ 10個を比較してみたよ - 彼女からは、おいちゃんと呼ばれていますで比較されているけれど、goodiware.com :: products :: GoodReaderBookmanについて(日本語) « Bookman Labは次ページに進んだ時に、そのページのレンダリングを始めるので、表示が遅くてイラッとくる。
i文庫HDは、あの格好いい*1ページめくりエフェクトのおかげで次のページをキャッシュしているから、ページめくりが軽快でよろしい。
iPadの話で、iPad2だとどうなのかわからないけど。

構築する環境

普通Railsを使う場合はNetBeansMySQLな感じみたいだけど、うちの研究室も会社もPostgreSQLなので、

  1. Ruby 1.9.2-p180
  2. Rails 3.0.6
  3. PostgreSQL
  4. Windows XP

な開発環境をWindows上に構築します。

Rubyのインストール

オブジェクト指向スクリプト言語 Rubyのダウンロードページに各環境用バイナリへのリンクが張ってあって、Windowsのバイナリへのリンクがいくつかあるけれども、RubyInstaller for Windowsをインストールすればいいみたい。One-Clickじゃねぇじゃないかと何度も言われましたが、知りません。なんとなく日本語の取り扱いが微妙なので、できればドライブ直下とか、インストールディレクトリにスペースが入らないようなところへインストールするといいかと思います。

C:\ruby\1.9.2-p180

とかね。

環境変数の追加

#One-Clickだと最初にチェックボックスを選択すればやってくれます。

rubyのインストールが終わったら、環境変数RUBY_HOMEを作成して、PATHに%RUBY_HOME%/binを追加してください。最近は環境変数もいじらなくてよくなってきたのかなとも思うけど、rubyはgemをコマンドプロンプトでよく使うみたいなので。

環境変数の追加・変更は、システムのプロパティからやるのもいいけど、窓の杜 - Rapid Environment Editor(About - Rapid Environment Editor)あたりがいいらしい*2ですよ。

RUBY_HOME=C:\ruby\1.9.2-p180
PATH=%PATH%;%RUBY_HOME%\bin

的なことを追加してください。Pathの通し方くらいはGoogle先生が答えてくれます。
で、コマンドプロンプトを立ち上げて、

ruby --version

と打って

ruby 1.9.2p180 (2011-02-18) [i386-mingw32]

とか返事が返ってきたらOKです。
ちなみにコマンドプロンプトはデフォルトでは範囲指定やコピペができないので簡易編集の設定をしておくといいです。@IT:Windows TIPS -- Knowledge:これだけは覚えておきたい、コマンド・プロンプトの使い方あたりを読んでください。因みにコピーはCtrl+Cじゃなくて選択してEnterですよ。

gemのアップデートとrailsのインストール

で、ここまで来たらRubyGemsをアップデートします。しなくてもいいかもしれないけど。RubyGemsRuby用のパッケージ管理システムです。javaでいうmavenのdependency mechanizmだし、PHPPEARだし、Linuxのyumやrpmやapt-getです。まぁRubyGems - Wikipediaを読んでください。

gemをアップデートするには

gem update --system
gem update

してください。上の行はgem自体のアップデート、下はgemでインストールされているパッケージのアップデートです。gemでエラーが出る場合は環境変数の設定とか見直してください。あとcygwinからcmdって打ってコマンドプロンプトを使わないように。なんか変になることがあります。

これが終わったらいよいよrailsのインストール。
…まぁ

gem install rails

って打てば終わりだし、NetBeansとかだとボタンがついてたりもするけど。インストールが終わったら

rails --version

と打って

Rails 3.0.6

とか言われればOKです。

PostgreSQLのインストール

ここはMySQLな人は飛ばせばいいと思います。MySQLとかPostgreSQLとかOracleとかのRDBMSがわかんねぇって人はグーグル先生に聞けばいいと思います。

PostgreSQLは何も考えずに、Download PostgreSQL | EnterpriseDBからDLしてインストールしてください。途中で聞かれるパスワードを覚えておいてください。あとインストール後に聞かれるStack Builderは立ち上げなくていいです。

pgパッケージのインストールとDevKitのインストール

で、rubyからpostgreSQLにアクセスするためのpgというパッケージをインストールします。

以下、インストール時にはまった項目を列挙していますから、普通のインストールの仕方は
ged / ruby-pg / wiki / Win32Instructions — Bitbucket
を見てください。

Visual StudioのExpressEditionをインストールしたり、VSについてるVisualStudioコマンドプロンプトを使わないといけないとかいうのは、省いていいよね?

pgパッケージのインストールの仕方、正解

正解は、PostgreSQLのbinに入っているpg_config.exeを直接実行したときに出てくる、

BINDIR = C:/PROGRA~1/POSTGR~1/9.0/bin

C:/PROGRA~1/POSTGR~1/9.0

というショートネームを--with-pg-dirに渡せばいい。
ショートネームって何ぞ、という人は@IT:Windows TIPS -- Tips:8.3形式の短いファイル名を表示させるを読んでください。

デフォルトだと、

C:\Program Files\PostgreSQL\9.0

とかにインストールされてるので、同じ場所なら

gem install pg -- --with-pg-dir=C:/PROGRA~1/POSTGR~1/9.0

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

DevKitのインストール

でまぁ、これが厄介で、
何も考えずに

gem install pg

とかやると

Fetching: pg-0.10.1.gem (100%)
ERROR:  Error installing pg:
        The 'pg' native gem requires installed build tools.

Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'

とまぁ、Windows上でビルドしようとしたけど環境がないから失敗したよ、DevKit入れてねって言われます。素直に従ってDownloadsからDevelopment Kitをダウンロードします。
DLしたファイルはただの7zipファイルなので、ダブルクリックするとインストールする場所を聞かれますが、これもまたスペースが入っていたり日本語が入っていたりすると微妙なので、

C:\languages\ruby\DevKit

的な場所に解凍します。Development Kit · oneclick/rubyinstaller Wiki · GitHubを読めばインストールできると思うのですが、

cd C:\languages\ruby\DevKit
ruby dk.rb init
ruby dk.rb install

すればいいです。initした時にごにょごにょ言われる場合、cygwinでやらないように。素のWindowsのコマンドプロンプトでやってください。

試行錯誤

そして、DevKitもインストールできたからpgインストールできるだろ!と思って、再度

gem install pg

とやると、

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

        D:/languages/ruby/1.9.2-p180/bin/ruby.exe extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** 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.

Provided configuration options:
--snip--
        --with-pg-dir
--snip--

とか言いやがります。pg_configが見つからないからlibpq-fe.hが見つからないとな。--with-pg-configつけろとかいうので、

gem install pg --with-pg-dir="C:\Program Files\PostgreSQL\9.0"

とすると、今度は

ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --with-pg-dir=C:\Program Files\PostgreSQL\9.0

とかなります。オプションつけろって言ったくせに。コマンドの追加の仕方は、

gem install pg -- --with-pg-dir="C:\Program Files\PostgreSQL\9.0"

です。で、これでも通らなくて、

Using config values from D:\Program

とかいうので、PathにPostgreSQLのbinを追加して解決しようとすると

checking for pg_config... yes

とpg_configは見つかっているのに

extconf.rb:13:in ``': No such file or directory - D:\Program Files\PostgreSQL\9.
0\\bin/pg_config.exe --includedir (Errno::ENOENT)
        from extconf.rb:13:in `<main>'

とか言われて半狂乱になります。The Evelotuion of a Programmar - けむしろうwebのChief Executiveを思い出します。最近のネット企業では、こんなジョーク通じないかもね。

で、繰り返しになりますが正解は、pg_config.exeを直接実行したときに出てくる、

BINDIR = C:/PROGRA~1/POSTGR~1/9.0/bin

C:/PROGRA~1/POSTGR~1/9.0

というショートネームを--with-pg-dirに渡せばいい。デフォルトだと、

C:\Program Files\PostgreSQL\9.0

とかにインストールされてるので、同じ場所なら

gem install pg -- --with-pg-dir=C:/PROGRA~1/POSTGR~1/9.0

とすると

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
Successfully installed pg-0.10.1
1 gem installed
Installing ri documentation for pg-0.10.1...
Installing RDoc documentation for pg-0.10.1...

と、無事インストールできます。
っつか、めんでぇ!って方はruby+PostgreSQLを使わないといいと思います。

参考:

WindowsのIDE*3

で、Windowsの開発環境はNetBeansを使おうと思います。
ただ、NetBeansは神託によってRubyサポートが打ち切られるらしい(NetBeans 7.0ではRuby on Railsのサポートを停止する方針 - SourceForge.JP Magazine : オープンソースの話題満載)ので、他のIDEも検討したほうがいいみたいです。Emacs大好きなのでこの界隈詳しくないのだけれど、Ruby on Rails用 統合開発環境(IDE) 比較レポート(1/3):CodeZineという記事にあるように、

  1. Aptana
  2. NetBeans
  3. Eclipse

Ruby開発環境として有力みたいで、AptanaEclipseに関してはAptana単体のものとEclipseプラグインとしてのAptanaがあるそう。使うならどっち?Eclipse or Aptana | Technolog.jp - ICTウェブマガジンを読むに、まぁEclipseでいいみたいです。

記事書き始めて調べたので、今はNetBeansってことで…。
で、【ハウツー】NetBeansでRuby on Rails開発 (1) 開発を始める前に | エンタープライズ | マイナビニュース読めばOK。

まとめ

あとは本読んで。

所感

いや、PostgreSQLRuby界隈でこんなに冷遇されているなんて。
本当はサーバーのほうも書こうと思ったけど、もうめんどいのでこれで終わり。


せんでん

1タップで写真共有tottepost
カメラのついたiPad/iPhoneで撮った写真を、その場でFacebook/Mixi/DropboxなどのサービスにアップロードできるtottepostというiOSアプリを開発しています!詳しくは、iTunes App Storeをご覧ください。


ご購入はこちら!
1タップで写真共有 - tottepost - ISHITOYA Kentaro

*1:無駄な

*2:スキンの変更とか言語の変更とかが簡単にできるのにキーや値の検索ができないという不思議なアプリケーションですが

*3:Integrated Development Environment/統合開発環境