Rails: ошибка при установке pg gem - программирование
Подтвердить что ты не робот

Rails: ошибка при установке pg gem

Возможный дубликат:
Postgres - последняя версия 0.14.0 из "pg" gem дает ошибку

Я новичок в рельсах. Я хочу использовать PostgreSQL, так как Heroku использует его тоже, но у меня плохое время при установке pg gem. По-видимому, некоторые файлы отсутствуют, и файл Makefile не может быть создан?

Мой файл gem выглядит так:

source 'https://rubygems.org'

gem 'rails', '3.2.6'
gem 'faker', '1.0.1'
gem 'pg', '0.12.2'
gem 'json'

group :development, :test do
  gem 'rspec-rails', '2.10.0'
end

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails', '2.0.0'

group :test do
  gem 'capybara', '1.1.2'
  gem 'factory_girl_rails', '1.4.0'
end

И когда я запускаю bundle install, я получаю следующее сообщение об ошибке при установке pg gem:

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

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
checking for pg_config... yes
Using config values from /usr/local/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** 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=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/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
    --with-pqlib
    --without-pqlib
    --with-libpqlib
    --without-libpqlib
    --with-ms/libpqlib
    --without-ms/libpqlib


Gem files will remain installed in /Users/KennyGWang/.bundler/tmp/18833/gems/pg-0.14.0 for inspection.
Results logged to /Users/KennyGWang/.bundler/tmp/18833/gems/pg-0.14.0/ext/gem_make.out
An error occured while installing pg (0.14.0), and Bundler cannot continue.
Make sure that `gem install pg -v '0.14.0'` succeeds before bundling.

Я установил postgresql с помощью homebrew, brew install postgresql, таким образом which psql дает мне /usr/local/bin/psql

Любая помощь приветствуется!

4b9b3361

Ответ 1

Вы на Mac? Если это так - самый простой способ сделать это -

  • убедитесь, что у вас установлен Xcode (вы можете получить его из магазина приложений).
  • использовать Homebrew
  • brew install postgresql
  • gem uninstall pg
  • либо bundle install в корне приложения, либо gem install pg

Ответ 2

Шаги по установке postgresql

  • Установить PostgreSQL и его библиотеки

    sudo apt-get install postgresql postgresql-contrib libpq-dev
    
  • После установки создайте пользователя для postgresql

    sudo -u postgres createuser --superuser $USER
    

    или

    sudo -u postgres createuser pgs_root
    
  • Установить пароль пользователя для пользователя postgresql

    sudo -u postgres psql postgres ( For psql prompt) postgres=# \passsword for ex.-      postgres=# \passsword pgs_root
    
  • Настройте файл postgresql.conf, чтобы PostgreSQL мог прослушивать локальный хост или прослушивать внешний IP-адрес или что-то в этом роде, изменить эту строку на IP-адрес или "localhost"

    gedit /etc/postgresql/8.4/main/postgresql.conf listen_addresses = 'localhost'
    

Как и браузер запросов mysql, есть GUI для postgresql, называемый pgadmin. Чтобы выполнить запуск этой команды

sudo apt-get install pgadmin3

Ответ 4

Вы проверили журнал mkmf.log, как это было рекомендовано в приведенной ошибке?

Не удалось создать Makefile по какой-то причине, возможно, отсутствие  необходимые библиотеки и/или заголовки. Проверьте файл mkmf.log для получения дополнительной информации.  Детали. Вам могут потребоваться параметры конфигурации.