31

この質問にはさまざまなバリエーションがありますが、どれも私の問題を解決する答えを持っていないようです。

OSX Lion (10.7.3) を実行しています。最新の XCode がインストールされています。

postgresapp.com の Postgres.app パッケージを使用して Postgres をインストールしました。

しかし、pg gem をインストールしようとすると、失敗します。

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

        /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/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
checking for libpq-fe.h... *** 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/disaacs/.rvm/rubies/ruby-1.9.3-p125/bin/ruby
    --with-pg
    --without-pg
    --with-pg-dir
    --without-pg-dir
    --with-pg-include
    --without-pg-include=${pg-dir}/include
    --with-pg-lib
    --without-pg-lib=${pg-dir}/lib
    --with-pg-config
/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:506:in `try_cpp'
    from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:970:in `block in find_header'
    from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:790:in `block in checking_for'
    from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone'
    from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:284:in `block in postpone'
    from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:280:in `postpone'
    from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:789:in `checking_for'
    from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:969:in `find_header'
    from extconf.rb:40:in `<main>'


Gem files will remain installed in /Users/disaacs/.rvm/gems/ruby-1.9.3-p125/gems/pg-0.13.2 for inspection.
Results logged to /Users/disaacs/.rvm/gems/ruby-1.9.3-p125/gems/pg-0.13.2/ext/gem_make.out

/Applications/Postgres.app/Contents/MacOS/bin/pg_configコマンドの出力は次のとおりです。

$ /Applications/Postgres.app/Contents/MacOS/bin/pg_config
BINDIR = /Applications/Postgres.app/Contents/MacOS/bin
DOCDIR = /Applications/Postgres.app/Contents/MacOS/share/doc
HTMLDIR = /Applications/Postgres.app/Contents/MacOS/share/doc
INCLUDEDIR = /Applications/Postgres.app/Contents/MacOS/include
PKGINCLUDEDIR = /Applications/Postgres.app/Contents/MacOS/include
INCLUDEDIR-SERVER = /Applications/Postgres.app/Contents/MacOS/include/server
LIBDIR = /Applications/Postgres.app/Contents/MacOS/lib
PKGLIBDIR = /Applications/Postgres.app/Contents/MacOS/lib
LOCALEDIR = /Applications/Postgres.app/Contents/MacOS/share/locale
MANDIR = /Applications/Postgres.app/Contents/MacOS/share/man
SHAREDIR = /Applications/Postgres.app/Contents/MacOS/share
SYSCONFDIR = /Applications/Postgres.app/Contents/MacOS/etc
PGXS = /Applications/Postgres.app/Contents/MacOS/lib/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--prefix=/Users/mattt/Code/heroku/Postgres/Postgres/Vendor/postgres' '--enable-thread-safety' '--with-openssl' '--with-gssapi' '--with-bonjour' '--with-krb5' '--with-libxml' '--with-libxslt' '--with-ossp-uuid' '--with-perl' '--with-python'
CC = gcc
CPPFLAGS = -I/usr/include/libxml2
CFLAGS = -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv
CFLAGS_SL = 
LDFLAGS = -Wl,-dead_strip_dylibs
LDFLAGS_EX = 
LDFLAGS_SL = 
LIBS = -lpgport -lxslt -lxml2 -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lm 
VERSION = PostgreSQL 9.1.3

これらの設定はすべて正しいように見えますが、CONFIGURE 変数 (他のコンピューターを参照しているようです -- Mattt という名前のユーザーはいません) を除きます。

mkmf.log ファイルの内容は次のとおりです。

"/usr/bin/gcc-4.2 -o conftest -I/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin10.8.0 -I/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/backward -I/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1 -I. -I/Users/disaacs/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I/Applications/Postgres.app/Contents/MacOS/include  -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration  -fno-common -pipe conftest.c  -L. -L/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib -L/Users/disaacs/.rvm/usr/lib -L. -L/usr/local/lib -L/Applications/Postgres.app/Contents/MacOS/lib     -lruby.1.9.1  -lpthread -ldl -lobjc "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

任意の提案をいただければ幸いです。

私はextconf.rbファイルを見て、いくつかのデバッグの後、それがへの呼び出しであることを発見しました

find_header ('libpq-fe.h')

それは失敗しています。libpq-fe.h がないからではなく、find_headerメソッド自体が失敗しているからです。irb を使用して find_header を実行しようとしましたが、同じエラーが発生しました。

$ irb
1.9.3-p125 :001 > require 'mkmf'
 => true 
1.9.3-p125 :002 > find_header 'libpq-fe.h'
checking for libpq-fe.h... RuntimeError: The compiler failed to generate an executable file.
You have to install development tools first.

編集:

私のコンピューターは、思ったよりもさらに故障しているに違いないことがわかりました。私は別のプロジェクトのバンドル インストールを行っていましたが、sqlite3 gem のインストールで非常によく似たエラーが発生しました。

checking for sqlite3.h... *** extconf.rb failed ***

過去に sqlite3 gem で問題が発生したことはありません。

4

13 に答える 13

15

同様の問題がありました。同様の問題に対するbobfet1の回答に続いて、次の方法でgemをインストールすることができました。

sudo env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
于 2012-05-03T11:18:44.733 に答える
13

この男のおかげで: http://www.computersnyou.com/2025/

Mavericks ではxcode-select --install(アプリ ストアから Xcode をインストールしたと仮定して) 動作します。

于 2013-11-04T19:59:44.100 に答える
7

アプリ ストアから xcode をインストールするだけでは不十分です。また、xcode のコマンド ライン ツールも必要です。 https://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_3.html

アプリ ストアから xcode をインストールしたら、xcode を開きます。Xcode に移動 -> 開発者ツールを開く -> その他の開発者ツール 最新のコマンド ライン ツールをダウンロードしてインストールします。

ターミナル ウィンドウを開いて実行します: sudo gem install pg

于 2012-07-03T16:00:46.767 に答える
6

Mavericks 10.9 でも同様の問題が発生しましたが、Xcode ライセンス契約に同意していないことが原因でした。ブリーチ。

実行sudo xcodebuildしてジャンクに同意します。すべてが期待どおりに機能します。

于 2013-11-03T19:19:56.943 に答える
2

私もこの問題に遭遇しました。私にとっての答えは、すべてのRVMを更新することでした。

rvm get head
rvm install 1.9.2
于 2012-05-03T11:48:44.970 に答える
2

マーベリックスのアップグレード後...

Ruby バージョンを再インストールします。

rvm uninstall 1.9.2-p320

それから

rvm install 1.9.2-p320

またはあなたが持っているルビーのバージョン。

于 2014-06-12T00:15:27.617 に答える
2

私もMountain Lionを使用していますが、@grilixが提案した「sudo ln -s /usr/bin/{llvm-,}gcc-4.2」以外に、次のことを行う必要がありました。

sudo ln -s /usr/bin/{llvm-,}g++-4.2
于 2012-10-05T15:10:33.927 に答える
1
$ gem install pg

それが失敗した場合:

$ sudo gem install pg

次に、それが失敗した場合:

$ sudo find / -name “pg_config”

の場所を見つけたらpg_config、これを実行して最終的にインストールします。

$ sudo gem install pg --with-pg-config=/usr/local/Cellar/postgresql/9.5.1/bin/pg_config

もちろん、見つかった場所へのパスを変更する必要がありますpg_config

次に、インストールした gem を で確認するとgem list、次のように表示されます。

適切なものを示す <code>gem list</code>

詳細については、私のガイドを参照してください。

于 2016-03-18T16:45:13.917 に答える
1

上記のように RVM 自体 ( https://stackoverflow.com/a/10430742/2807795 ) を更新するのではなく、Ruby 2.0.0-p247 を再インストールすることで、上記の他のすべての手順を試しても成功しませんでした。

rvm get head
rvm install 2.0.0
于 2013-10-02T00:20:38.303 に答える
1

私は Mountain Lion を使用していますが、Dave Isaacs からの受け入れられた回答が役に立ちました。私もしなければならなかった

sudo ln -s llvm-g++-4.2 g++-4.2
于 2012-07-27T16:58:51.473 に答える
0

出力に以下が含まれる場合:

/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': \
    The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.

コンパイル環境に問題があります。特に、失敗が最初にextconf.rb実行されたテストである場合。

XCode がインストールされている場合、XCode のコマンドライン ツール コンポーネントがインストールされていない可能性があります。これらは最近 XCode 本体から分割されたため、個別にインストールする必要があります。

于 2012-04-28T00:00:47.423 に答える