« DBサーバの性能 | トップページ | 顧客とリスクについて話すのは難しい »

2009年2月11日 (水)

Ruby-pg を Windows にインストール

以下の環境でインストールしました。

  • Windows XP SP3
  • ActiveRuby 1.8.7.7
  • PostgreSQL 8.3.5
  • Microsoft Visual C++ 2008 Express Edition

1. PostgreSQL 側の準備

以下が前提条件となります。

  • C ヘッダー (include), ライブラリ (lib) がインストールされている
  • bin にパスが通っている ( pg_config.exe を使うため )

2. ruby config.h を修正

MSC のバージョンが限定されているので、これをはずします。

*** ruby-1.8/lib/ruby/1.8/i386-mswin32/config.h
--- ruby-1.8/lib/ruby/1.8/i386-mswin32/config.h
***************
*** 1,2 ****
! #if _MSC_VER != 1200
  #error MSC version unmatch: _MSC_VER: 1200 is expected.
--- 1,2 ----
! #if _MSC_VER < 1200
  #error MSC version unmatch: _MSC_VER: 1200 is expected.

3. ruby rbconfig.rb を修正

色々修正します。

  • CFLAGS: -MD (msvcrt dll にリンク) を -MT (lib にリンク)
  • DLDFLAGS: -debug を -release
  • LIBRUBY_A: 存在しないのでコメントアウト
*** ruby-1.8/lib/ruby/1.8/i386-mswin32/rbconfig.rb
--- ruby-1.8/lib/ruby/1.8/i386-mswin32/rbconfig.rb
***************
*** 24,26 ****
    CONFIG["PATH_SEPARATOR"] = ";"
!   CONFIG["CFLAGS"] = "-MD -Zi  -O2b2xg- -G6"
    CONFIG["CPPFLAGS"] = "  "
--- 24,26 ----
    CONFIG["PATH_SEPARATOR"] = ";"
!   CONFIG["CFLAGS"] = "-MT -Zi  -O2b2xg- -G6"
    CONFIG["CPPFLAGS"] = "  "
***************
*** 70,72 ****
    CONFIG["OBJEXT"] = "obj"
!   CONFIG["DLDFLAGS"] = "-link -incremental:no -debug -opt:ref -opt:icf -dll $(LIBPATH)"
    CONFIG["ARCH_FLAG"] = ""
--- 70,72 ----
    CONFIG["OBJEXT"] = "obj"
!   CONFIG["DLDFLAGS"] = "-link -incremental:no -release -opt:ref -opt:icf -dll $(LIBPATH)"
    CONFIG["ARCH_FLAG"] = ""
***************
*** 89,91 ****
    CONFIG["RUBYW_INSTALL_NAME"] = "rubyw"
!   CONFIG["LIBRUBY_A"] = "$(RUBY_SO_NAME)-static.lib"
    CONFIG["LIBRUBY_SO"] = "$(RUBY_SO_NAME).dll"
--- 89,91 ----
    CONFIG["RUBYW_INSTALL_NAME"] = "rubyw"
! #  CONFIG["LIBRUBY_A"] = "$(RUBY_SO_NAME)-static.lib"
    CONFIG["LIBRUBY_SO"] = "$(RUBY_SO_NAME).dll"

4. ruby gem でインストール

以下から gem install を起動します。

  • スタート メニュー\プログラム\Microsoft Visual C++ 2008 Express Edition\Visual Studio Tools\Visual Studio 2008 コマンド プロンプト
Setting environment for using Microsoft Visual Studio 2008 x86 tools.

C:\Program Files\Microsoft Visual Studio 9.0\VC>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...

C:\Program Files\Microsoft Visual Studio 9.0\VC>

5. 動作確認

rdoc を参考に、以下のようなテストスクリプトを書いて実行します。

# pg_test.rb

require 'pg'

conn = PGconn.open(
:dbname => 'DBT1',
:hostaddr => '192.168.0.125',
:user => 'pgsql')
res = conn.exec('SELECT $1::int AS a, $2::int AS b, $3::int AS c',[1, 2, nil])
res.each { |t| p t }

動いてますね。

>ruby pg_test.rb
{"a"=>"1", "b"=>"2", "c"=>nil}

|

« DBサーバの性能 | トップページ | 顧客とリスクについて話すのは難しい »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/80472/27970862

この記事へのトラックバック一覧です: Ruby-pg を Windows にインストール:

« DBサーバの性能 | トップページ | 顧客とリスクについて話すのは難しい »