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

87

Je viens d'installer Rails 4.0.2et lors de la création d'une nouvelle application, au stade du bundle, j'obtiens:

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?

Deekor
la source
1
Vous voudrez peut-être ajouter une balise osx. La solution semble être liée spécifiquement à votre système d'exploitation.
Vince
Vous voudrez peut-être visiter. stackoverflow.com/questions/3116015/… . J'espère qu'une de ces solutions vous aidera
Yana Agun Siswanto

Réponses:

144

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

Et puis dans le terminal installer en utilisant 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 latestlien symbolique actuellement inclus dans les versions d'expédition de l'application Postgres.

Versions précédentes suggérées:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
Bob O'Brien
la source
Oui, le mien était également dans un endroit différent. Merci d'avoir répondu.
Deekor
Correct Bob, la version de postgresapp dans laquelle cela fonctionnait pour moi, était la version 9.2.2.0, donc ils ont dû changer cet emplacement sur la version 9.3.
Robertibiris
1
Et maintenant, à partir du 22/01/15, nous examinons la version 9.4, il est bon de voir qu'ils la maintiennent à jour - "gem install pg - --with-pg-config = / Applications / Postgres. app / Contents / Versions / 9.4 / bin / pg_config "
corprew
3
J'étais pressé et j'ai raté la partie de cette réponse qui dit "installer en utilisant home-brew". Cette réponse a fonctionné pour moi après moibrew update; brew install postgres
Dennis
6
Dans votre solution, veuillez ajouter la version, autre le dernier gem PG sera installé:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
user1322092
183

Une sorte d'erreur rapportée ici Installation de PG gem sur OS X - échec de la construction de l'extension native

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

sudo apt-get install libpq-dev

et ça

gem install pg
Talgat Medetbekov
la source
5
Im sur un Mac, que dois-je faire?
Deekor
1
Suivez le tutoriel sur railstutorial.org. C'est ce que vous devez faire pour Mint. Merci.
Christopher Schneider
railstutorial.org - tutoriel payant; d'autres idées?
Terra Ashley le
21

racine de l'application:

  1. mise à jour de la bière
  2. infusion installer postgres
  3. gem install 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: créer: tout
  9. rake db: migrer
  10. rails s

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

couteau
la source
10

Réponse précédente fonctionnant avec une ancienne version

J'ai installé sous mac OSX Mavericks, avec l'application postgres (version 9.2.2.0) de www.postgresapp.com installée. Le problème sous-jacent était simplement que depuis que postgres a été installé via l'application, le fichier de configuration réside sur 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 cela aide

Robertibiris
la source
1
C'était ma solution (OSX)
raulriera
Si cela ne fonctionne pour personne, pour 9.3, le fichier de configuration a été déplacé - voir la réponse acceptée.
Deekor
5

Si l'installation de gem 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

... de la documentation PostgreSQL.app

Vince
la source
2
Étant donné que l'application officielle a récemment changé de nom en "Postgres93.app", la commande devrait être: env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
Blackcoat
1
pour moi, cela a fonctionné avec: env ARCHFLAGS="-arch x86_64" gem install pg
dnlcrl
4

Il semble que vous n’avez pas installé PostgreSQL. Le pggem nécessite des en-têtes de PostgreSQL pour compiler l'extension native.

tungd
la source
Qu'en est-il de votre configuration Ruby / Bundler? Vous utilisez Mac OS X ou Linux? et si vous utilisez Mac OS X, vous avez installé PostgreSQL via homebrewou PostgreSQL.app?
tungd
Je suis sur un mac. J'ai installé via l'application
Deekor
J'ai 0.17.0 installé. Y a-t-il un mal à l'utiliser avec des rails 4?
Deekor
Ensuite, essayez de courir bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_configet de bundlerecommencer. Ajustez le chemin de configuration si vous installez l'application ~/Applicationplutôt que/Application
tungd
3

J'ai dû 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
Mark Wang
la source
3

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

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

Ensuite, utilisez bundle install --without production

j8d
la source
3

Pour les utilisateurs CentOS:

sudo yum install postgresql-devel

et

gem install pg
webster
la source
1

Je viens de mettre en place un nouveau Macbook Pro qui a été pré-construit avec Catalina.

Ce qui a fonctionné pour moi:

  1. Installez les Postgres à partir d'ici: https://postgresapp.com/
  2. Ajoutez export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"à votre .zshenv, puisque Z shell est maintenant le terminal par défaut.
Henrik Holm
la source
0

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 cet ensemble, l'installation fonctionne très bien!

J'espère que cela aide

pochocosta
la source
0

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

  • cd dans le dossier de l'application, puis définissez la version ruby ​​localement. J'utilise ruby ​​2.1.2.

rbenv local 2.1.2

  • au lieu d'exécuter simplement l'installation du bundle, installez les gemmes dans le fournisseur / bundle

bundle install - chemin fournisseur / bundle

Cela l'a fait pour moi.

Bogdan Nechita
la source
0

J'avais besoin d'utiliser sudo

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

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

    sudo yum install postgresql-devel

puis:

    bundle install

et essayez à nouveau:

    rails serve
Maurici Abad
la source
0

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.

zykadelic
la source
-2

Ça marche pour moi

rvm list gemsets
rvm use ruby-2.4.1
bundle

erreur [! [résolue avec rvm use ruby] 2

DevMasterAryan
la source
Vous n'installez pas le pgbijou ici
zykadelic