Ruby on rails Can';不要在山狮上安装pg gem

Ruby on rails Can';不要在山狮上安装pg gem,ruby-on-rails,macos,postgresql,osx-mountain-lion,Ruby On Rails,Macos,Postgresql,Osx Mountain Lion,升级到Mountain Lion后,Rails给我带来了很多麻烦 为了解决这些问题,并在互联网上搜索数小时,到目前为止,我已经做了以下工作,以确保我的系统在升级后具有运行rails的所有依赖项: 我更新了我的自制软件安装 我更新了我的RVM安装 我安装了XCode命令行工具 我安装了GCC 我将我的Ruby版本升级到 ruby 1.9.2p290(2011-07-09修订版32553)[x86_64-darwin10.8.0] 我的Rails版本已验证为Rails 3.2.6 我还发现Moun

升级到Mountain Lion后,Rails给我带来了很多麻烦

为了解决这些问题,并在互联网上搜索数小时,到目前为止,我已经做了以下工作,以确保我的系统在升级后具有运行rails的所有依赖项:

  • 我更新了我的自制软件安装
  • 我更新了我的RVM安装
  • 我安装了XCode命令行工具
  • 我安装了GCC
  • 我将我的Ruby版本升级到 ruby 1.9.2p290(2011-07-09修订版32553)[x86_64-darwin10.8.0]

  • 我的Rails版本已验证为Rails 3.2.6
  • 我还发现Mountain Lion与Postgres之间存在一些问题,因此我看到并发现我需要将这一行添加到我的Bash配置文件中:

    export PATH="/usr/local/bin:/usr/bin:$PATH"
    
  • 现在,我转到升级前在雪豹上运行良好的Rails应用程序,当我在命令行上运行
    Rails s
    时,出现以下错误:

    AM@~/Documents/RailsWS/app0815 >gem install pg
     Building native extensions.  This could take a while...
     ERROR:  Error installing pg:
     ERROR: Failed to build gem native extension.
     /Users/AM/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
     checking for pg_config... yes
     Using config values from /usr/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/AM/.rvm/rubies/ruby-1.9.2-p290/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
    --without-pg-config
    --with-pg_config
    --without-pg_config
     /Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': 
     The complier failed to generate an executable file. (RuntimeError)
     You have to install development tools first.
    from /Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
    from /Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:853:in `block in   find_header'
    from /Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
    from /Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:280:in `block (2  levels) in postpone'
    from /Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
    from /Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
    from /Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
    from /Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
    from extconf.rb:41:in `<main>'
    
    
     Gem files will remain installed in /Users/AM/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.14.1 for inspection.
     Results logged to /Users/AM/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.14.1/ext/gem_make.out
    
    AM@~/Documents/RailsWS/app0815>gem安装页面
    构建本机扩展。这可能需要一段时间。。。
    错误:安装pg时出错:
    错误:无法生成gem本机扩展。
    /Users/AM/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
    正在检查pg_配置。。。对
    使用/usr/bin/pg_config中的配置值
    正在检查libpq fe.h...**extconf.rb失败***
    由于某些原因无法创建Makefile,可能是缺少
    必要的库和/或标题。查看mkmf.log文件了解更多信息
    细节。您可能需要配置选项。
    提供的配置选项:
    --使用opt dir
    --选择包含
    --不带opt include=${opt dir}/include
    --使用opt lib
    --不带opt lib=${opt dir}/lib
    --用make prog
    --没有make prog
    --srcdir=。
    --库尔迪尔
    --ruby=/Users/AM/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
    --与pg
    --无pg
    --与pg dir
    --没有pg dir
    --与pg包括
    --不带pg include=${pg dir}/include
    --用pg-lib
    --不带pg lib=${pg dir}/lib
    --使用pg配置
    --没有pg配置
    --带-pg_配置
    --不带-pg_配置
    /Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:368:in'try_do':
    编译器未能生成可执行文件。(运行时错误)
    您必须首先安装开发工具。
    from/Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:452:in'try_cpp'
    from/Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:853:in'block in find_header'
    from/Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:693:in'block in checking_'
    from/Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:280:in“延迟中的块(2级)”中
    from/Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:254:in'open'
    from/Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:280:in'block in delay'
    from/Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:254:in'open'
    from/Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:276:in“推迟”
    from/Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:692:in'checking_'
    from/Users/AM/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/mkmf.rb:852:in'find_header'
    来自extconf.rb:41:in`'
    Gem文件仍将安装在/Users/AM/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.14.1中以供检查。
    结果记录到/Users/AM/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.14.1/ext/gem\u make.out
    

    当我转到Rails应用程序并尝试捆绑安装时,pg安装失败。

    从下载postgresSQL安装程序

    然后让你的路径看起来像这样:

    PATH=$PATH:/Library/PostgreSQL/9.0/bin/ gem install pg
    
    这就行了

    注意:请在路径中正确指定您的postgreSQL安装版本

    更新(2015年11月10日)(摘自) 在使用自制软件的OS X上:

  • 使用以下命令安装postgresql:

    brew安装postgresql

  • 然后使用以下方法安装gem:

    gem安装pg--with pg config=/usr/local/bin/pg_config

  • 在带有MacPorts的OS X上:

    gem安装pg--with pg config=/opt/local/lib/postgresql84/bin/pg_config


    希望这有帮助

    正如banditKing在回答中所说,我们需要告诉gem在哪里可以找到postgres二进制文件。您可以使用Heroku()提供的优秀且简单的postgres.app附带的二进制文件来安装此gem,而不是EnterpriseDb版本。EnterpriseDB版本非常好,但是对于开发人员机器来说,这是一个复杂的安装

    在您的系统上下载Postgres.app,并将内部bin目录添加到您的路径中。我把它放在
    /Applications/Postgres.app
    中,所以我使用了

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

    在10.8.2、Ruby 1.9.3、pg-0.14.1和XCode CLI工具上为我工作过。或者,使用Postgres应用程序。在我看来,这是在Mac上启动并运行PostgreSQL和Rails最简单、最快的方法


    有关详细说明:

    安装Mavericks
    包更新后,
    在pg gem上抛出错误

    我使用Brew管理我的软件包,postgresql已经安装,但仍然出现“no pg_config”错误


    修复方法是只
    brew卸载postgresql
    ,然后
    brew安装postgresql
    。在此之后,我立即能够成功运行
    bundle update

    请注意,您的Rails和Ruby版本都很旧,并且都存在已知的安全缺陷。到目前为止,最新版本是Rails 3.2.8和Ruby 1.9.2-p320/1.9.3-p194。您是否按照我在您先前的问题(现已删除?)中的建议通过自制进行安装?@deefore我不记得看到您的回答。与其他解决方案相比,此解决方案对我有效!谢谢你:)伙计,你是我的英雄!我花了大约一个小时才找到解决办法!