Рельсы 3-не удается установить pg gem
когда я пытаюсь запустить 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, как я могу установить/исправить?
16 ответов:
Как указано в вашем журнале ошибок, вам нужно пройти путь к pg_config. Попробуйте установить драгоценный камень с помощью:
gem install pg -- --with-pg-config= 'PATH_TO_YOUR_PG_CONFIG'Если вы не уверены, где находится ваш pg_config, и предполагая, что вы находитесь на Linux или Mac, вы можете выполнить следующую команду:
which pg_configваш PG-config может быть в разных местах в зависимости от того, как вы установили postgres.
Если вы работаете на Linux вы можете быть заинтересованы в том, что сработало для меня:
sudo apt-get install postgresql sudo apt-get install libpq-devзатем
gem install pgзатем
bundle installsrc:http://wikimatze.de/installing-postgresql-gem-under-ubuntu-and-mac
Если вы используете Postgress.приложение затем вы хотите получить доступ к его инструменты. Введите следующую строку в терминале или ваш путь к профилю:
PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
gem install pgтеперь должно работать. (Это то, что сработало для меня.)Примечание путь к новым версиям выглядит так:
/Applications/Postgres.app/Contents/Versions/<version>/bin
Если у вас есть домашнее пиво, просто введите:
$ brew install postgresql
Если у вас его нет, загрузите это в свой терминал:
ruby-e " $(curl-fsSLhttps://raw.github.com/Homebrew/homebrew/go/install)"
Поиск libpq:
brew search libpqвывести
libpqxxзатем попробуйте установить его:
brew install libpqxx
вам нужно только установить
libpq-dev:sudo apt-get install libpq-devТогда драгоценный камень должен установить просто отлично.
следуйте инструкциям после установки:http://postgresapp.com/documentation/configuration-ruby.html
чтобы установить PG gem, убедитесь, что вы правильно настроили свой $ PATH (как указано в http://postgresapp.com/documentation/cli-tools.html), затем бегите
sudo ARCHFLAGS="-arch x86_64" gem install pgЯ сильно рекомендую прочитать обе страницы. Просто просмотрел их и потерял 1 час своей жизни. Прочтите их, проблема решена.
проблема у меня была в том, что по какой-то причине он пытался скомпилировать с /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)
я получил ту же проблему, но мой Postgres был установлен в
/Library/PostgreSQL/9.3обновили ~/.файл, добавив:
export PATH=/Library/PostgreSQL/9.3/bin:$PATHоткройте новый терминал, запустите
bundle updateи он работал для меня. Спасибо, Ари.
вы можете установить параметр конфигурации сборки
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)
у меня была такая же проблема в моей машине openSUSE13.1 KDE. До этой проблемы я столкнулся я установил только пакеты
postgresqlиpostgresql-serverиспользуя . Затем снова установлены еще 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, и успех!!!
для рабочего решения 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
во-первых, удалите все версии Homebrew. Параметр --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 / профиль и удалить все строки, которые ссылаются на "postgres".
nano /etc/profileУстановить PostgresSQL
brew update brew install postgresqlустановить ПГ
gem install pgвот именно. С уважением.
вы можете сначала проверить, есть ли у вас файл postrgresql в вашем терминале, перейдя в файл lib. переход cd ~ / opt/local/ lib/, а затем введите ls и кнопку enter. Это покажет вам список всех файлов, которые находятся в папке lib.
1.если у вас нет postreseql вы можете скачать через macports. sudo port install postgresql93 @9.3.2_1
теперь диск в папку, которую вы пытаетесь установить пакет
- получаете ваша страница для работы с вашим файлом postgesql, который вы только что загрузили камень установить пг -- --с-ПГ-конфиг=/опт/местные/библиотека/postgresql93/ОГРН/команду pg_config
теперь бегите bundle install
то, что работало для меня на El Capitan, было обновление ruby от системного значения по умолчанию до 2.3.1, казалось, находило правильные библиотеки, которые
pgкамень нужен.
Comments