web-dev-qa-db-fra.com

impossible d'installer pg gem

J'ai essayé d'utiliser gem install pg mais cela ne semble pas fonctionner.

gem install pg donne cette erreur

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
192
Rohit

Répond ici: Impossible d’installer pg gem sous Windows

Il n'y a pas de version native Windows de dernière version de pg (0.10.0) publiée hier, mais si vous installez la 0.9.0, il devrait installer les binaires sans problèmes.

14
Nikita Barsukov

J'ai eu ce problème, cela a fonctionné pour moi:

Installez le paquet postgresql-devel, cela résoudra le problème de pg_config manquant.

Sudo apt-get install libpq-dev
355
Devaroop

Le problème est la dépendance aux gems, donc avant d'installer pg, assurez-vous d'avoir installé "libpq-dev"

Systèmes Ubuntu:

Sudo apt-get installez libpq-dev

Systèmes RHEL: 

miam installer postgresql-devel

Mac: 

brasser installer postgresql

64
Mahattam

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

57
Flaviu

@ Winfield l'a dit :

La pem gem nécessite que le client postgresql libraries se lie avec. Cette erreur signifie généralement qu'il ne peut pas trouver vos bibliothèques Postgres. Soit vous ne les avez pas installés, soit vous devez peut-être transmettre le --with-pg-dir= à votre installation gem.

Plus que cela, vous avez seulement besoin de --with-pg-config= pour l'installer.

Sur un Mac

Si, par hasard, vous avez également installé postgres via le paquet de sites Web sur mac, il sera placé quelque part comme /Applications/Postgres.app/Contents/Versions/9.3/bin.

Donc, soit vous le transmettez à la gem install:

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

Ou vous configurez correctement le CHEMIN . Puisque c'est peut-être trop, pour définir temporairement le PATH:

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

Je n'avais pas installé Postgresql, je l'ai donc installé avec

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

sur Ubuntu 12.04.

Cela l'a résolu.


Mettre à jour:

Utilisez la dernière version:

Sudo apt-get install postgresql-9.3 postgresql-server-dev-9.3
24

Travailler dans mon cas, j'utilise Ubuntu 14.04.2 LTS

Sudo apt-get installez libpq-dev

et j'utilise 

Ruby 2.2.2 & Rails 4.2.1

15
Zainal

Si vous utilisez Postgres.app sur Mac, vous pouvez résoudre ce problème une fois pour toutes comme ceci:

Commencez par gem uninstall pg, puis éditez votre fichier ~/.bash_profile ou ~/.zshrc ou son équivalent et ajoutez:

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

Alors bundle install et gem install pg devraient tous deux fonctionner comme prévu.

10
Darme
$ PATH=$PATH:/Library/PostgreSQL/9.1/bin Sudo gem install pg

remplacez la version 9.1 pour la version installée sur votre système.

9
jstnno

Sur Mac OS (El Capitano). Vous pouvez simplement utiliser: brew install postgresql

5
Jones Agyemang

La pem gem nécessite une liaison avec les bibliothèques clientes postgresql. Cette erreur signifie généralement qu'il ne peut pas trouver vos bibliothèques Postgres. Soit vous ne les avez pas installés, soit vous devez peut-être passer le --with-pg-dir = à votre installation gem.

3
Winfield

Utiliser avec l'indicateur Arch.

Sudo env ARCHFLAGS="-Arch x86_64" gem install pg

Cela a résolu le même problème que vous rencontrez.

3
Aman Chhabra

Je voulais ce problème sur Linux Mint (Maya) 13, et je l'ai résolu en installant postgresql et postgresql-server

apt-get install postgresql-9.1 

Sudo apt-get install postgresql-server-dev-9.1
2
SAIDI Belkacem

Quel que soit le système d'exploitation que vous utilisez, consultez le fichier journal du "Makefile" pour savoir ce qui se passe, au lieu d'installer des tâches à l'aveuglette. 

Dans mon cas, MAC OS, le fichier journal est ici: 

/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

Les journaux ont indiqué que le fichier make n'a pas pu être créé pour les raisons suivantes: 

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

Dans le fichier mkmf.log, vous verrez qu'il n'a pas pu trouver les bibliothèques requises pour terminer la construction. 

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

Après avoir exécuté "brew install postgresql", toutes les bibliothèques requises sont présentes: 

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
2
zee

Pour les utilisateurs de Mac

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

Cela devrait faire l'affaire

2
Ronak Jain

Si vous utilisez jruby au lieu de Ruby, vous rencontrerez des problèmes similaires lors de l’installation de pg gem. Au lieu de cela, vous devez installer l'adaptateur: 

gem 'activerecord-jdbcpostgresql-adapter'
1
Nuri

Je devais le faire sur CentOS 5.8. L'exécution de bundle install continuait à poser des problèmes car je ne pouvais pas le forcer à utiliser une version de PG particulière.

Je ne peux pas non plus yum erase postgresql postgresql-devel, à cause de problèmes de dépendance (cela supprimerait php, http, etc.)

La solution? Mess $ PATH temporairement pour donner la préférence à la mise à jour pgsql au lieu de celle par défaut:

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

En gros, avec les commandes ci-dessus, il regardera /usr/pgsql-9.2/bin/pg_config avant celui de /usr/bin/pg_config

1
Christian

Sur Mac brew install postgres ALORS bundle install

1
Yar HTUT

Il suffit d’aller dans ici pour voir si votre version de PG prend en charge la plate-forme Win32, puis utilisez cette commande pour installer:

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

0
revskill

Je rencontre ce problème avec PG depuis des années. J'ai créé ce Gist pour aider.

La commande suivante fonctionne toujours pour moi.

# 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

Gist: https://Gist.github.com/sharnie/5588340cf023fb177c8d

0
SharnieIvery