Windowsでruby-pgをコンパイルする

PostgreSQL用のRubyアダプタは、Rubyで書かれたpostgres-prと、Cで書かれたライブラリがありますが、Cで書かれた方は、名前がpostgres、ruby-postgres、ruby-pg、pgところころかわった上、Windows用のバイナリが提供されなくなったため、Windowsでは使いにくくRailsではMySQLが好まれる一因になっているような気がします。

一時はpgのメンテナがWindowsでコンパイルできる人を募集するなどしていたようですが、最近ではバイナリパッケージは出ていないものの、Windowsでのコンパイル方法がフォーラムで紹介されるなど、状況が改善されてきています。

http://www.microsoft.com/japan/msdn/vstudio/express/

私もいろいろ試してみたところ、最新版では通常のgemでもコンパイル導入ができるようなので、紹介しておきます。

1. PostgreSQLのインストール

最新版の8.3.5-1をインストールします。インストールオプションで開発用のモジュール(インクルードファイルとライブラリ)を追加しておきます。

2. Visual C++ 2008 Express Editionのインストール

下記のページから、Visual C++ 2008 Express Editionをダウンロードし、インストールします。
http://www.microsoft.com/japan/msdn/vstudio/express/

3. Rubyのconfig.hの修正

Ruby 1.8.6のヘッダファイルconfig.hには、Visual C++のバージョンを6.0に限定する下記のディレクティブが含まれているため、これをコメントアウトします。

/*
#if _MSC_VER != 1200
#error MSC version unmatch
#endif
*/

4. gemのインストール

環境変数を利用するため、Windowでスタート>すべてのプログラム>Microsoft Visual C++ 2008 Express Edition>Visual Studio Tools>Visual Studio コマンド プロンプトを起動します。
このコマンドプロンプトからgemをインストールします。

>gem install pg
Building native extensions. This could take a while...
Successfully installed pg-0.7.9.2008.10.13
1 gem installed
Installing ri documentation for pg-0.7.9.2008.10.13...
Installing RDoc documentation for pg-0.7.9.2008.10.13...

のようにインストールできればOKです。

Published on 2008/11/28 at 13:12 by いたさん, tags , , , , ,

Powered by Publify | Photo Startup stock photos