web-dev-qa-db-ja.com

Mavericksを使用してMacにPG gemをインストールすることはできません

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

ビルドに失敗しました。--with-pg-config =/path/to/pg_configを使用して、libpq-fe.hを再度確認してください... no '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 Linking /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は書き込み不可です。その許可を変更する必要があります。

助けてください

注:マーベリック用のコマンドラインツールは既にインストールしています。


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

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

これが最初のインストールの場合、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 gemをインストールする場合は、ARCHFLAGS = "- Arch 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 '==> Summary ???? /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が正常にインストールされました

95
Jean

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

次に、新しくダウンロードした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/'
239
Yuri

Brewを使用して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

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

env ARCHFLAGS="-Arch x86_64" gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.3/bin/pg_config
69
Ayush Goel

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

35
iceui2

Postgresqlインストーラーを直接使用したい場合の別の選択肢があります。 mavericksに更新した後、最初にジャンプする必要があるフープがいくつかあります。私がやったことは次のとおりです。

最初に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のインストールを再試行してください。うまくいけば、私と同じように動作します。

10
2potatocakes

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

brew install postgresql
Sudo env ARCHFLAGS="-Arch x86_64" gem install pg

アーキテクチャフラグが重要なようです。

8
dinigo

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

$ postgresqlをインストールする

8
user2373148

私の場合(私は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
Gi0

それは私のために働く! (Postgres 93、mac ox 10.9.1)1。ダウンロード@ http://postgresapp.com/ and than

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

不足している--with-pg-configをBundlerの設定ファイルに配置します:/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
Bruno Buccolo

私の場合、Archフラグ、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
4
Rachidi Mohamed

バンドルのインストールで3日間スタックしました。 env ARCHFLAGS = "-Arch x86_64" gem install pg ---with-pg-config =/usr/local/Cellar/postgresql/9.3.5_1/binの追加など、あらゆることを試みました/ pg_config

このコマンドの後にpg gemがインストールされるのを見ることができましたが、それでもバンドルインストールからインストールできませんでした。

最終的に私のために働いたのは、pg_configが/ Library/PostgreSQL/9.3/bin/pg_configにあり、デフォルトでGemfileバンドルのインストールが/ usr/local/bin/pg_config

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

4
Neeraj Gupta

私の場合、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
Marius Butuc

Sudo ARCHFLAGS = "-Arch x86_64" gem install pg---with-pg-config =/usr/local/bin/pg_config

2
Taysky

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

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

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

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
smoll

Xcode 5.1.1を使用して10.9.3で機能したのは次のとおりです。

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

Pg 0.17.1が必要でした

1
Tom Andersen

OS X Mavericksで最新のPostgresアプリを使用して、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

失われた魂については、解決せずにこの問題がまだあり、brewがインストールされていますRubyおよびpostgres。以下の手順を確認してください。

  • Rubyのバージョンが--universalフラグ付きでインストールされていないことを確認してください。
    • これが最もわかりにくいものでした。問題の最終的な原因である--universalがありました。
  • postgresqlおよびinitdbコマンドでcreatedbを適切に初期化したことを確認してください(これを行う手順については他の場所を参照してください)。
  • 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
link_boy

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

brew install postgres

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

bundle install

役に立たない(質問と同じエラーを見つけた)。私は使った

which psql

私のpostgresがどこにインストールされているかを把握するために、それは戻りました

/usr/local/bin/psql

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

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

その後、再度バンドルインストールを実行しました。 brewがインストールしたpostgresを使用しました。

1
Rav Johal

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

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

それでおしまい。

0
paneer_tikka

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

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

/usr/local/share/man内でできることは次のとおりです。

Sudo chown [yourusername] man7

その後:

brew link postgres

それが役に立てば幸い!

Sudo su 

それから

ARCHFLAGS="-Arch x86_64" gem install pg -v '0.18'

10.10.2に取り組んだ

0
Keaton Burleson

同様に、Mavericksをインストールした後、「バンドルアップデート」はpg gemにエラーをスローしました。これは本番環境でのみ使用され、ローカルでは使用されません。

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

修正は、単に「postgresqlをアンインストールする」、次に「postgresqlをインストールする」だけでした。その後、すぐに「バンドル更新」を正常に実行できました

0
Shannon Perkins

まず、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

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

0
hattenn