Проблемы с Rails и postgres после обновления до OS X 10.9 Mavericks

после обновления до OS X 10.9 Mavericks Я попытался запустить приложение Rails 3, но соединение с базой данных PG не работало. Проверка на PGAdmin III, база данных все еще там, и она работает нормально. Поэтому я попытался переустановить PG gem:

gem uninstall pg
gem install pg

но последняя команда не удается, и дает следующую ошибку:

строительство собственных расширений. Это может занять некоторое время... Ошибка: Ошибка установка ПГ:

ошибка: не удалось создать собственное расширение gem.

    /Users/XXX/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb checking for pg_config... yes Using config values from

/ usr / local/bin/pg_config * extconf.РБ не * не удалось создать Makefile по какой-то причине, возможно, из-за отсутствия необходимых библиотек и/или заголовков. Проверять на mkmf.файл журнала для более подробной информации. Может потребоваться настройка опции.

/ пользователи / XXX/.rvm / rubies / ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb: 381: in 'try_do': компилятору не удалось создать исполняемый файл.

(RuntimeError) сначала необходимо установить средства разработки. от / Пользователи / XXX/.rvm / rubies / ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb: 461: in try_link0' from /Users/XXX/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:476:in try_link ' из extconf.rb: 39: in"

Я думаю, что проблема связана с инструменты разработчика Xcode. Я обновил Xcode до последней версии, но это не решило проблему. Ты знаешь, как это исправить?

8 ответов


используя доморощенного исправлено это для меня:

gem uninstall pg
brew install apple-gcc42
gem install pg

EDIT: я также вручную установил "devtools"

xcode-select --install

вы правы, что проблема связана с инструментами разработчика Xcode. Это не плохая идея, чтобы убедиться, что у вас установлены все инструменты разработчика (в отличие от исключительно установки gcc, как упоминалось в предыдущем ответе):

  1. откройте Xcode
  2. в пункте меню приложения "Xcode" выберите Открыть инструмент разработчика > дополнительные инструменты разработчика...
  3. откроется сайт с кучей программного обеспечения. Вперед, загрузите и установите "инструменты командной строки (OS X Mavericks)для Xcode-конец октября 2013".
  4. теперь вы сможете правильно установить драгоценный камень.

для тех, кто еще приходит к этой проблеме от новой установки приложения Postgres 9.3.0 на Mac OS X Mavericks (т. е. вы не используете homebrew для установки Postgres), вы можете заметить, что, хотя вы можете построить PG gem, вы не можете запустить грабли из-за проблемы dylib:

rake aborted!
dlopen(/Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle, 9): Library not loaded: @loader_path/../lib/libpq.5.dylib
  Referenced from: /Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle
  Reason: image not found - /Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle

к сожалению это проблема с текущей выпуск версии 9.3.0 Postgres. Возврат к предыдущей версии исправит это для вас:

  1. удалите PG gem:gem uninstall pg
  2. удалите приложение 9.3.0 Postgres, перетащив его в корзину и очистив корзину
  3. установить версию 9.2.2.0 приложения Postgres здесь:http://postgres-app.s3.amazonaws.com/PostgresApp-9-2-2-0.zip
  4. переустановите PG gem:gem install pg

*спасибо комментарий по jhiro009 на этой теме для указания мне в правильном направлении на этой последней части приложения Postgres проблемы, хотя версия 9.2.4.3, которую он упомянул, не работала для меня.


на OS X Mavericks

sudo ln -s /usr/bin/llvm-gcc /usr/bin/gcc-4.2
gem uninstall pg; gem install pg;

работает с установкой homebrew Postgresql (9.3.1) и установленными инструментами командной строки Apple (pg 0.17.0).


ни одно из предыдущих решений не работало для меня (я просто обновился до Mavericks и обновил XCode). Вместо этого я установил Postgress.app. и позвал

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

ни одно из решений не работал для меня, и я не хочу использовать MacPorts. Попробуйте загрузить Postgres App и поместите его в каталог приложений.

затем укажите местоположение вновь загруженного pg_config, который находится внутри приложения:

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

если вы столкнулись с проблемой отсутствующих заголовков, попробуйте указать приложения:

gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/MacOS/include/'

Если вы ищете только быстрое исправление, добавьте следующее в свою базу данных.файл yml:

host: localhost

У меня была точная проблема, добавлена эта строка, и теперь все хорошо.


Мне повезло после этого поста от парней в New-Bamboo:

3 быстрых подсказки для кодирования с OS X 10.9 Mavericks

после установки инструментов Xcode dev третий шаг отсортировал все:

brew tap homebrew/versions && brew install apple-gcc42
brew link --force apple-gcc42
ln -nsf $(which gcc-4.2) /usr/bin/gcc-4.2

У меня была эта проблема при первой попытке установить pg. Через различные испытания и ошибки я нашел то, что сработало. К счастью, мои заметки также работали, когда Mavericks сломал все.

надеюсь, это поможет:

не заваривать.

загрузите программу установки enterpriseDB одним щелчком мыши, смонтируйте и запустите. Если он не работает, запустите его через командную строку (автоматический режим), и он изменит настройки памяти. Перезапустить, запустить снова.

заставляет пользователя postgres с паролем вы. Также устанавливается pgadmin III.

запустите это в каталоге приложений:

ОКР ARCHFLAGS="-Арч x86_64 с" жемчужиной установите пг -- --с-ПГ-включать=/библиотека/в PostgreSQL/9.2/включают в себя/ - с-ПГ-Либ=/библиотека/в PostgreSQL/9.2 судо ОКР ARCHFLAGS='-арка для i386' камень установить ПГ/Либ/

откройте pgadmin3 и создайте пользователя и пароль для rails, затем добавьте его в config.

psql в [имя_базы_данных] # проверить на вашей БД. Или используйте pgadmin III