невозможно установить pg gem - PullRequest
205 голосов
/ 28 января 2011

Я пытался использовать 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

Ответы [ 20 ]

3 голосов
/ 28 января 2011

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

3 голосов
/ 11 января 2016

Используется с флагом ARCH.

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

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

2 голосов
/ 02 мая 2013

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

apt-get install postgresql-9.1 

sudo apt-get install postgresql-server-dev-9.1
2 голосов
/ 21 марта 2018

Я уже несколько лет испытываю эту досадную проблему с PG. Я создал эту суть, чтобы помочь.

Следующая команда всегда работает для меня.

# Substitute Postgres.app/Contents/Versions/9.5 with appropriate version number
sudo ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config

Суть: https://gist.github.com/sharnie/5588340cf023fb177c8d

2 голосов
/ 10 марта 2015

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

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

Это должно сработать

2 голосов
/ 15 января 2018

Независимо от того, какую операционную систему вы используете, посмотрите файл журнала "Makefile", чтобы увидеть, что происходит, вместо того, чтобы устанавливать вслепую.

В моем случае, MAC OS, файл журнала находится здесь:

/Users/za/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0-static/pg-1.0.0/mkmf.log

В журналах указано, что файл make не может быть создан из-за следующего:

Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers

Внутри mkmf.log вы увидите, что не удалось найти необходимые библиотеки, чтобы завершить сборку.

checking for pg_config... no
Can't find the 'libpq-fe.h header
blah blah

После запуска "brew install postgresql" я вижу все необходимые библиотеки:

za:myapp za$ cat /Users/za/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0-static/pg-1.0.0/mkmf.log | grep yes
find_executable: checking for pg_config... -------------------- yes
find_header: checking for libpq-fe.h... -------------------- yes
find_header: checking for libpq/libpq-fs.h... -------------------- yes
find_header: checking for pg_config_manual.h... -------------------- yes
have_library: checking for PQconnectdb() in -lpq... -------------------- yes
have_func: checking for PQsetSingleRowMode()... -------------------- yes
have_func: checking for PQconninfo()... -------------------- yes
have_func: checking for PQsslAttribute()... -------------------- yes
have_func: checking for PQencryptPasswordConn()... -------------------- yes
have_const: checking for PG_DIAG_TABLE_NAME in libpq-fe.h... -------------------- yes
have_header: checking for unistd.h... -------------------- yes
have_header: checking for inttypes.h... -------------------- yes
checking for C99 variable length arrays... -------------------- yes
1 голос
/ 07 июня 2016

на Mac brew install postgres ТО bundle install

1 голос
/ 18 октября 2012

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

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

Решение?Временно запутайте $ PATH, чтобы отдать предпочтение обновлению pgsql вместо значения по умолчанию:

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

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

1 голос
/ 16 июня 2015

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

gem 'activerecord-jdbcpostgresql-adapter'
0 голосов
/ 04 января 2013

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

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

...