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é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.
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
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
gem install pg -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config
@ 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.
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/
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
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
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.
$ 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.
Sur Mac OS (El Capitano). Vous pouvez simplement utiliser: brew install postgresql
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.
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.
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
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
Pour les utilisateurs de Mac
PATH=$PATH:/Library/PostgreSQL/9.4/bin/ gem install pg
Cela devrait faire l'affaire
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'
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
Sur Mac brew install postgres
ALORS bundle install
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
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