web-dev-qa-db-ja.com

pggemのインストール;エラー:gemネイティブ拡張のビルドに失敗しました

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を最新バージョンに更新しましたが、それでも問題は解決しませんでした。あなたはそれを修正する方法を知っていますか?

20
Abramodj

homebrew を使用すると、これが修正されました。

gem uninstall pg
brew install Apple-gcc42
gem install pg

編集:「devtools」も手動でインストールしました

xcode-select --install
19
codenamev

あなたは、問題がXcode開発者ツールに関連しているということは正しいです。すべての開発者ツールがインストールされていることを確認することは悪い考えではありません(前の回答で述べたようにgccをインストールするだけではありません)。

  1. Xcodeを開きます
  2. アプリケーションメニュー項目「Xcode」で、「開発者ツールを開く」>「その他の開発者ツール...」を選択します。
  3. これにより、多数のソフトウェアを備えたサイトに移動します。先に進み、「Xcode用のコマンドラインツール(OS X Mavericks)-2013年10月下旬」をダウンロードしてインストールします。
  4. これで、gemを正しくインストールできるようになります。

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の問題です。以前のバージョンに戻すと、修正されます。

  1. pg gemをアンインストールします:gem uninstall pg
  2. 9.3.0 Postgresアプリをゴミ箱にドラッグし、ゴミ箱を空にして削除します
  3. ここにPostgresアプリのバージョン9.2.2.0をインストールします: http://postgres-app.s3.amazonaws.com/PostgresApp-9-2-2-0.Zip
  4. pg gemを再インストールします:gem install pg

* comment by jhiro009 on this thread この問題の最後のPostgresアプリの部分で私を正しい方向に向けてくれてありがとう、彼が言及した9.2.4.3バージョンは私には効かない。

22
schmielson

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)で動作します。

8
guapolo

どのソリューションも私にはうまくいきませんでした、そして私は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/'
3
Yuri

以前のソリューションはどれも私にはうまくいきませんでした(私はマーベリックスにアップグレードしてXCodeを更新しました)。代わりに、 Postgress.app をインストールしました。と呼ばれる

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
3
iceui2

簡単な修正を探している場合は、database.ymlファイルに以下を追加してください。

Host: localhost

私は正確な問題を抱えていて、その行を追加しました、そして今すべてが順調です。

2
Don Sullivan

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
0
purpletonic