OS X 10.9 Mavericksに更新した後、Rails 3アプリを起動しようとしましたが、PGデータベースへの接続が機能していませんでした。データベースであるPGAdminIIIを確認しています。まだそこにあり、正常に動作しているので、pggemを再インストールしようとしました。
gem uninstall pg
gem install pg
しかし、最後のコマンドは成功せず、次のエラーが発生します。
ネイティブ拡張の構築。これにはしばらく時間がかかる場合があります...エラー:pgのインストール中にエラーが発生しました:
エラー:gemネイティブ拡張のビルドに失敗しました。
/Users/XXX/.rvm/rubies/Ruby-1.9.3-p194/bin/Ruby extconf.rb checking for pg_config... yes Using config values from
/ usr/local/bin/pg_config * extconf.rbが失敗しました*何らかの理由でMakefileを作成できませんでした。おそらく、必要なライブラリやヘッダーが不足しています。詳細については、mkmf.logファイルを確認してください。構成オプションが必要になる場合があります。
/Users/XXX/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:381:in `try_do ':コンパイラは実行可能ファイルの生成に失敗しました。
(RuntimeError)最初に開発ツールをインストールする必要があります。 from /Users/XXX/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:461:in
try_link0' from /Users/XXX/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:476:in
try_link'from extconf.rb:39:in ` '
問題はXcode開発者ツールに関連していると思います。 Xcodeを最新バージョンに更新しましたが、それでも問題は解決しませんでした。あなたはそれを修正する方法を知っていますか?
homebrew を使用すると、これが修正されました。
gem uninstall pg
brew install Apple-gcc42
gem install pg
編集:「devtools」も手動でインストールしました
xcode-select --install
あなたは、問題がXcode開発者ツールに関連しているということは正しいです。すべての開発者ツールがインストールされていることを確認することは悪い考えではありません(前の回答で述べたようにgccをインストールするだけではありません)。
Mac OS XMavericksへのPostgres9.3.0アプリの新規インストールからこの問題が発生した場合(つまり、Postgresのインストールにhomebrewを使用していない場合)、pggemをビルドできても気付くかもしれません。 dylibの問題のためにrakeを実行できません:
rake aborted!
dlopen(/Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/Ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle, 9): Library not loaded: @loader_path/../lib/libpq.5.dylib
Referenced from: /Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/Ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle
Reason: image not found - /Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/Ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle
残念ながら、これはPostgresの現在のリリースバージョン9.3.0の問題です。以前のバージョンに戻すと、修正されます。
gem uninstall pg
gem install pg
* comment by jhiro009 on this thread この問題の最後のPostgresアプリの部分で私を正しい方向に向けてくれてありがとう、彼が言及した9.2.4.3バージョンは私には効かない。
OS XMavericksの場合
Sudo ln -s /usr/bin/llvm-gcc /usr/bin/gcc-4.2
gem uninstall pg; gem install pg;
自作のPostgresql(9.3.1)インストールおよびAppleコマンドラインツールのインストール(pg 0.17.0)で動作します。
どのソリューションも私にはうまくいきませんでした、そして私はMacPortsを使いたくありませんでした。 Postgres App をダウンロードして、アプリケーションディレクトリに配置してみてください。
次に、アプリ内にある、新しくダウンロードしたpg_config
の場所を指定します。
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
ヘッダーが見つからないという問題が発生した場合は、アプリのinclude
ディレクトリを指定してみてください。
gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/MacOS/include/'
以前のソリューションはどれも私にはうまくいきませんでした(私はマーベリックスにアップグレードしてXCodeを更新しました)。代わりに、 Postgress.app をインストールしました。と呼ばれる
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
簡単な修正を探している場合は、database.ymlファイルに以下を追加してください。
Host: localhost
私は正確な問題を抱えていて、その行を追加しました、そして今すべてが順調です。
New-Bambooの人たちからのこの投稿に続いて運が良かった:
OS X 10.9 Mavericksでコーディングするための3つのクイックヒント
Xcode開発ツールをインストールした後、3番目のステップですべてを整理しました。
brew tap homebrew/versions && brew install Apple-gcc42
brew link --force Apple-gcc42
ln -nsf $(which gcc-4.2) /usr/bin/gcc-4.2