Не удалось установить pg gem

Я попытался использовать gem install pg, но он не работает.

gem install pg дает эту ошибку

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

C:/Ruby/bin/ruby.exe 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=C:/Ruby/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 C:/Ruby/lib/ruby/gems/1.8/gems/pg-0.10.1 for
inspection.
Results logged to C:/Ruby/lib/ruby/gems/1.8/gems/pg-0.10.1/ext/gem_make.out

Ответ 1

Отвечено здесь: Не удается установить pg gem в Windows

Нет родной версии Windows выпущена последняя версия pg (0.10.0) вчера, но если вы установите 0.9.0, следует установить двоичные файлы без вопросы.

Ответ 2

У меня была эта проблема, это сработало для меня:

Установите пакет postgresql-devel, это позволит решить проблему с отсутствием pg_config.

sudo apt-get install libpq-dev

Ответ 3

gem install pg -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config

Ответ 4

Проблема связана с gem, поэтому перед установкой pg убедитесь, что вы установили "libpq-dev"

Системы Ubuntu:

sudo apt-get install libpq-dev

Системы RHEL:

yum install postgresql-devel

Mac:

brew установить postgresql

Ответ 5

@Winfield сказал это:

Драйвер pg требует, чтобы клиентский сервер postgresql привязывался. Эта ошибка обычно означает, что она не может найти ваши библиотеки Postgres. Либо вы их не установили, либо вам может понадобиться передать --with-pg-dir= на установку gem.

Более того, вам нужно только --with-pg-config=, чтобы установить его.

На Mac

Если, случайно, вы также установили postgres через веб-узел на mac, он будет находиться где-то вроде /Applications/Postgres.app/Contents/Versions/9.3/bin.

Итак, либо вы передаете его на установку gem:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

Или вы установите PATH правильно. Поскольку это может быть слишком много, чтобы временно установить PATH:

export PATH=%PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin/

Ответ 6

У меня не было postgresql, поэтому я просто установил его с помощью

sudo apt-get install postgresql postgresql-server-dev-9.1

на Ubuntu 12.04.

Это разрешило это.


Update:

Используйте последнюю версию:

sudo apt-get install postgresql-9.3 postgresql-server-dev-9.3

Ответ 7

Работайте в моем случае, я использую ubuntu 14.04.2 LTS

sudo apt-get install libpq-dev

и я использую

Ruby 2.2.2 & Амп; Rails 4.2.1

Ответ 8

$ PATH=$PATH:/Library/PostgreSQL/9.1/bin sudo gem install pg

замените 9.1 для версии, установленной в вашей системе.

Ответ 9

Если вы используете Postgres.app на Mac, вы можете решить эту проблему раз и навсегда, как это:

Сначала gem uninstall pg, затем отредактируйте файл ~/.bash_profile или ~/.zshrc или его эквивалент и добавьте:

# PostgreSQL bin path
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin

Затем bundle install и gem install pg должны работать как ожидалось.

Ответ 10

В Mac OS (El Capitano). Вы можете просто использовать: brew install postgresql

Ответ 11

Использовать с флагом ARCH.

sudo env ARCHFLAGS="-arch x86_64" gem install pg

Это разрешило ту же проблему, что и у вас.

Ответ 12

Драйвер pg требует, чтобы клиентские библиотеки postgresql связывались. Эта ошибка обычно означает, что она не может найти ваши библиотеки Postgres. Либо вы их не установили, либо вам может понадобиться передать --with-pg-dir = на вашу установку gem.

Ответ 13

Я бы эту проблему на Linux Mint (Maya) 13, и я исправил ее, установив postgresql и postgresql-server:

apt-get install postgresql-9.1 

sudo apt-get install postgresql-server-dev-9.1

Ответ 14

Для пользователей Mac

PATH=$PATH:/Library/PostgreSQL/9.4/bin/ gem install pg

Это должно сделать трюк

Ответ 15

Я должен был сделать это на CentOS 5.8. Запуск bundle install продолжал вызывать проблемы, поскольку я не мог заставить его использовать определенную версию PG.

Я не могу yum erase postgresql postgresql-devel либо из-за проблем с зависимостями (он удалял бы php, http и т.д.)

Решение? Mess $PATH временно, чтобы отдать предпочтение обновлению pgsql вместо стандартного:

export PATH=/usr/pgsql-9.2/bin:$PATH
bundle install

В принципе, с приведенными выше командами он будет смотреть на /usr/pgsql-9.2/bin/pg_config перед тем, как в /usr/bin/pg_config

Ответ 16

Если вы используете jruby вместо ruby, у вас будут подобные проблемы при установке pg gem. Вместо этого вам необходимо установить адаптер:

gem 'activerecord-jdbcpostgresql-adapter'

Ответ 17

На Mac brew install postgres THEN bundle install

Ответ 18

Вы просто перейдете к здесь, чтобы узнать, поддерживает ли ваша версия pg платформу Win32, а затем используйте эту команду для установки:

gem install pg -v 0.14.1 --platform = x86-mingw32