创业板安装皮克不会对OSX狮子工作(gem install pg doesn't work

2019-06-23 23:58发布

有蹦跳着所以这个问题的变化,但没有人似乎有一个解决我的问题的答案。

我运行OSX狮子(10.7.3)。 最新的XCode安装。

我已经使用从postgresapp.com的Postgres.app包安装的Postgres。

但是,当我尝试安装PG宝石,我得到一个错误:

$ 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

所有这些设置似乎是正确的,除了上的配置变量(这似乎是指 - 我没有用户名为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方法本身失败。 我试图运行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.

编辑:

发现我的电脑必须更加borked比我想象的。 我在做捆绑安装其他的项目,我有一个非常类似的故障在安装sqlite3的宝石。

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

我从来没有在过去的sqlite3的宝石问题。

Answer 1:

我终于找到了问题的原因! 虽然我还不确定这个问题是怎么来的。

看看,当我安装命令失败创建(见我原来的职位)的mkmf.log文件的内容。 它记录试图运行下面的命令

/usr/bin/gcc-4.2 ...and so on...

没有/usr/bin/gcc-4.2我的系统上。 有一个gcc ,这是符号链接到llvm-gcc-4.2 。 我的解决方案是创建另一个符号链接

sudo ln -s llvm-gcc-4.2 gcc-4.2 

使这个链接后,我的gem install pg命令工作没有任何问题。

我发现在冰冻的卡努克博客在文章中解决了这个问题的错误使用C扩展安装Ruby宝石 。 他推测,这个问题可以通过版本冲突的XCode引起的。 不管是什么原因,我永远感谢!



Answer 2:

在OS X小牛

sudo ln -s /usr/bin/llvm-gcc /usr/bin/gcc-4.2

作品。



Answer 3:

我有一个类似的问题。 继bobfet1回答了类似的问题,我是能够得到创业板的安装:

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


Answer 4:

感谢这家伙: http://www.computersnyou.com/2025/

在使用小牛: xcode-select --install (假设你已经安装了应用程序商店的Xcode)的作品。



Answer 5:

从App Store安装Xcode是不够的。 您还需要Xcode的命令行工具。 https://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_3.html

从App Store,开放的Xcode安装的Xcode后。 转到Xcode->打开开发者工具 - >更多开发工具下载并安装最新的命令行工具。

打开一个终端窗口,执行:sudo的创业板安装PG



Answer 6:

对小牛10.9类似的问题 - 但它是由没有引起已经同意Xcode的许可协议。 布莱什。

运行sudo xcodebuild ,并同意垃圾。 在一切正常。



Answer 7:

我也遇到了这个问题,我的答案是更新万物RVM。

rvm get head
rvm install 1.9.2


Answer 8:

我也一样,我在山狮,除了“命令LN -s /usr/bin/{llvm-,}gcc-4.2”由@grilix的建议,我需要做的:

sudo ln -s /usr/bin/{llvm-,}g++-4.2


Answer 9:

之后小牛升级...

重新安装红宝石版本。

rvm uninstall 1.9.2-p320

然后

rvm install 1.9.2-p320

或任何红宝石的版本,你有。



Answer 10:

我在山狮,以及戴夫艾萨克斯接受的答案为我工作。 我也不得不这样做

sudo ln -s llvm-g++-4.2 g++-4.2


Answer 11:

而不是更新RVM本身( https://stackoverflow.com/a/10430742/2807795 ),如上所述,这是没有的伎俩,试图在其他所有的步骤都没有成功后,Ruby的2.0.0-P247的重新安装。

rvm get head
rvm install 2.0.0


Answer 12:

$ 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 list ,它应该表现出这样的事情:

更多信息可参见我的导游 。



Answer 13:

如果输出包括:

/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适当拆分出来 ,所以你需要单独安装它们。



文章来源: gem install pg doesn't work on OSX Lion