web-dev-qa-db-ja.com

Postgres.appでMavericksにpg gemをインストールできません

ローカルマシンにPostgres.appで使用するpg gemをインストールしようとしています。私はマーベリックスを実行しています。

Postgres.appがインストールされ、正常に実行されていますが、gemを動作させることができません。私は次のことをしました:

  1. Postgres.appドキュメントのコマンド「env ARCHFLAGS = "-Arch x86_64" gem install pg ---- with-pg-config =/Applications/Postgres.app/Contents/MacOS/bin/pg_config」を使用しました。
  2. Homebrewを更新し、Apple GCC 4.2をインストールしました
  3. Xcode開発者ツールをインストールしました
  4. Postgres.app binディレクトリとlibディレクトリの両方を参照するように$ PATHを更新しました

すべて成功しません。ここに私が受け取る特定のエラーメッセージがあります:

Building native extensions with: '--with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config'
This could take a while...
ERROR:  Error installing pg:
    ERROR: Failed to build gem native extension.

    /Users/Brian/.rvm/rubies/Ruby-2.0.0-p353/bin/Ruby extconf.rb --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Using config values from /Applications/Postgres.app/Contents/MacOS/bin/pg_config
sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --Ruby=/Users/Brian/.rvm/rubies/Ruby-2.0.0-p353/bin/Ruby
    --with-pg
    --without-pg
    --with-pg-config
    --with-pg-dir
    --without-pg-dir
    --with-pg-include
    --without-pg-include=${pg-dir}/include
    --with-pg-lib
    --without-pg-lib=${pg-dir}/

ご支援いただければ幸いです。ありがとう!

70
blundin

--with-pg-configのパスが間違っている可能性があります。実際に存在するかどうかを確認してください。

pg_configへの正しいパスを見つけるには:

find /Applications -name pg_config

最新のPostgres.appバージョンでは、パスは次のとおりです。

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config
251
Tom De Leu

私の場合(Postgres.app v9.3.4.2を実行)では、環境アーキテクチャフラグを先頭に追加する場合にのみ機能するように見えました。

env ARCHFLAGS="-Arch x86_64" gem install pg -- \
--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config 
16
Marius Butuc

新しいMacを使用しているので、次のことを行う必要があります。

  1. アプリストアからXcodeツールをインストールする
  2. Xcodeツールを開き、ライセンスに同意します
  3. ここで実行します(うまくいけば、将来性のあるコマンド):

    version=$(ls /Applications/Postgres.app/Contents/Versions/ | tail -1) gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/$version/bin/pg_config .

問題が発生した場合は、mkmf.logの実際のエラーをチェックアウトすることで少しトラブルシューティングできます(rvmを使用している場合)。

cd ~/.rvm ; find . -name mkmf.log | grep pg
13
Louis Sayers

このコマンドでpgをインストールできました

    gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

実行してパスを見つけました

    Sudo find / -name "pg_config"

と私は正常にpg-0.17.1をインストールしました

5
ylemp

この問題を解決するために、ターミナルウィンドウで次を使用してhomebrewを使用してpostgresをインストールしました。

brew install postgres

Homebrewはここにあります

http://brew.sh

2
Geoff Smith

postgress bin dirをパスに追加することもトリックです。このようにpatにビンを追加するだけです。最近のインストールでは、最新のシンボリックリンクにより、将来のバージョンアップグレードのためにこのパスが「安定」している必要があります。

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
2
koen

これは私のために働いた:

gem install pg -- --with-pg-config=`which pg_config`
1
Gerry

将来の参考のために、私たちの多くは新しいバージョン番号の新しいパスを投稿しています。

現在、/Applications/Postgres.app/Contents/Versions/latestというシンボリックリンクがあります。

あなたはちょうどできるはずです:

$ gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config

そして、バージョン番号を忘れてください。これはすべての(古い)バージョンに適用されるわけではありませんが、私自身は保存して再利用できるスニペットを探していました。

1
Gabriel Osorio