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...
#-> 

когда я запускаю bundle install:

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.

16 ответов


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

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

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


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

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

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


если вы не уверены, где находится ваш 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


была та же проблема, исправлена путем установки libpq-dev.

Ref: https://bitbucket.org/ged/ruby-pg/issue/83/help-gem-install-pg-failed-on-opensuse-103


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

например.

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

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

brew install postgresql

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


Скопировать И Вставить:

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


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

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

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

[user@foo ~] which psql84
/opt/local/bin/psql84

[user@foo ~] 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 с этой проблемой.


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

http://postgresapp.com/

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

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

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

теперь установить джем:

gem install pg

это должно пройти гладко.


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


попробуйте это:

yum install libpqxx-devel

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


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


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

gem install pg --pre

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


gem install pg -v '0.17.1'

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


убедитесь, что у вас установлен postgress. если не установить его первым. Например, с помощью терминала.

brew install postgresql

после этого бегите

bundle install

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

sudo apt-get install libpq-dev

затем

bundle install

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