74 votes

Gem install pg --with-pg-config fonctionne, bundle échoue

Quand je lance (en tant que root)

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

Je reçois la sortie suivante:

#-> gem instal pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config
Construction d'extensions natives. Cela pourrait prendre un certain temps...
Installation de pg-0.12.0 réussie
1 gem installé
Installation de la documentation ri pour pg-0.12.0...
Installation de la documentation RDoc pour pg-0.12.0...
#-> 

Quand je lance bundle install:

Installation de pg (0.12.0) avec des extensions natives 
Gem::Installer::ExtensionBuildError: ERREUR: Échec de la construction de l'extension native de la gem.

    /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
vérification de pg_config... no
Aucun pg_config... tentative quand même. Si la construction échoue, veuillez réessayer avec
--with-pg-config=/path/to/pg_config
vérification de libpq-fe.h... no
Impossible de trouver l'en-tête 'libpq-fe.h
*** extconf.rb a échoué ***
Impossible de créer le Makefile pour une raison quelconque, probablement un manque
de bibliothèques et/ou en-têtes nécessaires. Vérifiez le fichier mkmf.log pour plus
de détails. Vous pourriez avoir besoin d'options de configuration.

Options de configuration fournies:
--with-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=/usr/local/rvm/rubies/ruby-1.9.2-p290/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

Les fichiers de la gem resteront installés dans /var/www/simpletrac/vendor/cache/ruby/1.9.1/gems/pg-0.12.0 pour inspection.
Résultats enregistrés dans /var/www/simpletrac/vendor/cache/ruby/1.9.1/gems/pg-0.12.0/ext/gem_make.out
Une erreur s'est produite lors de l'installation de pg (0.12.0), et Bundler ne peut pas continuer.
Assurez-vous que `gem install pg -v '0.12.0'` réussit avant de faire un bundle.

J'ai libpq-fe.h installé à /usr/pgsql-9.1/include/libpq-fe.h. Donc, j'ai essayé

gem install pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config --with-pg-lib=/usr/pgsql-9.1/include/libpq-fe.h mais toujours pas de succès. 

Toute aide serait grandement appréciée.

Aussi, j'ai installé postgresql91-devel et ruby-devel. Je suis sous CentOS 6.

188voto

Johannes Fahrenkrug Points 12795

Avez-vous essayé d'exécuter ceci avant d'exécuter bundle install ?

bundle config build.pg --with-pg-config=/usr/pgsql-9.1/bin/pg_config

Voir http://bundler.io/v1.3/bundle_config.html

0 votes

Si vous utilisez MacOS + MacPorts, consultez le message de Lester pour la solution.

0 votes

J'ai la même erreur mais j'utilise la base de données mysql. Quelle sera la commande s'il vous plaît ??

1 votes

Cela semble avoir la réponse pour MySql : stackoverflow.com/a/9360181/171933

20voto

Lester Celestial Points 509

Si quelqu'un a utilisé macports pour installer postgres et rencontre des problèmes pour trouver leur pg_config, essayez ceci :

bundle config build.pg --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config

J'espère que cela aidera quelqu'un à gagner du temps. Santé!

7voto

TTT Points 41

J'ai eu le même problème, résolu en installant libpq-dev.

Réf : https://bitbucket.org/ged/ruby-pg/issue/83/help-gem-install-pg-failed-on-opensuse-103

4voto

AndyM Points 226

Vous pouvez obtenir cette erreur si vous avez pg_config installé mais qu'il n'est pas dans un chemin quelconque. Vous pouvez l'ajouter à votre environnement PATH dans votre ~/.bashrc.

Par exemple.

export PATH=${PATH}:/usr/pgsql-9.2/bin

0 votes

Est-ce que cela pourrait être le résultat d'une installation à partir de la source au lieu d'un gestionnaire de paquets? En tout cas, ça a marché pour moi - Juste curieux de savoir pourquoi j'ai rencontré le problème.

3voto

Luke Sheppard Points 138

J'ai dû faire ceci pour réparer la mienne sur OS X:

export PATH=/opt/local/lib/postgresql84/bin/:$PATH

Et j'ai dû le faire malgré le fait que j'avais déjà cela dans mon chemin:

[user@foo ~] which psql84
/opt/local/bin/psql84

[user@foo ~] ls -altrh /opt/local/bin/psql84 
lrwxr-xr-x  1 root  admin    36B Dec  7 02:15 /opt/local/bin/psql84 ->  /opt/local/lib/postgresql84/bin/psql

J'espère que cela aidera un autre utilisateur Mac avec ce problème.

0 votes

Merci, j'ai testé cette solution sur Mac Yosemite.

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