Rails 3 - не могу установить pg gem - PullRequest
96 голосов
/ 12 марта 2012

Когда я пытаюсь запустить пакет (установка пакета), я все время получаю

Installing pg (0.13.2) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /Users/ryan/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** 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/ryan/.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


Gem files will remain installed in /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2 for inspection.
Results logged to /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2/ext/gem_make.out
An error occured while installing pg (0.13.2), and Bundler cannot continue.
Make sure that `gem install pg -v '0.13.2'` succeeds before bundling.

Я использую Mac OS X 10.6, версия установленного PostgreSQL - 9.1.Я обнаружил, что проблема в libpq-dev , как я могу установить / исправить это?

Ответы [ 16 ]

98 голосов
/ 29 мая 2012

если вы работаете в Linux, вас может заинтересовать то, что у меня работает:

sudo apt-get install postgresql
sudo apt-get install libpq-dev

Тогда

gem install pg

тогда

bundle install

Источник: http://wikimatze.de/installing-postgresql-gem-under-ubuntu-and-mac

78 голосов
/ 12 марта 2012

Как указано в вашем журнале ошибок, вам нужно указать путь к pg_config.Попробуйте установить гем, используя:

gem install pg -- --with-pg-config= 'PATH_TO_YOUR_PG_CONFIG'

Если вы не уверены, где находится ваш pg_config, и, если вы работаете в Linux или Mac, вы можете выполнить следующую команду:

which pg_config

Ваш pg-config может находиться в разных местах в зависимости от того, как вы установили postgres.

56 голосов
/ 27 октября 2013

Если вы используете Postgress.app , тогда вам понадобится доступ к инструментам командной строки . Введите следующую строку в своем терминале или в своем профиле PATH :

 PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

gem install pg теперь должно работать. (Это то, что сработало для меня.)

Примечание Путь новых версий выглядит следующим образом:

/Applications/Postgres.app/Contents/Versions/<version>/bin
21 голосов
/ 11 февраля 2014

Если у вас есть домашний напиток, просто наберите:

$ brew install postgresql

Если у вас его нет, скачайте его в своем терминале:

ruby ​​-e "$ (curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

12 голосов
/ 21 августа 2015

Поиск libpq:

brew search libpq

Должен вывести libpqxx

Тогда попробуйте установить его:

brew install libpqxx
7 голосов
/ 01 октября 2014

Следуйте инструкциям после установки: http://postgresapp.com/documentation/configuration-ruby.html

Чтобы установить гем pg, убедитесь, что вы правильно настроили $ PATH (как указано в http://postgresapp.com/documentation/cli-tools.html),, затем выполните

sudo ARCHFLAGS="-arch x86_64" gem install pg

Я настоятельно рекомендую прочитать обе страницы. Просто снял их и потерял 1 час моей жизни. Прочитайте их, проблема решена.

7 голосов
/ 23 июля 2012

Вам нужно только установить libpq-dev:

sudo apt-get install libpq-dev

Тогда драгоценный камень должен быть установлен отлично.

3 голосов
/ 10 декабря 2013

У меня такая же проблема, но мой Postgres был установлен в

/Library/PostgreSQL/9.3

Обновил ~ / .bash_profile, добавив:

export PATH=/Library/PostgreSQL/9.3/bin:$PATH

Откройте новый терминал, запустите bundle update, и у меня это сработало. Спасибо Ари.

3 голосов
/ 30 июля 2012

Проблема, с которой я столкнулся, заключалась в том, что по какой-то причине он пытался скомпилировать с /usr/bin/gcc-4.2.Я обнаружил это, изменив try_cpp в mkmf.rb (который я видел в трассировке стека), чтобы вызвать исключение из-за сбоя строки компиляции.

Я мягко связал gcc с gcc-4.2, и это сработало:

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

Почему он пытался использовать gcc-4.2?Понятия не имею.

Фактическая строка компиляции:

/usr/bin/gcc-4.2 -E -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/backward -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I/usr/local/Cellar/postgresql/9.1.4/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 -o conftest.i (RuntimeError)
1 голос
/ 20 декабря 2014

У меня была такая же проблема на моей машине openSUSE13.1 KDE.До того, как я столкнулся с этой проблемой, я установил только пакеты postgresql и postgresql-server с помощью команды zypper.Затем снова установил еще 2 пакета:

[arup@to_do_app]$ sudo zypper in postgresql-devel postgresql-contrib
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...
#....

Затем я снова запустил bundle install, и успех !!!

...