こんばんわ。
たまごとかです。

FreeBSD上で影舞を使ってBTSを運用してたのですが、
6.2Rから最新のportsにバージョンアップしたところPostgreSQLに接続できなく
なりました。

問題の切り分けとして以下サンプルプログラムを実行したところ、
------------------------------------------------------------------------
#!/usr/local/bin/ruby

require "dbi"
$SAFE = 1
database = 'template1'
host = 'localhost'
usr = 'kagemai'
pass = ''
DBI.connect("DBI:Pg:database=#{database};host=#{host}", usr, pass) do |db|
end
------------------------------------------------------------------------
以下エラーとなりました。
------------------------------------------------------------------------
/usr/local/lib/ruby/site_ruby/1.8/dbi.rb:342:in `load_driver': Could not
load driver (no
such file to load -- postgres). Note that in SAFE mode >= 1, driver URLs
have to be
case sensitive! (DBI::InterfaceError)

        from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:227:in `_get_full_driver'
        from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:213:in `connect'
        from ./test.cgi:13
------------------------------------------------------------------------
postgresql用のライブラリにアクセスできてないっぽいです。

関係ありそうなパッケージは以下をインストールしてあります。
postgresql-client-8.2.6_1
postgresql-server-8.2.6
eruby-1.0.5
ja-ruby18-uconv-0.4.12
mod_ruby-1.2.6
ruby-1.8.6.111_1,1
ruby18-GD-0.7.4_6
ruby18-aspectr-0.3.5
ruby18-bdb-0.6.2
ruby18-dbd_pg-0.1.1
ruby18-dbi-0.1.1
ruby18-gems-1.0.1_3
ruby18-iconv-1.8.6.111,1
ruby18-setup.rb-3.4.1
rubygem-ruby-postgres-0.7.1.2006.04.06_1

以上です。何かお分かりの方がいらっしゃいましたらご教授願います。


メールによる返信