Ошибка установки pg gem на osx - PullRequest
13 голосов
/ 23 апреля 2011

Я на OSX 10.6.7 пытаюсь запустить пакетную установку в новом приложении rails 3.0.7, и он продолжает отказывать при попытке собрать гем pg.Он постоянно говорит мне, что мне нужны инструменты разработчика.Но, насколько я могу судить, у меня установлены инструменты разработчика.

Вот вывод xcodebuild -version

Xcode 3.2.6
Component versions: DevToolsCore-1809.0; DevToolsSupport-1806.0
BuildVersion: 10M2518

Вот вывод неудачной сборки pg gem

/Users/bm/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb --with-pg-config=/Library/PostgreSQL/8.4/bin/pg_config
Using config values from /Library/PostgreSQL/8.4/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
    --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/bm/.rvm/rubies/ruby-1.9.2-head/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/bm/.rvm/rubies/ruby-1.9.2-head/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/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
    from extconf.rb:31:in `<main>'


Gem files will remain installed in /Users/bm/.rvm/gems/ruby-1.9.2-head@rc_search/gems/pg-0.11.0 for inspection.
Results logged to /Users/bm/.rvm/gems/ruby-1.9.2-head@rc_search/gems/pg-0.11.0/ext/gem_make.out
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/rubygems/installer.rb:486:in `block in build_extensions'
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/rubygems/installer.rb:446:in `each'
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/rubygems/installer.rb:446:in `build_extensions'
    from /Users/bm/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/rubygems/installer.rb:198:in `install'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/lib/bundler/source.rb:100:in `install'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/lib/bundler/installer.rb:55:in `block in run'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/lib/bundler/spec_set.rb:12:in `block in each'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/lib/bundler/spec_set.rb:12:in `each'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/lib/bundler/spec_set.rb:12:in `each'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/lib/bundler/installer.rb:44:in `run'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/lib/bundler/installer.rb:8:in `install'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/lib/bundler/cli.rb:217:in `install'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/lib/bundler/vendor/thor/task.rb:22:in `run'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/lib/bundler/vendor/thor.rb:246:in `dispatch'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/lib/bundler/vendor/thor/base.rb:389:in `start'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.0/bin/bundle:13:in `<top (required)>'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/bin/bundle:19:in `load'
    from /Users/bm/.rvm/gems/ruby-1.9.2-head@global/bin/bundle:19:in `<main>'

Любая помощь будет очень признательна.К вашему сведению, я также пытался создать приложение с помощью MySQL и, по сути, получил тот же стек.Так что я почти уверен, что мне не хватает каких-то инструментов для разработки, но я просто не знаю, какие именно.(

Ответы [ 10 ]

15 голосов
/ 16 января 2012
  1. export ARCHFLAGS = '- arch x86_64'
  2. export PATH = / Library / PostgreSQL / 9.1 / bin: $ {PATH}
  3. gem install pg
15 голосов
/ 29 августа 2011

У меня была точно такая же проблема при запуске комплектной установки в приложении Rails. Я установил доморощенный и затем запустил

brew install postgresql. 

Это, наконец, правильно установил postgres, и проблема была исправлена ​​для меня.

7 голосов
/ 01 сентября 2013

Если вы используете приложение PostgreSQL на osx, вам может потребоваться изменить следующий путь (при изменении расположения двоичных файлов и файлов конфигурации) вместо пути, указанного в ответе lesyk:

export PATH=/Applications/Postgres.app/Contents/MacOS/bin:${PATH}
5 голосов
/ 30 апреля 2012

У меня была такая же проблема.Для меня исправление было:

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

4 голосов
/ 21 ноября 2011

Что сработало для меня, так это комментарий Заг Зага:

~/projects/foo$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.11.0
1 gem installed
Building YARD (yri) index for pg-0.11.0...

~/projects/foo$ bundle 
...
Using pg (0.11.0) 
...
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
2 голосов
/ 03 мая 2012

Я также столкнулся с этой проблемой, для меня ответом было обновление RVM всех вещей.

rvm get head
rvm install 1.9.2
0 голосов
/ 21 сентября 2015

Некоторая коррекция.Для тех, кто установил postgres, используя homebrew.

1) напишите следующую строку в ~ / .bash_profile

export ARCHFLAGS = "- arch x86_64"

2) перезапустить консоль

3) выполнить следующую команду

комплект конфигурации build.pg --with-pg-config = / usr / local / Cellar / postgresql / 9.3.5_1 / bin / pg_config (это должен быть ваш адрес конфигурации pg, может отличаться для каждого в зависимости от версии postgres)

4) Установите pg локально, выполнив эту команду

sudo env ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.5_1 / bin / pg_config

5) комплектация

0 голосов
/ 26 декабря 2014

Я застрял на моей установке пакета в течение 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 устанавливается после этой команды, но он все еще не устанавливался из комплекта установки, что было очень сложно, потому что я не знаю, что писать в Gemfile, кроме gem 'pg'

В итоге мне удалось обнаружить, что мой pg_config находится в / Library / PostgreSQL / 9.3 / bin / pg_config и по умолчанию установка пакета Gemfile выглядит в / usr / local / bin / pg_config

Я только что выполнил следующую команду, и произошла магия. bundle config build.pg --with-pg-config = / Библиотека / PostgreSQL / 9.3 / bin / pg_config

0 голосов
/ 26 апреля 2014

Простое решение:

  1. Запустить brew install postgresql
  2. установить гем с правами sudo: например так: sudo gem install pg -v '0.17.1'
0 голосов
/ 27 апреля 2011

Я использую ту же версию OSX и XCode, что и вы: установка комплекта с pg 0.11.0 мне подходит. Тем не менее, я нашел эту статью, которая может помочь вам фиксируя-The-вы-есть к установке опытно-конструкторских работ-инструментов-первых ОШИБОК с-nokogiri

Если вы используете rvm, вы можете попробовать:

rvm update head  
rvm --force install
1.9.2 gem install bundle

Вот мой стек:

[ 08:36:26 ] > bundle install
Fetching source index for http://rubygems.org/
Enter your password to install the bundled RubyGems to your system: 
Using rake (0.8.7) 
Using abstract (1.0.0) 
Installing activesupport (3.0.7) 
Installing builder (2.1.2) 
Installing i18n (0.5.0) 
Installing activemodel (3.0.7) 
Using erubis (2.6.6) 
Using rack (1.2.2) 
Installing rack-mount (0.6.14) 
Installing rack-test (0.5.7) 
Installing tzinfo (0.3.27) 
Installing actionpack (3.0.7) 
Using mime-types (1.16) 
Installing polyglot (0.3.1) 
Installing treetop (1.4.9) 
Installing mail (2.2.19) 
Installing actionmailer (3.0.7) 
Installing arel (2.0.9) 
Installing activerecord (3.0.7) 
Installing activeresource (3.0.7) 
Using bundler (1.0.10) 
Installing pg (0.11.0) with native extensions 
Using thor (0.14.6) 
Installing railties (3.0.7) 
Installing rails (3.0.7) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
[ ronda@MacBook ~/Projects/rails_projects/first_app ]
[ 08:42:57 ] > rails server
=> Booting WEBrick
=> Rails 3.0.7 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-04-27 20:45:27] INFO  WEBrick 1.3.1
[2011-04-27 20:45:27] INFO  ruby 1.9.2 (2011-02-18) [x86_64-darwin10]
[2011-04-27 20:45:27] INFO  WEBrick::HTTPServer#start: pid=4757 port=3000
...