web-dev-qa-db-fra.com

Une erreur s'est produite lors de l'installation de pg (0.17.1) et Bundler ne peut pas continuer.

Je viens d'installer Rails 4.0.2 et lors de la création d'une nouvelle application, à l'étape des offres groupées, je reçois:

Installing pg (0.17.1) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/Dee/.rvm/rubies/Ruby-2.0.0-p247/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.

Comment puis-je réparer ça?

82
Deekor

Je suis sur un Mac sous Mavericks. Ma solution était d'installer Postgres .

Et ensuite, dans un terminal, utilisez homebrew avec la configuration:

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

Remarque: cette réponse a été modifiée pour utiliser le lien symbolique latest actuellement inclus dans les versions d'expédition de l'application Postgres.

Les versions précédentes suggérées:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
135
Bob O'Brien

Une sorte d'erreur est rapportée ici Installation de PG Gem sur OS X - Echec de la création d'une extension native

Pour installer des dépendances sur Ubuntu, essayez ceci:

Sudo apt-get install libpq-dev

et ça

gem install pg
160
Talgat Medetbekov

racine de l'application:

  1. mise à jour de la bière
  2. brasser installer postgres
  3. gem installer pg - --with-pg-config =/usr/local/Cellar/postgresql/9.3.4/bin/pg_config
  4. installation groupée
  5. ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
  6. launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
  7. createuser -s -r postgres
  8. rake db: create: all
  9. rake db: migrer
  10. Rails s

REMARQUE: remplacez le numéro de version à l'étape 3 si nécessaire.

18
knice

Réponse fonctionnant auparavant avec une version antérieure

J'ai installé sous Mac OSX Mavericks, en ayant l'application Postgres (version 9.2.2.0) de www.postgresapp.com installée. Le problème sous-jacent était simplement que postgres ayant été installé via l'application, le fichier de configuration réside à un emplacement qui n'est pas celui par défaut lors de son installation sans postgressapp. Nous devons donc indiquer à Gem où trouver ce fichier en:

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

J'espère que ça aide

11
Robertibiris

Si gem install pg échoue, essayez la commande suivante:

env ARCHFLAGS="-Arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

... depuis le Documentation PostgreSQL.app

5
Vince

On dirait que PostgreSQL n'est pas installé. Le gem pg requiert des en-têtes de PostgreSQL pour compiler une extension native.

4
tungd

Pour les utilisateurs CentOS:

Sudo yum install postgresql-devel

et

gem install pg
3
webster

Je devais tout combiner et utiliser

Sudo env ARCHFLAGS="-Arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
3
Mark Wang

Si vous utilisez autre chose que Postgres en développement et Postgres uniquement en production, vous pouvez ajouter le pg gem à votre gemfile comme suit ...

group :production do
  gem 'pg',             '0.17.1'
end

Ensuite, utilisez bundle install --without production

3
j8d

Si vous avez installé via Homebrew; gem install pg -- --with-pg-config=/usr/local/bin/pg_config. Fonctionne avec Ruby 2.4.6 et pg 0.20.0.

0
zykadelic

La façon dont j'ai réussi à dépasser cette erreur était:

  • cd dans le dossier app puis définissez la version Ruby localement. J'utilise Ruby 2.1.2.

rbenv local 2.1.2

  • au lieu de simplement lancer l’installation en bundle, installez les gems dans vendor/bundle

bundle installer --path vendor/bundle

Cela l'a fait pour moi.

0
Bogdan Nechita

J'avais besoin d'utiliser Sudo

Sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config
0
gypsyDev

J'avais un problème avec Amazon et je ne pouvais pas utiliser apt-get. Pour mon travail:

    Sudo yum install postgresql-devel

ensuite:

    bundle install

et essayez à nouveau:

    Rails serve

Après avoir installé Postgres, j'ai dû exécuter la commande suivante

env ARCHFLAGS="-Arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

Après cette installation bundle fonctionne très bien!

J'espère que ça aide

0
pochocosta