[ruby-list:46571] ruby1.9 でpostgresql8.4を利用するときについて。

From: Nobuyuki Inaba <nobuyuki.inaba@...>
Date: 2009-11-27 10:12:10 UTC
List: ruby-list #46571
稲葉と申します。
いつも、rubyを使っていますが、ruby1.9を使おうとおもい、試してうまくいかないので質問させてください。
使っているOSはubuntuで、最近9.10にしました。

まず、単純に
プログラムの最初の行を
#!/usr/bin/ruby
と言うところを

#!/usr/bin/ruby1.9
# encoding: utf-8

として実行しています。(これも正しいか参考になるところを知ってたら教えて欲しいと思います。)

データベースはPostgreSQL8.4を利用していまして、
その関連のライブラリ libpgsql-ruby1.9 libdbd-pg-ruby1.9 libdbi-ruby1.9 インストールしてみています。

プログラムを実行しますとエラーがでます。

例として
-------------------
#!/usr/bin/ruby1.9
# encoding: utf-8
require 'dbi'

begin
 conn = DBI.connect('DBI:PG:testdb:localhost', 'test01', '123456789')
 sql = "
  CREATE TABLE t01
  (
  id serial NOT NULL PRIMARY KEY,
  key integer
  );"
  sth = conn.prepare(sql)
  sth.execute

  for i in 0 .. 10000
    num = rand(1000)
    sql = "INSERT INTO t01(key) values(#{num}); "
    sth = conn.prepare(sql)
    sth.execute
    puts i
  end

end
-------------------
を実行しますと


$ ruby1.9 test.rb
/usr/lib/ruby/1.9.0/dbi.rb:294:in `block in load_driver': Unable to
load driver 'PG' (underlying error: uninitialized constant
DBI::DBD::PG) (DBI::InterfaceError)
	from /usr/lib/ruby/1.9.0/monitor.rb:190:in `mon_synchronize'
	from /usr/lib/ruby/1.9.0/dbi.rb:236:in `load_driver'
	from /usr/lib/ruby/1.9.0/dbi.rb:154:in `_get_full_driver'
	from /usr/lib/ruby/1.9.0/dbi.rb:139:in `connect'
	from test.rb:6:in `<main>'

というふうにエラーが出ます。

$ ruby test.rb
と実行しますとエラーはでません。


何が問題かご存じないでしょうか?

In This Thread

Prev Next