1. ホーム
  2. ruby-on-rails

MavericksでPostgres.appを使用するとpg gemをインストールできない。

2023-10-13 05:33:34

質問

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

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}/

何かお手伝いいただけると幸いです。ありがとうございます!

どのように解決するのですか?

のパスが間違っている可能性があります。 --with-pg-config のパスが間違っている可能性があります。

正しいパスが pg_config を使っています。

find /Applications -name pg_config

最新のPostgres.app Versionでは、パスはこうなっています。

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