Mavericksを使用してMacにPG gemをインストールできない


103

Railsプロジェクトで再び作業するために、pg gemをインストールしようとしています。しかし、私はこのエラーを受け取ります:

ネイティブ拡張の構築。これにはしばらく時間がかかる場合があります...エラー:pgのインストールエラー:エラー:gemネイティブ拡張のビルドに失敗しました。

/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If

ビルドが失敗しました。libpq-fe.hをチェックする--with-pg-config = / path / to / pg_configを使用して再試行してください...いいえ 'libpq-fe.hヘッダーが 見つかりません* extconf.rbが失敗しました*何らかの理由でMakefileを作成できませんでした。おそらく必要なライブラリやヘッダーが不足している可能性があります。詳細については、mkmf.logファイルを確認してください。構成オプションが必要になる場合があります。

提供される構成オプション:--with-opt-dir --without-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 / jeanosorio / .rvm / rubies / ruby​​-2.0.0-p247 / bin / ruby​​ --with-pg --without-pg --with-pg-config --without-pg -config --with-pg_config --without-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} /

Gemファイルは、検査のために/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0にインストールされたままになります。/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.outに記録された結果

私はstackoverflowで見つけたすべてを試しましたが、それでもこのエラーが発生します。

brewを使用してpostgresqlをインストールしようとすると、次の警告が表示されます。

警告:postgresql-9.2.4はすでにインストールされていますが、リンクされていません

リンクしようとすると

brew link postgresql /usr/local/Cellar/postgresql/9.2.4をリンクしています...警告:postgresqlをリンクできませんでした。リンクを解除しています...

エラー:ファイルをシンボリックリンクできませんでした:/usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 / usr / local / share / man / man7は書き込み可能ではありません。権限を変更する必要があります。

助けてください

注:mavericksのコマンドラインツールは既にインストールされています。


homebrewを使用してアンインストールしてから再度インストールしようとすると、次のエラーが発生します。

==> http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2をダウンロードしています

################################################## ################ 100.0%

==>パッチパッチファイルsrc / pl / plpython / Makefileパッチファイルcontrib / uuid-ossp / uuid-ossp.c ==> ./configure --prefix = / usr / local / Cellar / postgresql / 9.2.4- datadir = / usr / local / Cellar / postgresql / 9.2.4 / share / postgresql --docdir = / usr / local / Cellar / p ==> make install-world ==>警告

ビルドノート

PostgreSQL 9のビルドが失敗し、バージョン8.xがインストールされている場合は、最初に以前のバージョンを削除する必要がある場合があります。参照:https :
//github.com/mxcl/homebrew/issues/issue/2510

データベースの作成/アップグレード

これが初めてのインストールの場合は、次のコマンドでデータベースを作成します。initdb / usr / local / var / postgres -E utf8

PostgreSQLの以前のメジャーバージョン(9.2より前)から既存のデータを移行するには、http://www.postgresql.org/docs/9.2/static/upgrading.htmlを参照して
ください。

拡張機能の読み込み

デフォルトでは、Homebrewは利用可能なすべてのContrib拡張機能をビルドします。使用可能なすべての拡張機能のリストを表示するには、psqlコマンドラインから次のコマンドを実行します
。SELECT * FROM pg_available_extensions;

拡張名をロードするには、目的のデータベースに移動して次を実行します。CREATE EXTENSION [拡張名];

たとえば、現在のデータベースにtablefunc拡張機能を読み込むには、次のコマンドを実行します。CREATE EXTENSION tablefunc;

CREATE EXTENSIONコマンドの詳細については、
http://www.postgresql.org/docs/9.2/static/sql-createextension.htmlを参照してください。拡張機能の詳細については、http://www.postgresql.org/を参照して
ください。 docs / 9.2 / static / contrib.html

その他の

一部のマシンでは、共有メモリのプロビジョニング要求することができる:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC ARCHFLAGS含むPostgresの宝石を、インストールする場合お勧めします。ARCHFLAGS =「 -アーチx86_64版を」 gem install pg

sudoなしでgemをインストールするには、Homebrew wikiを参照してください。

launchdでログイン時にpostgresqlを開始するには:ln -sfv /usr/local/opt/postgresql/*.plist〜/ Library / LaunchAgents次にpostgresqlをロードするには:launchctl load〜/ Library / LaunchAgents / homebrew.mxcl.postgresql.plistまたは、launchctlが不要/必要でない場合は、次のコマンドを実行します。pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start警告:postgresqlをリンクできませんでした。リンクを解除しています...エラー:brew linkステップは正常に完了しませんでした数式は作成されましたが、/ usr / localにシンボリックリンクされていません `brew link postgresql '==>まとめagain /usr/local/Cellar/postgresql/9.2 .4:2831ファイル、38M、4.9分で作成


解決:

フォルダの権限を変更するために、次のコマンドを実行します。

sudo chown jeanosorio / usr / local / share / man / man7

その後

brew link postgresql Linking /usr/local/Cellar/postgresql/9.3.1 ... 421 symlinks created

そして最後に:

sudo ARCHFLAGS = "-arch x86_64" gem install pg

取得:pg-0.17.0.gem(100%)ネイティブ拡張をビルドしています。これにはしばらく時間がかかります... pg-0.17.0が正常にインストールされました

回答:


252

MacPortsの使用を避けたい場合は、Postgresアプリをダウンロードして、アプリケーションディレクトリに配置できます。

次に、新しくダウンロードした場所を指定しますpg_config

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

ヘッダーが見つからないという問題が発生した場合includeは、アプリのディレクトリを指定してみてください。

gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/Versions/latest/include/'

11
:あなたはまだ設定のenv変数を設定することにより、バンドラを使用することができることをするだけのノートexport CONFIGURE_ARGS="with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config"
film42

8
:あなたはPostgresの9.3を使用している場合は(今日のように最新)、あなたはこれを行うことができます gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
cavneb

Postgres93.appの使用は機能しましたが、インストールをバンドルするには、PATH環境変数にビンパスを追加する必要がありました。
mkhatib 2013

5
これを使用して動作させる必要がありました gem install pg -- --with-pg-config=/Applications//Postgres.app/Contents/Versions/9.3/bin/pg_config
StevenNunez

1
ありがとう!警告が表示されました:postgresqlをリンクできませんでした。リンクを解除しています...エラー:ファイルをシンボリックリンクできませんでした:...は書き込み可能ではありません。権限を変更する必要があります。そして、私はインストール/リンクpostgresqlをbrewした後、すべてがbrewフォールトですインストールは次の場所に行きます:/usr/local/Cellar/postgresql/9.3.4をリンクしています...問題を解決してくれてありがとう!!!!!!
d1jhoni1b 2014

74

醸造を使用して postgresql

brew install postgresql

インストールされたbrewにpg_configがあることを確認します。で見つけた

/usr/local/Cellar/postgresql/9.3.3/bin/pg_config

経由で確認:

$ ls /usr/local/Cellar/postgresql/9.3.3/bin/pg_config
> /usr/local/Cellar/postgresql/9.3.3/bin/pg_config

完了したら、pggemをインストールします

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.3/bin/pg_config

2
いろいろなことを試した後、私のために働きました。正しいバージョン番号(私の場合は9.3.5_1)を使用していることを確認する必要がありました!
HK

1
ls /usr/local/Cellar/postgresql/9.*/bin/pg_config実際のパスを見つけるために使用しますenv ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=$(ls /usr/local/Cellar/postgresql/9.*/bin/pg_config)
Jesper Grann Laursen、2015年

ここで何が起こるかについてのもう少し詳細な説明deveiate.org/code/pg/README-OS_X_rdoc.html
Julia Usanova

35

MacPorts経由でpostgresをインストールできませんでした。代わりに、Postgress.appをインストールしました。そして呼ばれた

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

注:新しいバージョン(少なくとも9.3)では、パスは実際には次のとおりです。 /Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config


2
これは機能しますが、Postgres.appがPostgres <NN> .appとしてインストールされる場合があることに注意してください。NNはバージョン番号です。
nimrodm 2013

11

自作がある場合は、次のように入力します。

$ brew install postgresql


1
これは私にとってはうまくいきました-私はすでにPostgreSQLをインストールしていましたが、ヘッダーを更新するために再度インストールする必要があったと思います(?)次に、私はできるgem install pg
Crimbo

10

postgresqlインストーラーを直接使用する場合の別の方法を次に示します。異端者にアップデートした後、最初にジャンプしなければならないいくつかのフープがあります。これが私がしたことです:

最初にxcodeコマンドラインツールをインストールします。

xcode-select --install

PostgreSQLの最新バージョン(9.3.1)をダウンロードしてインストールします。私の場合は、グラフィカルインストーラーを使用しました。ダウンロードページへのリンクは次のとおりです。

http://www.enterprisedb.com/products-services-training/pgdownload#osx

表示されるデフォルトをすべて選択するだけです。私の場合、それはpostgresを次のディレクトリにインストールしましたが、別のディレクトリにインストールした場合は、すぐに必要になるため、選択したパスを覚えておいてください。

/Library/PostgreSQL/9.3

ここで最新のpg gem(0.17.0)をインストールしようとすると、コマンドラインでいくつかのオプションを渡す必要があります。これは私が使用したものです:

ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

postgresを別の場所にインストールした場合は、pg_configファイルへのパスを修正する必要があります。

pg gemのインストール中に「libpq.5.dylib」ファイルが見つからないというメッセージが表示された場合は、このファイルの実際の場所を指すシンボリックリンクを作成する必要があります。Postgresは/ usr / local / lib /ディレクトリでそれを探しているので、そこにシンボリックリンクを作成し、実際の場所にリダイレクトします。私の場合、実行する必要がありました:

sudo ln -s /Library/PostgreSQL/9.3/lib/libpq.5.dylib /usr/local/lib/libpq.5.dylib

それが完了したら、gemのインストールを再試行します。うまくいけば、それは私と同じように機能します。


9

私にとって、ヨセミテでは、pg_configパスを指定する必要はありませんでした。次はそれを成し遂げた。

brew install postgresql
sudo env ARCHFLAGS="-arch x86_64" gem install pg

建築旗が鍵のようです。


5

私の場合(私はMavericksにPG 0.16.0が必要でした)、MacPorts経由でpostgresqlをインストールしました

sudo port install postgresql90

その後

gem install pg -v '0.16.0' -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config

最新バージョンでは-v '0.16.0'を差し引く必要があります

gem install pg -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config

Homebrewがインストールされている場合は、共存について読む前にMacPortsをインストールしないでください。


5

--with-pg-configBundlerの設定ファイルに不足している部分を配置し/Users/<your_user>/.bundle/configます。

---
BUNDLE_BUILD__PG: --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
BUNDLE_BUILD__EXAMPLE_GEM: --other-configs
BUNDLE_BUILD__OTHER_EXAMPLE_GEM: --other-configs

その後、bundle install再度実行します。


5

それは私のために働きます!(Postgres 93、mac ox 10.9.1)1。@ http://postgresapp.com/をダウンロードしてから

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config

4

バンドルのインストールが3日間止まりました。追加するよう試みたすべてのもの" -アーチx86_64版" ENV ARCHFLAGS =宝石インストールPG - --with-PG-config設定=は/ usr / local /セラー/ postgresqlの/ 9.3.5_1 / binに/にpg_config

このコマンドの後にpg gemがインストールされるのを確認できましたが、バンドルのインストールからインストールされていませんでした。これは、gem 'pg'以外のGemfileに何を書き込むかがわからないため、大変でした。

最終的には私のために働いた事は、私はpg_configをしていたことを発見した/Library/PostgreSQL/9.3/bin/pg_config Gemfileはルックスをインストールバンドルし、デフォルトでは/ usr / local / bin /にpg_config

次のコマンドを実行したところ、魔法が起こりました。 バンドル構成build.pg --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config


4

私の場合、アーチフラグ、OS X 10.10.3、postersApp 9.4を指定しないと機能しませんでした。

sudo env ARCHFLAGS="-arch x86_64" gem install pg -- \--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

3

これを解決する最も簡単な方法は、Postgres.appを使用して環境変数を設定し、gem install pg--with-pg-configフラグを要求する代わりに)機能するようにすることでした。

Homebrew Caskを使用して、

brew cask install postgres
echo 'export PG_HOME=/Applications/Postgres.app/Contents/Versions/latest' >> ~/.bash_profile
echo 'export PATH="$PATH:$PG_HOME/bin"' >> ~/.bash_profile
source ~/.bash_profile

# now it just works
gem install pg

2

これは私のために働いたものです:

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

2

私の場合、homebrew経由でインストールされたバージョンをアンインストールし、Postgres.appに切り替えました(執筆時点ではv9.3.4.2)。

環境アーキテクチャフラグを先頭に追加し、へのパスを指定した場合にのみ機能するように見えましたpg_config。あなたの距離は変わるかもしれないので、この答えpg_configの場所のバリエーションに役立ちます。

これが私のために働いた最後の完全なコマンドです:

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

2

sudo ARCHFLAGS = "-arch x86_64" gem install pg---with-pg-config = / usr / local / bin / pg_config


:これはまた、そうのようにインストールバンドルに私のために働いたARCHFLAGS="-arch x86_64" bundle install
d4n3

1

(Mac OS X Mavericksを使用して)pg gemに関してバンドルインストールを実行すると、同じエラーが発生しました。何時間もの調査の後、私は解決策を見つけました。自作でpostgresをインストールしました

brew install postgres

それをインストールした後、postgresを使用して新しいRailsアプリを作成しました。私は走った

bundle install

役に立たない(質問と同じエラーを取得した)。使った

which psql

私のpostgresがどこにインストールされたかを理解するために、それは戻ってきました

/usr/local/bin/psql

bundle installを再度実行する前に、次のコマンドを実行して、グローバルパスをbuild.pgに変更する必要がありました。

bundle config build.pg --with-pg-config=/usr/local/bin/pg_config

その後、バンドルインストールを再度実行して、出来上がりです!私はbrewがインストールしたpostgresを使用しました。


1

最新のPostgresアプリがインストールされたOS X Mavericksで、sudo権限を使用して以下を実行します

env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

1

Xcode 5.1.1を使用した10.9.3でうまくいったのは次のとおりです。

brew update
brew install postgresql 
gem install pg -v '0.17.1'

0.17.1ページが必要でした


1

この問題が解決せずに解決brewされておらず、rubypostgresがインストールされている失われた魂。以下の手順を確認してください。

  • のバージョンがフラグruby付きでインストールされていないことを確認してください--universal
    • これは理解するのが最も難しいことでした。私は--universalそれが問題の最終的な根源でした。
  • およびでpostgresql正しく初期化されていることを確認してくださいinitdbcreatedbコマンド(これを実行する手順のために別の場所を調べ)。
  • Xcode(オプション)command line toolsがインストールされていることを確認します。端末上:
    • xcode-select --install
    • sudo xcodebuild -license (Xcodeがインストールされている場合)またはアプリケーションを開いて、使用許諾契約に同意します。
    • コンピュータを再起動
  • which rubywhich gemそして、そして敬意which postgresを示す必要/usr/local/bin/ruby/usr/local/bin/gemあり/usr/local/bin/postgresます。
  • ターミナルで:

    • gem install pg -- --with-pg-config=/usr/local/bin/pg_config
    • または
    • env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_config
  • これらの手順がすべて満たされていることを確認することで、次のエラーを解決できました。

    • ruby.h ヘッダーエラー
    • developer tools installed first エラー

1

まず、pg_configの場所を見つけます

sudo find / -name "pg_config" -print

答えは私の設定の/Library/PostgreSQL/9.1/bin/pg_configです(MAC Maverick)

次に、以下のようなものをインストールしてみてください

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

これが機能しない場合は、postgresqlをインストールした方法を確認してください。

brew / mac port / setup

それからあなたは同じに関連するオプションを試してみる必要があります。

ありがとうございました。


0

私は同じ問題を抱えていました、これが私が見つけた解決策でした。

を実行するとbrew doctor、一部のフォルダーのアクセス許可を変更したbrewなしで何かをインストールした可能性があるため、そのフォルダーのアクセス許可を元に戻す必要があることがわかります。

内部/usr/local/share/manでは、次のことができます。

sudo chown [yourusername] man7

その後:

brew link postgres

それが役に立てば幸い!


0

同様に、Mavericksの「バンドル更新」をインストールすると、pg gemでエラーが発生しました。これは、本番環境でのみ使用され、ローカルでは使用されません。

Brewを使用してパッケージを管理し、postgresqlが既にインストールされていますが、それでも「no pg_config」エラーが発生しました。

修正は、「brew uninstall postgresql」を実行し、次に「brew install postgresql」を実行することでした。その後、すぐに「バンドル更新」を正常に実行できました



0

ここですべて試してもインストールされない場合は、Xcodeを開いて使用許諾契約に同意してください。


0

私にとって、エラーメッセージは次のようになりました。

Installing pg 0.18.4 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

...

checking for pg_config... no

No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config

エラーメッセージが示すように、コマンド/スクリプト「pg_config」を実行しようとしています。そのため、Postgresがインストールされている場所からのパスに追加するだけです。私の場合、私はしました:

export PATH=/Applications/Postgres.app/Contents/Versions/9.5/bin:$PATH

その後

bundle

それでおしまい。


-1

Postgres 9.4:

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/Versions/9.4/bin/pg_config

他の19の答えの洪水でこれが失われるのを避けるために、少し説明がいいでしょう。
Brad Koch
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.