- 締切済み
ruby-postgresのインストール方法
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のインストール方法を知っている方いらっしゃれば、教えて頂けると嬉しいです。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- lv4u
- ベストアンサー率27% (1862/6715)
質問者さんの例である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/20070325/p2 からダウンロードしてC:\Rubyの下に保存して、gem install sqlite3-rubyを実行することで、インストールが成功して、SQLite3がやっと使えるようになりました。
これは恐らく、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) をインストールするという方法のようです。(私は試していないのでうまくいくかどうか分かりません。)
お礼
ありがとうございます。大変参考になりました。 バージョンを新しくするために、インストールし直し、再度挑戦することに致しました。
- sakusaker7
- ベストアンサー率62% (800/1280)
>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で書かれた拡張ライブラリをインストールことはできません。
お礼
ありがとうございます。 まだまだ未熟者でして、コンパイラというものがしっかり理解できていないのですが、確認してみます。
お礼
ありがとうございます。 ruby-postgresをインストールするのに必要なファイルをもう一度調べてみます。