web-dev-qa-db-fra.com

gem install pg --with-pg-config fonctionne, le bundle échoue

Quand je cours (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
Building native extensions.  This could take a while...
Successfully installed pg-0.12.0
1 gem installed
Installing ri documentation for pg-0.12.0...
Installing RDoc documentation for pg-0.12.0...
#-> 

Quand j'exécute bundle install: 

Installing pg (0.12.0) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /usr/local/rvm/rubies/Ruby-1.9.2-p290/bin/Ruby 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
--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


Gem files will remain installed in /var/www/simpletrac/vendor/cache/Ruby/1.9.1/gems/pg-    0.12.0 for inspection.
Results logged to /var/www/simpletrac/vendor/cache/Ruby/1.9.1/gems/pg-0.12.0/ext/gem_make.out
An error occured while installing pg (0.12.0), and Bundler cannot continue.
Make sure that `gem install pg -v '0.12.0'` succeeds before bundling.

J'ai installé libpq-fe.h à /usr/pgsql-9.1/include/libpq-fe.h. Alors 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 but still no go. 

Toute aide serait grandement appréciée.

En outre, j'ai installé postgresql91-devel et Ruby-devel. Lancer CentOS 6.

66
YuKagi

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

162
Johannes Fahrenkrug

Si quelqu'un a utilisé macports pour installer postgres et a du mal à trouver son pg_config, essayez ceci:

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

J'espère que cela aide quelqu'un à gagner du temps. À votre santé!

18
Lester Celestial

Si vous ne savez pas où se trouve votre pg_config et si vous êtes sous Linux ou Mac, vous pouvez exécuter la commande suivante:

which pg_config

cela retournera ==> /usr/pgsql-9.1/bin/pg_config

maintenant utiliser ce chemin comme

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

Fait maintenant bundle install

10
Jai Kumar Rajput

Avait 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

7
TTT

Je suis sur Mac et j'utilise Homebrew. Pour résoudre ce problème, je viens d'installer Postgresql avec brew:

brew install postgresql

Et puis installé la gemme.

4
Billy Kovalsky

Vous pouvez obtenir cette erreur si vous avez installé pg_config mais ce n’est dans aucun chemin. Vous pouvez l'ajouter à votre env. PATH dans votre ~/.bashrc. 

Par exemple.

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

Je devais le faire pour réparer le mien sur OS X:

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

Et je devais le faire malgré le fait que j'avais déjà cela sur 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 à résoudre ce problème.

3
Luke Sheppard

Le gem Postgres ne trouve pas le fichier de configuration Postgres. Vous devez dire où il se trouve. À mon avis, la solution la plus agréable consiste à éviter Brew et MacPorts et à utiliser simplement l'application Postgres. Téléchargez et installez à partir d'ici:

http://postgresapp.com/

Maintenant, ajoutez le dossier bin à votre chemin:

PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

Vous pouvez aussi ajouter ceci à votre ~/.bash_profile

Maintenant, installez la gemme:

gem install pg

ça devrait aller en douceur.

3
superluminary

J'utilise Arch Linux et je rencontrais des problèmes similaires. Sudo pacman -S libpqxx utilisé et relancer ensuite installé la gem pg puis exécuté bundle install à nouveau, et cette fois cela a finalement fonctionné!

This link a suggéré d'utiliser:

gem install pg --pre

Je n'ai pas pu installer le pg gem pendant plusieurs jours, mais cette méthode a finalement fonctionné pour moi. J'espère que cela vous sera utile.

1
NickJ987

Essaye ça:

yum install libpqxx-devel

Cela fonctionne avec Postgr9.2.

1
MaciejO

Lorsque vous utilisez postgresapp sur Mac, lisez la documentation http://postgresapp.com/documentation/cli-tools.html et configurez votre $ PATH. Avant cela, essayez de relancer l’installation du bundle.

1
Roberto Capelo

sous OSX, installez d'abord pg:

brew install postgresql

deuxièmement, est-ce que gem install:

gem install pg --source 'https://rubygems.org/'

vous pouvez ensuite exécuter bundle install

0
matrik

Assurez-vous d'avoir installé Postgres. sinon installez-le d'abord. Utiliser un terminal par exemple.

brew install postgresql

Après cette course 

bundle install
0
Ronny Kibet
gem install pg -v '0.17.1'

A fait le tour pour moi.

0
gabemartinez

Quelques cas sur UBUNTU

Sudo apt-get install libpq-dev

Sur CentOS 7

Sudo yum install postgresql-devel

Ensuite

bundle install

cela a fonctionné pour moi.

0
Thialyson Martins