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?


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

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


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.


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


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


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.


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

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


3

Pour les utilisateurs CentOS:

sudo yum install postgresql-devel

et

gem install pg

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.

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


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.


0

J'avais besoin d'utiliser sudo

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

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

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.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.