重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ruby-postgresをインストールしたいのですが、うまくいきません。

コマンドプロンプト上で

>gem install ruby-postgres

と入力したのですが、

ERROR: While executing gem ... (RuntimeError)
ERROR: Failed to build gem native extension.
Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/ruby-postgres-
0.7.1.2005.11.23 for inspection.

というエラーメッセージが出てしまいます。
また、

Results logged to c:/ruby/lib/ruby/gems/1.8/gems/ruby-postgres-0.7.1.2005.11.23/gem_make.out

と書いてあったのでログも確認しましたが、
このファイルには何も書かれていませんでした。

どなたか、ruby-postgresのインストール方法を知っている方いらっしゃれば、教えて頂けると嬉しいです。
宜しくお願い致します。

A 回答 (3件)

質問者さんの例であるruby-postgresは、私の環境だとすんなりインストールされました。


でも、
>gem install sqlite3-ruby
では、失敗しました。

どこかに問題があるのでしょうが、とりあえずの解決方法は、インストールされるべきファイルが何かを調べて、そのファイルをRubyのサイトからダウンロードし、例えば、c:\Rubyの下に保存しておいて

C:\Ruby> gem install ruby-postgres

とすれば、良いのではないでしょうか?

ちなみに私の場合は、デフォルトのSQLite3を使おうとして gem install sqlite3-rubyが処理の途中でエラーを出し、そのままブラウザから呼び出すと

MissingSourceFile (no such file to load -- sqlite3):

となってしまいました。なので、必要なファイルである
「sqlite3-ruby-1.2.1-mswin32.gem」を
http://rubyist.g.hatena.ne.jp/muscovyduck/200703 …
からダウンロードしてC:\Rubyの下に保存して、gem install sqlite3-rubyを実行することで、インストールが成功して、SQLite3がやっと使えるようになりました。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ruby-postgresをインストールするのに必要なファイルをもう一度調べてみます。

お礼日時:2008/10/21 13:59

これは恐らく、MS-Windows 用のバイナリが用意されている gem でコンパイルが不要であってもコンパイラが呼び出されてしまう、というバグです。

参考 URL にある通り、RubyGems 1.2.0 の時に報告されています。

お使いの RubyGems のバージョンはいくつでしょうか。私の手元の RubyGems は 1.3.0 (OS は MS-Windows XP) でして、

>gem install ruby-postgres

とやって成功しています。ただし、このところのバージョンの RubyGems は MS-Windows 上で少々挙動がおかしく、もしかしたら RubyGems のバージョンを上げる時に失敗するかも知れません。(失敗した場合は Ruby から再インストールすることになる可能性があります。)

もう1つの対処法は、参考 URL にある通り、Microsoft Visual C++ 2008 Feature Pack Redistributable Package (vcredist_x86) をインストールするという方法のようです。(私は試していないのでうまくいくかどうか分かりません。)

参考URL:http://rubyforge.org/tracker/index.php?func=deta …
    • good
    • 0
この回答へのお礼

ありがとうございます。大変参考になりました。
バージョンを新しくするために、インストールし直し、再度挑戦することに致しました。

お礼日時:2008/10/21 13:57

>ERROR: Failed to build gem native extension.


>Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/ruby-postgres-

この辺から推察して、Windows用のrubyをお使いと思いますが、
コンパイラはありますか?
ruby本体のコンパイルに使われたものと同じもの(バージョンも同じ)が
使用可能でないと、Cで書かれた拡張ライブラリをインストールことはできません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
まだまだ未熟者でして、コンパイラというものがしっかり理解できていないのですが、確認してみます。

お礼日時:2008/10/21 14:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!