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 pgSudoなしで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が正常にインストールされました
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/'
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
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
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のインストールを再試行してください。うまくいけば、私と同じように動作します。
私にとって、ヨセミテでは、pg_config
パスを指定する必要はありませんでした。次はそれを成し遂げました。
brew install postgresql
Sudo env ARCHFLAGS="-Arch x86_64" gem install pg
アーキテクチャフラグが重要なようです。
自作の場合は、次のように入力します。
$ postgresqlをインストールする
私の場合(私は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をインストールしないでください 共存について読む
それは私のために働く! (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
不足している--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
を再度実行します。
私の場合、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
バンドルのインストールで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
私の場合、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
Sudo ARCHFLAGS = "-Arch x86_64" gem install pg---with-pg-config =/usr/local/bin/pg_config
これは私のために働いたものです:
gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config
これを解決する最も簡単な方法は、 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
Xcode 5.1.1を使用して10.9.3で機能したのは次のとおりです。
brew update
brew install postgresql
gem install pg -v '0.17.1'
Pg 0.17.1が必要でした
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
失われた魂については、解決せずにこの問題がまだあり、brew
がインストールされていますRubyおよびpostgres。以下の手順を確認してください。
Ruby
のバージョンが--universal
フラグ付きでインストールされていないことを確認してください。--universal
がありました。postgresql
およびinitdb
コマンドでcreatedb
を適切に初期化したことを確認してください(これを行う手順については他の場所を参照してください)。Xcode
(オプション)およびcommand line tools
がインストールされていることを確認してください。端末上:xcode-select --install
Sudo xcodebuild -license
(Xcodeがインストールされている場合)またはアプリケーションを開き、ライセンス契約に同意します。which Ruby
、which 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
エラー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を使用しました。
私にとって、エラーメッセージは次のようになりました。
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
それでおしまい。
私は同じ問題を抱えていました。これが私が見つけた解決策でした。
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に取り組んだ
同様に、Mavericksをインストールした後、「バンドルアップデート」はpg gemにエラーをスローしました。これは本番環境でのみ使用され、ローカルでは使用されません。
Brewを使用してパッケージを管理し、postgresqlはすでにインストールされていますが、それでも「no pg_config」エラーが発生していました。
修正は、単に「postgresqlをアンインストールする」、次に「postgresqlをインストールする」だけでした。その後、すぐに「バンドル更新」を正常に実行できました
まず、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
その後、同じオプションを試してみる必要があります。
ありがとうございました。
羊
ここですべてを試してもインストールできない場合は、Xcodeを開いてライセンス契約に同意してください。