Gem install pg --with-pg-config работает, пакет не работает

Когда я запускаю (как root)

gem install pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config

Я получаю следующий вывод:

#-> gem instal pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config
Building native extensions.  This could take a while...
Successfully installed pg-0.12.0
1 gem installed
Installing ri documentation for pg-0.12.0...
Installing RDoc documentation for pg-0.12.0...
#-> 

Когда я запускаю установку пакета:

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

    /usr/local/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
--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=/usr/local/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 /var/www/simpletrac/vendor/cache/ruby/1.9.1/gems/pg-    0.12.0 for inspection.
Results logged to /var/www/simpletrac/vendor/cache/ruby/1.9.1/gems/pg-0.12.0/ext/gem_make.out
An error occured while installing pg (0.12.0), and Bundler cannot continue.
Make sure that `gem install pg -v '0.12.0'` succeeds before bundling.

У меня есть libpq-fe.h, установленный в /usr/pgsql -9.1/include/libpq-fe.h. Итак, я попробовал

gem install pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config --with-pg-lib=/usr/pgsql-9.1/include/libpq-fe.h but still no go. 

Любая помощь будет принята с благодарностью.

Кроме того, я установил postgresql91-devel и ruby-devel. Запуск CentOS 6.

Ответ 1

Вы пытались запустить это перед запуском bundle install?

bundle config build.pg --with-pg-config=/usr/pgsql-9.1/bin/pg_config

См. http://bundler.io/v1.3/bundle_config.html

Ответ 2

Если кто-то использовал macports для установки postgres и у него проблемы с поиском pg_config, попробуйте следующее:

bundle config build.pg --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config

Надеюсь, это поможет кому-то сэкономить время. Ура!

Ответ 3

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

which pg_config

это вернет == > /usr/pgsql-9.1/bin/pg_config

теперь используйте этот путь как

bundle config build.pg --with-pg-config=/usr/pgsql-9.1/bin/pg_config

Готово сейчас bundle install

Ответ 5

Копировать вставить:

bundle config build.pg --with-pg-config='which pg_config' && bundle

Подробности:

Посетите для получения дополнительной информации:

Первое, что вы должны сделать, это убедиться, что инструмент pg_config, поставляемый с Postgres, находится на вашем пути. Если это не так, или тот, который первым в вашем пути, не является тем, который был установлен с Postgres, против которого вы хотите собрать, вы можете указать путь к нему с помощью опции -with-pg-config.

Источник: https://github.com/ged/ruby-pg/blob/1f274f68c16f1af1c642db1b9d3d28aef169dc84/ext/extconf.rb#L27

Ответ 6

Вы можете получить эту ошибку, если у вас установлен pg_config, но не на любом пути. Вы можете добавить его в свой PATH env в ~/.bashrc.

Например.

export PATH=${PATH}:/usr/pgsql-9.2/bin

Ответ 7

Я нахожусь на Mac, и я использую Homebrew, поэтому, чтобы исправить эту проблему, я только что установил postgresql с помощью brew:

brew install postgresql

И затем установил драгоценный камень.

Ответ 8

Я должен был сделать это, чтобы исправить мой OS X:

export PATH=/opt/local/lib/postgresql84/bin/:$PATH

И я должен был это сделать, несмотря на то, что у меня уже было это на своем пути:

[[email protected] ~] which psql84
/opt/local/bin/psql84

[[email protected] ~] ls -altrh /opt/local/bin/psql84 
lrwxr-xr-x  1 root  admin    36B Dec  7 02:15 /opt/local/bin/psql84 ->  /opt/local/lib/postgresql84/bin/psql

Я надеюсь, что эта проблема поможет другому пользователю Mac.

Ответ 9

Камни Postgres не могут найти файл конфигурации Postgres. Вы должны сказать, где это. Самое приятное решение этого, на мой взгляд, - пропустить Brew и MacPorts и просто использовать приложение Postgres. Загрузите и установите здесь:

http://postgresapp.com/

Теперь добавьте папку bin в свой путь:

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

Вы также можете добавить это в свой файл ~/.bash_profile

Теперь установите драгоценный камень:

gem install pg

он должен идти гладко.

Ответ 10

Я использую Arch Linux и имею похожие проблемы. Использовал sudo pacman -S libpqxx и снова запустил pg gem, а затем снова запустил bundle install, и на этот раз он наконец-то сработает!

Ответ 11

Попробуйте следующее:

yum install libpqxx-devel

Он работает с Postgr9.2.

Ответ 12

Эта ссылка предложила использовать:

gem install pg --pre

Я не мог установить pg gem для установки в течение нескольких дней, но этот метод, наконец, работал у меня. Надеюсь, это будет полезно.

Ответ 13

Когда вы используете postgresapp на Mac, прочитайте документацию http://postgresapp.com/documentation/cli-tools.html и настройте свой $PATH. Перед этим попробуйте снова запустить установку пакета.

Ответ 14

gem install pg -v '0.17.1'

Сделал трюк для меня.

Ответ 15

Убедитесь, что установлен постгресс. если не установить его первым. Использование терминала, например.

brew install postgresql

После этого выполните

bundle install

Ответ 16

Некоторые случаи на UBUNTU

sudo apt-get install libpq-dev

На CentOS 7

sudo yum install postgresql-devel

затем

bundle install

это сработало для меня.

Ответ 17

в OSX сначала установите pg:

brew install postgresql

во-вторых, сделайте gem install:

gem install pg --source 'https://rubygems.org/'

Вы можете запустить bundle install

Ответ 18

Я использую Mac и не хочу устанавливать Postgresql локально.

Установка libpq и настройка конфигера работали у меня.

Ссылка ссылка