Ответ 1
Вы пытались запустить это перед запуском bundle install
?
bundle config build.pg --with-pg-config=/usr/pgsql-9.1/bin/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.
Вы пытались запустить это перед запуском bundle install
?
bundle config build.pg --with-pg-config=/usr/pgsql-9.1/bin/pg_config
Если кто-то использовал 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.
Ссылка: https://bitbucket.org/ged/ruby-pg/issue/83/help-gem-install-pg-failed-on-opensuse-103
bundle config build.pg --with-pg-config='which pg_config' && bundle
Посетите для получения дополнительной информации:
- http://bundler.io/v1.3/man/bundle-config.1.html
- https://github.com/nlopes/pg/blob/master/readme-os_x.rdoc
Первое, что вы должны сделать, это убедиться, что инструмент pg_config, поставляемый с Postgres, находится на вашем пути. Если это не так, или тот, который первым в вашем пути, не является тем, который был установлен с Postgres, против которого вы хотите собрать, вы можете указать путь к нему с помощью опции -with-pg-config.
Источник: https://github.com/ged/ruby-pg/blob/1f274f68c16f1af1c642db1b9d3d28aef169dc84/ext/extconf.rb#L27
Вы можете получить эту ошибку, если у вас установлен pg_config, но не на любом пути. Вы можете добавить его в свой PATH env в ~/.bashrc.
Например.
export PATH=${PATH}:/usr/pgsql-9.2/bin
Я нахожусь на Mac, и я использую Homebrew, поэтому, чтобы исправить эту проблему, я только что установил postgresql с помощью brew:
brew install postgresql
И затем установил драгоценный камень.
Я должен был сделать это, чтобы исправить мой 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.
Камни Postgres не могут найти файл конфигурации Postgres. Вы должны сказать, где это. Самое приятное решение этого, на мой взгляд, - пропустить Brew и MacPorts и просто использовать приложение Postgres. Загрузите и установите здесь:
Теперь добавьте папку bin в свой путь:
PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
Вы также можете добавить это в свой файл ~/.bash_profile
Теперь установите драгоценный камень:
gem install pg
он должен идти гладко.
Я использую Arch Linux и имею похожие проблемы. Использовал sudo pacman -S libpqxx
и снова запустил pg gem, а затем снова запустил bundle install
, и на этот раз он наконец-то сработает!
Попробуйте следующее:
yum install libpqxx-devel
Он работает с Postgr9.2.
Эта ссылка предложила использовать:
gem install pg --pre
Я не мог установить pg gem
для установки в течение нескольких дней, но этот метод, наконец, работал у меня. Надеюсь, это будет полезно.
Когда вы используете postgresapp на Mac, прочитайте документацию http://postgresapp.com/documentation/cli-tools.html и настройте свой $PATH. Перед этим попробуйте снова запустить установку пакета.
gem install pg -v '0.17.1'
Сделал трюк для меня.
Убедитесь, что установлен постгресс. если не установить его первым. Использование терминала, например.
brew install postgresql
После этого выполните
bundle install
Некоторые случаи на UBUNTU
sudo apt-get install libpq-dev
На CentOS 7
sudo yum install postgresql-devel
затем
bundle install
это сработало для меня.
в OSX сначала установите pg:
brew install postgresql
во-вторых, сделайте gem install:
gem install pg --source 'https://rubygems.org/'
Вы можете запустить bundle install
Я использую Mac и не хочу устанавливать Postgresql локально.
Установка libpq и настройка конфигера работали у меня.