947 votes

Peut ' t trouver la ' en-tête libpq-fe.h lorsque vous essayez d’installer la gem pg

J’utilise la version 3.1 pré rails. J’aime utiliser PostgreSQL, mais le problème est d’installer la gem pg. Il me donne l’erreur suivante :

Quelqu'un peut-il me dire comment résoudre ce problème ?

1514voto

mu is too short Points 205090

Ressemble à cet en-tête est la partie de l' libpq-dev package (au moins dans la suite de versions d'Ubuntu: Natty, Lucide, Onirique, Precise Pangolin et Trusty Tahr):

...
/usr/include/postgresql/libpq-fe.h
...

Donc, essayer de l'installer en libpq-dev:

  • pour les systèmes Ubuntu: sudo apt-get install libpq-dev
  • sur les systèmes RHEL: yum install postgresql-devel
  • pour Mac: brew install postgresql

229voto

iWasRobbed Points 26926

Sur Mac OS X, utilisez Homebrew pour installer les en-têtes:

brew install postgresql

et puis en exécutant

gem install pg

devrait fonctionner.

126voto

Michael Durrant Points 30342

J'avais aussi essayé de faire un gem install libpq-dev mais j'ai reçu ce message d'erreur:

Can't find the 'libpq-fe.h header
*** extconf.rb failed ***

Cependant j'ai trouvé que l'installation avec sudo apt-get (j'essaie d'éviter d'utiliser avec RoR) a travaillé, c'est à dire

sudo apt-get install libpq-dev

ensuite, j'ai été capable de le faire

gem install pg 

sans problème.

57voto

David Pelaez Points 549

J'ai pu résoudre d'une autre façon. Je n'ai pas trouver la bibliothèque sur mon système. Donc je l'ai installé à l'aide et de l'application de PostreSQL site principal. Dans mon cas (OSX) j'ai trouvé le fichier dans /Library/PostgreSQL/9.1/include/ une fois l'installation terminée. Vous pouvez aussi avoir le fichier quelque part d'autre en fonction de votre système si vous avez déjà PG installé.

Merci pour ce lien sur comment ajouter un chemin d'accès supplémentaire pour le joyau de l'installation j'ai pu constater le joyau de la lib avec cette commande:

export CONFIGURE_ARGS="with-pg-include=/Library/PostgreSQL/9.1/include/"
gem install pg

Après que cela fonctionne, car il sait maintenant où trouver la bibliothèque manquante. Il suffit de remplacer le Chemin d'accès avec le bon emplacement pour votre libpq-fe.h

Si cela aide, un like ou "Cela a été utile", cliquez sur est très apprécié.

13voto

Johann Points 101

dans mon cas, c'était package postgresql-server-dev-8.4 (je suis sur Ubuntu 11.04, x64)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X