Когда я пытаюсь запустить bundle (bundle install), я все время получаю
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, как я могу установить/исправить это?
Ответ 1
Как указано в вашем журнале ошибок, вам необходимо передать путь к pg_config. Попробуйте установить драгоценный камень, используя:
gem install pg -- --with-pg-config= 'PATH_TO_YOUR_PG_CONFIG'
Если вы не знаете, где находится ваш pg_config, и если вы находитесь на Linux или Mac, вы можете запустить следующую команду:
which pg_config
Ваша pg-config может быть в разных местах в зависимости от того, как вы установили postgres.
Ответ 2
если вы работаете в Linux, вас может заинтересовать то, что сработало для меня:
sudo apt-get install postgresql
sudo apt-get install libpq-dev
Тогда
gem install pg
то
bundle install
src: http://wikimatze.de/installing-postgresql-gem-under-ubuntu-and-mac
Ответ 3
Если вы используете Postgress.app, тогда вы захотите получить доступ к средства командной строки. Введите следующую строку в своем терминале или PATH profile:
PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
gem install pg
теперь должен работать. (Это то, что сработало для меня.)
Примечание Новый путь к версии выглядит следующим образом:
/Applications/Postgres.app/Contents/Versions/<version>/bin
Ответ 4
Если у вас есть доморощенный, просто введите:
$brew установить postgresql
Если у вас его нет, загрузите его в свой терминал:
ruby -e "$ (curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
Ответ 5
Искать libpq:
brew search libpq
Должен выводить libpqxx
Затем попробуйте установить его:
brew install libpqxx
Ответ 6
Вам нужно установить libpq-dev
:
sudo apt-get install libpq-dev
Затем драгоценный камень должен установить просто отлично.
Ответ 7
Следуйте инструкциям после установки: 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 час своей жизни. Прочтите их, проблема решена.
Ответ 8
Проблема была в том, что по какой-то причине она пыталась скомпилировать с /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)
Ответ 9
У меня такая же проблема, но мой Postgres был установлен в
/Library/PostgreSQL/9.3
Обновлен файл ~/.bash_profile, добавив:
export PATH=/Library/PostgreSQL/9.3/bin:$PATH
Откройте новый терминал, запустите bundle update
, а также он сработает для меня. Спасибо Ари.
Ответ 10
Вы можете установить опцию конфигурации сборки bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
и использовать gem install pg
без каких-либо параметров (путь к pg_config может быть другим для вас, этот для Postgresapp 9.3.5.0)
Ответ 11
У меня была такая же проблема в моей машине openSUSE13.1 KDE. Перед этой проблемой, с которой я столкнулся, я установил только пакеты postgresql
и postgresql-server
с помощью команды zypper
. Затем снова установите еще 2 пакета:
[arup@to_do_app]$ sudo zypper in postgresql-devel postgresql-contrib
root password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...
#....
Затем я снова побежал bundle install
и успех!!!
Ответ 12
Для рабочего решения OSX см. это руководство http://krugerdavid.com/journal/how-to-install-xcode-homebrew-git-rvm-postgresql-ruby-1-9-3-on-snow-leopard/
Он проведет вас через установку PostgreSQL с помощью homebrew. Протестировано и работает для меня на OSX 10.8.3, PostgreSQL 9.2.3 и Ruby 2.0.0-p0
Ответ 13
Во-первых, удалите все версии для дома. Параметр -force позволяет удалить все версии.
brew rm postgresql --force
Измените пути соответственно для своей версии.
sudo /sbin/SystemStarter stop postgresql-8.4
sudo rm -rf /Applications/PostgreSQL\ 8.4
sudo rm -rf /etc/postgres-reg.ini
sudo rm -rf /Library/StartupItems/postgresql-8.4
sudo rm -rf /Library/PostgreSQL/8.4
sudo dscl . delete /users/postgres
Измените/etc/profile и удалите любые строки, которые ссылаются на "postgres".
nano /etc/profile
Установить PostgresSQL
brew update
brew install postgresql
Установить PG GEM
gem install pg
Что это. С наилучшими пожеланиями.
Ответ 14
Вы можете сначала проверить, есть ли у вас файл postrgresql в вашем терминале, перейдя в lib файл. идущий cd ~/opt/local/lib/, а затем введите ls и кнопку ввода. Это покажет вам список всех файлов, которые находятся в каталоге lib.
1.если у вас нет postreseql, вы можете скачать через macports.
sudo port установить postgresql93 @9.3.2_1
Теперь cd обратно в вашу папку, которую вы пытаетесь установить install
- Получение вашего pg для работы с вашим файлом postgesql, который у вас есть или просто загружен
gem install pg - --with-pg-config =/opt/local/lib/postgresql93/bin/pg_config
теперь выполняется
комплект поставки
Ответ 15
В Fedora:
dnf install postgresql-devel
Ответ 16
Что работало для меня на El Capitan, было обновление рубина от системы по умолчанию до 2.3.1, казалось, найти правильные библиотеки, необходимые для pg
gem.