J'essaye d'installer le pg gem afin de retravailler avec mes projets de rails. Mais j'obtiens cette erreur:
Construire des extensions natives. Cela peut prendre un certain temps ... ERREUR: Erreur lors de l'installation de pg: ERREUR: Échec de la construction de l'extension native gem.
/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If
la construction échoue, veuillez réessayer avec --with-pg-config = / path / to / pg_config recherche de libpq-fe.h ... non Impossible de trouver l'en-tête 'libpq-fe.h * extconf.rb échoué * Impossible de créer Makefile pour une raison quelconque, probablement le manque de bibliothèques et / ou d'en-têtes nécessaires. Consultez le fichier mkmf.log pour plus de détails. Vous pouvez avoir besoin d'options de configuration.
Options de configuration fournies: --with-opt-dir --without-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 = / Utilisateurs / jeanosorio / .rvm / rubies / ruby-2.0.0-p247 / bin / ruby --with-pg --without-pg --with-pg-config --without-pg -config --with-pg_config --without-pg_config --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include = $ {pg-dir} / include - -avec-pg-lib - sans-pg-lib = $ {pg-dir} /
Les fichiers Gem resteront installés dans /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0 pour inspection. Résultats enregistrés dans /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.out
J'ai essayé tout ce que j'ai trouvé sur stackoverflow mais j'obtiens toujours cette erreur.
Si j'essaye d'installer postgresql en utilisant brew, j'obtiens l'avertissement suivant:
Attention: postgresql-9.2.4 déjà installé, il n'est tout simplement pas lié
Si j'essaye de lier
brew link postgresql Linking /usr/local/Cellar/postgresql/9.2.4 ... Attention: Impossible de lier postgresql. Dissociation ...
Erreur: impossible de créer un lien symbolique sur le fichier: /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 / usr / local / share / man / man7 n'est pas accessible en écriture. Vous devez modifier ses autorisations.
Aidez-moi, s'il vous plaît
REMARQUE: j'ai déjà installé les outils de ligne de commande pour les non-conformistes.
Si je désinstalle à l'aide de homebrew et que j'essaye d'installer à nouveau, j'obtiens cette erreur:
==> Téléchargement de http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2
############################################### ################ 100,0%==> Fichier de correctif src / pl / plpython / Makefile Fichier de correctif contrib / uuid-ossp / uuid-ossp.c ==> ./configure --prefix = / usr / local / Cellar / postgresql / 9.2.4 - datadir = / usr / local / Cellar / postgresql / 9.2.4 / share / postgresql --docdir = / usr / local / Cellar / p ==> make install-world ==> Mises en garde
Notes de construction
Si les versions de PostgreSQL 9 échouent et que la version 8.x est installée, vous devrez peut-être d'abord supprimer la version précédente. Voir:
https://github.com/mxcl/homebrew/issues/issue/2510Créer / mettre à niveau une base de données
S'il s'agit de votre première installation, créez une base de données avec: initdb / usr / local / var / postgres -E utf8
Pour migrer des données existantes à partir d'une version majeure précédente (antérieure à 9.2) de PostgreSQL, voir:
http://www.postgresql.org/docs/9.2/static/upgrading.htmlChargement des extensions
Par défaut, Homebrew crée toutes les extensions Contrib disponibles. Pour voir une liste de toutes les extensions disponibles, à partir de la ligne de commande psql, exécutez:
SELECT * FROM pg_available_extensions;Pour charger l'un des noms d'extension, accédez à la base de données souhaitée et exécutez: CREATE EXTENSION [nom d'extension];
Par exemple, pour charger l'extension tablefunc dans la base de données actuelle, exécutez: CREATE EXTENSION tablefunc;
Pour plus d'informations sur la commande CREATE EXTENSION, voir:
http://www.postgresql.org/docs/9.2/static/sql-createextension.html Pour plus d'informations sur les extensions, voir:
http://www.postgresql.org/ docs / 9.2 / static / contrib.htmlAutre
Certaines machines peuvent nécessiter le provisionnement de la mémoire partagée:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC Lors de l'installation du gem postgres, il est recommandé d'inclure ARCHFLAGS: ARCHFLAGS = "- arch x86_64" gem installer pgPour installer des gemmes sans sudo, consultez le wiki Homebrew.
Pour que launchd démarre postgresql à la connexion: ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents Puis pour charger postgresql maintenant: launchctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist Ou , si vous ne voulez pas / avez besoin de launchctl, vous pouvez simplement exécuter: pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start Attention: Impossible de lier postgresql. Dissociation ... Erreur: l'
brew link
étape ne s'est pas terminée correctement La formule a été créée, mais n'est pas liée symboliquement dans / usr / local Vous pouvez réessayer en utilisant `brew link postgresql '==> Résumé 🍺 /usr/local/Cellar/postgresql/9.2 .4: 2831 fichiers, 38 Mo, construits en 4,9 minutes
SOLUTION:
J'exécute cette commande afin de changer l'autorisation du dossier:
sudo chown jeanosorio / usr / local / share / man / man7
ensuite
brew link postgresql Linking /usr/local/Cellar/postgresql/9.3.1 ... 421 liens symboliques créés
Et enfin:
sudo ARCHFLAGS = "- arch x86_64" gem install pg
Récupération: pg-0.17.0.gem (100%) Construction d'extensions natives. Cela peut prendre un certain temps ... pg-0.17.0 installé avec succès
export CONFIGURE_ARGS="with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config"
gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
gem install pg -- --with-pg-config=/Applications//Postgres.app/Contents/Versions/9.3/bin/pg_config
Utilisez une infusion pour obtenir
postgresql
Vérifiez que vous avez pg_config dans le brew installé. J'ai trouvé le mien en
Vérifier via:
Une fois terminé, installez la
pg
gemme avecla source
ls /usr/local/Cellar/postgresql/9.*/bin/pg_config
pour trouver le vrai chemin et combinéenv ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=$(ls /usr/local/Cellar/postgresql/9.*/bin/pg_config)
Je n'ai pas pu installer postgres via MacPorts. Au lieu de cela, j'ai installé Postgress.app . et appelé
Remarque: dans les versions plus récentes (au moins dans la version 9.3), le chemin est en fait:
/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
la source
Si vous avez un homebrew, tapez simplement:
la source
gem install pg
Voici une autre alternative au cas où vous voudriez utiliser directement le programme d'installation de postgresql. Il y a quelques obstacles que vous devez franchir pour commencer après la mise à jour vers les non-conformistes. Voici ce que j'ai fait:
Installez d'abord les outils de ligne de commande xcode:
Téléchargez et installez la dernière version de PostgreSQL (9.3.1), dans mon cas, je viens d'utiliser l'installateur graphique. Voici le lien vers la page de téléchargement:
Choisissez simplement toutes les valeurs par défaut qu'il vous donne. Dans mon cas, il a installé postgres dans le répertoire suivant, si vous l'avez installé dans un répertoire différent, souvenez-vous simplement du chemin que vous avez choisi, car vous en aurez bientôt besoin.
Si vous essayez maintenant d'installer la dernière gemme pg (0.17.0), vous devrez passer quelques options sur la ligne de commande. Voici ce que j'ai utilisé:
Si vous avez installé postgres à un emplacement différent, vous devrez réparer le chemin d'accès au fichier pg_config.
S'il se plaint d'un fichier 'libpq.5.dylib' manquant en essayant d'installer le gem pg, vous devrez créer un lien symbolique pointant vers l'emplacement réel de ce fichier. Postgres le recherche dans votre répertoire / usr / local / lib / donc créez un lien symbolique là-dedans et redirigez-le vers son emplacement réel. Dans mon cas, je devais courir:
Une fois que vous avez fait cela, réessayez d'installer la gemme et j'espère que cela fonctionnera pour vous de la même manière que pour moi.
la source
Pour moi, sur Yosemite, je n'avais pas besoin de spécifier le
pg_config
chemin. Ce qui suit l'a fait.On dirait que le drapeau d'architecture est la clé.
la source
Dans mon cas (j'avais besoin de PG 0.16.0 sur Mavericks), j'ai installé postgresql via MacPorts
puis
Pour la dernière version, vous devez déduire -v '0.16.0'
Si Homebrew est installé, n'installez pas MacPorts avant d'avoir lu sur leur coexistence
la source
Placez les éléments manquants
--with-pg-config
dans le fichier de configuration de Bundler:/Users/<your_user>/.bundle/config
pour vous simplifier la vie.Puis exécutez à
bundle install
nouveau.la source
Ça marche pour moi! (Postgres 93, mac ox 10.9.1) 1. télécharger @ http://postgresapp.com/ et que
la source
J'ai été bloqué sur mon installation de bundle pendant 3 jours. J'ai tout essayé, comme ajouter env ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.5_1 / bin / pg_config
J'ai pu voir pg gem s'installer après cette commande, mais il n'était toujours pas installé à partir de l'installation du bundle, ce qui était pénible car je ne sais pas quoi écrire dans Gemfile sauf gem 'pg'
La chose qui a finalement fonctionné pour moi a été de trouver que mon pg_config était dans /Library/PostgreSQL/9.3/bin/pg_config et par défaut, l'installation du bundle Gemfile regarde dans / usr / local / bin / pg_config
J'ai juste exécuté la commande suivante et la magie s'est produite. bundle config build.pg --with-pg-config = / Bibliothèque / PostgreSQL / 9.3 / bin / pg_config
la source
Dans mon cas, cela ne fonctionnait pas si vous ne spécifiez pas les drapeaux de l'arche, OS X 10.10.3 et postersApp 9.4
la source
Le moyen le plus simple pour moi de résoudre ce problème était d'utiliser Postgres.app et de configurer mes variables d'environnement pour
gem install pg
fonctionner (au lieu d'exiger le--with-pg-config
drapeau).Utilisation de Homebrew Cask ,
la source
Voici ce que cela a fonctionné pour moi:
la source
Dans mon cas, j'ai désinstallé la version installée via homebrew et je suis passé à Postgres.app (v9.3.4.2 au moment de la rédaction).
Cela ne semblait fonctionner qu'en ajoutant les indicateurs d'architecture d'environnement et en spécifiant le chemin vers
pg_config
. Votre kilométrage peut varier, donc cette réponse pourrait vous aider avec des variations surpg_config
l'emplacement de.Voici la commande finale et complète qui a fonctionné pour moi:
la source
sudo ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / bin / pg_config
la source
ARCHFLAGS="-arch x86_64" bundle install
J'obtenais la même erreur lors de l'exécution de l'installation du bundle concernant le pg gem (en utilisant Mac OS X Mavericks). Après des heures de recherche, j'ai trouvé la solution. J'ai installé postgres en utilisant homebrew
Après avoir installé cela, j'ai créé une nouvelle application de rails à l'aide de postgres. L'Iran
en vain (a eu la même erreur que la question). j'ai utilisé
pour savoir où mon postgres a été installé, il est retourné
avant d'exécuter à nouveau l'installation du bundle, j'ai dû changer le chemin global vers build.pg en exécutant ce qui suit
puis j'ai exécuté à nouveau l'installation du paquet et le tour est joué! J'ai utilisé les postgres où Brew l'a installé.
la source
Sur OS X Mavericks avec la dernière application Postgres, procédez comme suit avec les privilèges sudo
la source
Ce qui a fonctionné pour moi sur 10.9.3 avec Xcode 5.1.1 était le suivant:
J'avais besoin de la page 0.17.1
la source
Pour toute âme perdue qui a encore ce problème sans résolution et a
brew
installé un ruby et des postgres . Voici les étapes suivantes pour vous assurer:ruby
n'a pas été installée avec l'--universal
indicateur.--universal
quelle était la racine finale du problème.postgresql
correctement initialisé avec les commandesinitdb
etcreatedb
(cherchez ailleurs pour les étapes à suivre).Xcode
(facultatif) etcommand line tools
est installé; sur le terminal:xcode-select --install
sudo xcodebuild -license
(si Xcode est installé) ou ouvrez l'application et acceptez le contrat de licence.which ruby
,which gem
etwhich postgres
devrait montrer/usr/local/bin/ruby
,/usr/local/bin/gem
et/usr/local/bin/postgres
respect.Sur le terminal:
gem install pg -- --with-pg-config=/usr/local/bin/pg_config
env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_config
En m'assurant que toutes ces étapes sont satisfaites, j'ai pu résoudre les erreurs suivantes:
ruby.h
erreur d'en-têtedeveloper tools installed first
Erreurla source
Tout d'abord, trouvez l'emplacement de pg_config
La réponse est /Library/PostgreSQL/9.1/bin/pg_config dans ma configuration (MAC Maverick)
Ensuite, essayez d'installer quelque chose comme ci-dessous
gem install pg - --with-pg-config = / Bibliothèque / PostgreSQL / 9.3 / bin / pg_config
si cela ne fonctionne pas, essayez de vérifier de quelle manière vous avez installé postgresql
brassage / port mac / configuration
alors vous devez essayer l'option appropriée à la même chose.
Je vous remercie.
RAM
la source
J'étais avec le même problème, c'était la solution que j'ai trouvée.
Si vous exécutez
brew doctor
, cela vous dira que vous avez probablement installé quelque chose sans infusion qui a modifié les autorisations sur certains dossiers, et que vous devez donc vous redonner les autorisations sur ce dossier.À l'intérieur
/usr/local/share/man
, ce que vous pouvez faire est ce qui suit:sudo chown [yourusername] man7
Puis:
brew link postgres
J'espère que ça aide!
la source
De même, après l'installation de Mavericks, la `` mise à jour du bundle '' a généré une erreur sur le pg gem, qui n'est utilisé qu'en production et pas localement.
J'utilise Brew pour gérer mes paquets et postgresql était déjà installé, mais j'obtenais toujours l'erreur 'no pg_config'.
Le correctif consistait simplement à «brasser désinstaller postgresql», puis «brasser installer postgresql». Après quoi, j'ai immédiatement pu exécuter avec succès la `` mise à jour du paquet ''
la source
puis
travaillé le 10.10.2
la source
Si après avoir tout essayé ici, il ne s'installe toujours pas, essayez d'ouvrir Xcode et d'accepter le contrat de licence.
la source
Pour moi, le message d'erreur ressemblait à ceci:
Installing pg 0.18.4 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
...
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config
Comme le montre le message d'erreur, il essaie d'exécuter la commande / script "pg_config". Alors ajoutez-le simplement au chemin où que se trouve votre installation Postgres. Dans mon cas, j'ai fait:
export PATH=/Applications/Postgres.app/Contents/Versions/9.5/bin:$PATH
puis
bundle
C'est tout.
la source
Postgres 9.4:
la source