Rails 3 - не могу установить pg gem - PullRequest
96 голосов
/ 12 марта 2012

Когда я пытаюсь запустить пакет (установка пакета), я все время получаю

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 ]

1 голос
/ 01 сентября 2014

Вы можете установить опцию конфигурации сборки 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)

0 голосов
/ 15 августа 2016

В El Capitan у меня сработало обновление ruby ​​с системного значения по умолчанию до 2.3.1, которое, похоже, нашло правильные библиотеки, необходимые для гема pg.

0 голосов
/ 06 августа 2016

На Fedora:

dnf install postgresql-devel
0 голосов
/ 10 февраля 2014

Вы можете сначала проверить, есть ли у вас файл postrgresql в вашем терминале, перейдя в файл lib. зайдите в cd ~ / opt / local / lib /, а затем введите ls и кнопку ввода. Это покажет вам список всех файлов, которые находятся в каталоге lib.

1.Если у вас нет postreseql, вы можете скачать его через macports. порт sudo установить postgresql93 @ 9.3.2_1

Теперь вернитесь в папку, в которую вы пытаетесь установить пакет, установив

  1. заставить ваш pg работать с вашим файлом postgesql, который вы уже скачали или только что скачали gem install pg - --with-pg-config = / opt / local / lib / postgresql93 / bin / pg_config

теперь беги комплектация

0 голосов
/ 03 декабря 2013

Сначала удалите все версии 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 / profile и удалите все строки, которые ссылаются на "postgres".

nano /etc/profile

Установить PostgresSQL

brew update
brew install postgresql

Install de PG GEM

gem install pg

Вот и все. Привет.

0 голосов
/ 27 марта 2013

Для работающего решения 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

...