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 

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

Il n’y a pas de version Windows native de la dernière version de pg (0.10.0) sortie hier, mais si vous installez 0.9.0, elle devrait installer les binarys sans problèmes.

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

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

 sudo apt-get install libpq-dev 

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

Le problème est la dépendance gem, donc avant d’installer pg, assurez-vous d’avoir installé “libpq-dev”

Systèmes Ubuntu:

sudo apt-get installer libpq-dev

Systèmes RHEL:

yum installe postgresql-devel

Mac:

armser installer postgresql

@ Winfield l’a dit :

Le gem pg nécessite que les bibliothèques client postgresql se lient. Cette erreur signifie généralement qu’il ne trouve pas vos bibliothèques Postgres. Soit vous ne les avez pas installés ou vous devrez peut-être passer le --with-pg-dir= à votre installation de gem.

De plus, vous n’avez besoin que de --with-pg-config= pour l’installer.

Sur un Mac

Si, par hasard, vous avez également installé postgres par le biais du bundle de site Web sur mac, ce sera sur un /Applications/Postgres.app/Contents/Versions/9.3/bin comme /Applications/Postgres.app/Contents/Versions/9.3/bin .

Donc, soit vous le passez sur l’installation de la gemme:

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

Ou vous définissez le PATH correctement . Comme cela pourrait être trop, pour définir temporairement le PATH:

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

Je n’ai pas installé postgresql, alors je viens de l’installer en utilisant

 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 

Travailler dans mon cas, j’utilise Ubuntu 14.04.2 LTS

sudo apt-get installer libpq-dev

et j’utilise

Ruby 2.2.2 et Rails 4.2.1

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 ~/.bash_profile ou ~/.zshrc ou équivalent et ajoutez:

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

Ensuite, l’ bundle install et l’ bundle install gem install pg devraient fonctionner comme prévu.

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

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

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

Utiliser avec le drapeau ARCH .

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

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

Le gem pg nécessite que les bibliothèques client postgresql se lient. Cette erreur signifie généralement qu’il ne trouve pas vos bibliothèques Postgres. Soit vous ne les avez pas installés ou vous devrez peut-être passer le –with-pg-dir = à votre installation de gem.

Je serais ce problème sur Linux Mint (Maya) 13, et je l’ai corrigé en installant postgresql et postgresql-server:

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

Pour les utilisateurs Mac

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

Cela devrait faire l’affaire

Je devais le faire sur CentOS 5.8. L’ bundle install cours continuait à causer 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 

Fondamentalement, avec les commandes ci-dessus, il faudra regarder /usr/pgsql-9.2/bin/pg_config avant celui de /usr/bin/pg_config

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

 gem 'activerecord-jdbcpostgresql-adapter' 

Sur Mac brew install postgres THEN bundle install

Quel que soit le système d’exploitation que vous utilisez, consultez le fichier de logs du "Makefile" pour voir ce qui se passe, au lieu d’installer des choses en aveugle.

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 de création ne pouvait pas être créé en raison des éléments suivants:

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

À l’intérieur du journal mkmf.log, vous verrez qu’il n’a pas pu trouver les bibliothèques requirejses 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" , je peux voir que toutes les bibliothèques requirejses sont là:

 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 PQsslAtsortingbute()... -------------------- 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 

Il vous suffit d’aller ici pour voir si votre version de pg supporte la plate-forme Win32, puis utilisez cette commande pour installer:

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

Cela fait des années que je ressens ce problème ennuyeux avec PG. J’ai créé cet aperçu 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 

l’essentiel: https://gist.github.com/sharnie/5588340cf023fb177c8d