web-dev-qa-db-fra.com

Impossible d'installer pg gem dans Mavericks avec Postgres.app

J'essaie d'installer le gem pg pour l'utiliser avec Postgres.app sur mon ordinateur local. Je cours des non-conformistes.

Postgres.app est installé et fonctionne bien, mais je ne parviens pas à faire fonctionner la gemme. J'ai fait ce qui suit:

  1. Utilisation de la commande 'env ARCHFLAGS = "- Arch x86_64" gem install pg - --with-pg-config =/Applications/Postgres.app/Sommaire/MacOS/bin/pg_config' dans la documentation de Postgres.app
  2. Mise à jour de Homebrew et installation de l’Apple GCC 4.2
  3. Installé les outils de développement Xcode
  4. Mise à jour mon $ PATH pour faire référence aux répertoires Postgres.app bin et lib

Tous sans succès. Voici le message d'erreur spécifique que je reçois:

Building native extensions with: '--with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config'
This could take a while...
ERROR:  Error installing pg:
    ERROR: Failed to build gem native extension.

    /Users/Brian/.rvm/rubies/Ruby-2.0.0-p353/bin/Ruby extconf.rb --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Using config values from /Applications/Postgres.app/Contents/MacOS/bin/pg_config
sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
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=/Users/Brian/.rvm/rubies/Ruby-2.0.0-p353/bin/Ruby
    --with-pg
    --without-pg
    --with-pg-config
    --with-pg-dir
    --without-pg-dir
    --with-pg-include
    --without-pg-include=${pg-dir}/include
    --with-pg-lib
    --without-pg-lib=${pg-dir}/

J'apprécierais toute aide que vous pourriez offrir. Merci!

66
blundin

Vous avez probablement le mauvais chemin pour --with-pg-config, vérifiez s'il est réellement là.

Vous pouvez trouver le chemin correct pour pg_config avec:

find /Applications -name pg_config

Dans la dernière version de Postgres.app, le chemin est le suivant:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config
246
Tom De Leu

Dans mon cas (exécutant Postgres.app v9.3.4.2), il ne semblait fonctionner que lors de l'ajout des indicateurs d'architecture d'environnement:

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

Étant sur un tout nouveau Mac, voici ce que je devais faire:

  1. Installer les outils Xcode depuis l'App Store
  2. Ouvrez les outils Xcode et acceptez la licence
  3. Maintenant, lancez (espérons une commande à l'épreuve du temps):

    version=$(ls /Applications/Postgres.app/Contents/Versions/ | tail -1) gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/$version/bin/pg_config .

Si vous rencontrez des problèmes, vous pouvez résoudre un problème en consultant l'erreur réelle dans le fichier mkmf.log que vous pouvez trouver en exécutant (si vous utilisez rvm):

cd ~/.rvm ; find . -name mkmf.log | grep pg
13
Louis Sayers

J'ai pu installer pg avec cette commande

    gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

J'ai trouvé mon chemin en courant

    Sudo find / -name "pg_config"

et j'ai installé avec succès pg-0.17.1

5
ylemp

Pour résoudre ce problème, j'ai installé postgres en utilisant homebrew à l'aide des éléments suivants dans la fenêtre du terminal:

brew install postgres

Homebrew peut être trouvé ici

http://brew.sh

2
Geoff Smith

Cela a fonctionné pour moi:

gem install pg -- --with-pg-config=`which pg_config`
1
Gerry

l'ajout du répertoire bin postgress au chemin fait également l'affaire. Ajoutez simplement le bac à la pat comme ceci. Avec les installations récentes, le dernier lien symbolique garantit que ce chemin doit être "stable" pour les futures mises à niveau.

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
1
koen

Pour référence future, car beaucoup d’entre nous affichons de nouveaux chemins pour les nouveaux numéros de version:

Actuellement, je vois un lien symbolique appelé latest dans /Applications/Postgres.app/Contents/Versions/.

Vous devriez pouvoir faire juste:

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

Et oubliez le numéro de version. Cela peut ne pas s'appliquer à toutes les versions (les plus anciennes), mais je recherchais moi-même un extrait que je pourrais sauvegarder et réutiliser.

0
Gabriel Osorio