Ne pouvez pas trouver le client PostgreSQL (bibliothèque libpq)
Je suis en train d'installer PostgreSQL pour les Rails sur Mac OS X 10.6. J'ai d'abord essayé de l'installer MacPorts, mais qui ne vont pas bien alors je l'ai fait en un seul clic DMG d'installation. Qui semblait fonctionner.
Je crois bien que je besoin pour installer PostgreSQL développement des paquets, mais je n'ai aucune idée de comment faire cela sur OS X.
Voici ce que j'obtiens quand j'essaie de faire sudo gem install pg
:
$ sudo gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /Library/PostgreSQL/8.3/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** 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
--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=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
--with-pqlib
--without-pqlib
--with-libpqlib
--without-libpqlib
--with-ms/libpqlib
--without-ms/libpqlib
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/pg-0.11.0 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/pg-0.11.0/ext/gem_make.out
- Avez-vous d'installer la version 8.3 de postgresql ou est-il ramasser quelques ancienne installation? Si c'est de 8.3 les bibliothèques doivent être dans /Bibliothèque/PostgreSQL/8.3/lib veuillez vérifier si il est là.
- J'ai fait la version 8.3 et, oui, on dirait que tout est là.
- Vous pouvez poster à la sortie de
pg_config
? Cela devrait rendre plus facile pour nous pour les aider. - J'ai dû ajouter de la version -v '0.14.0" de sorte qu'il a travaillé avec mu projet
Vous devez vous connecter pour publier un commentaire.
TRAVAILLÉ!
env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config
export ARCHFLAGS="-arch x86_64"
à votre~/.bash_profile
. Ouvrez une nouvelle fenêtre de terminal et exécutezbundle install
. Bundler ne dispose pas d'une option de configuration pour les variables d'environnement afin de mettre ceci dans votre.bash_profile
mettra à la disposition des bundler, quand il va faire exécutergem install
.J'ai essayé le top-rated de réponse ici:
Mais quand j'ai essayé de courir bundle install de nouveau, il avait la même erreur. Ensuite, j'ai essayé l'ensemble de l'installer avec ARCHFLAGS comme suit:
A fonctionné pour moi! Assurez-vous de remplacer x86_64 avec i386 en fonction de ce que l'architecture que vous avez.
Je viens d'avoir ce problème lors de l'utilisation de la EnterpiseDB .dmg. Si c'est le même pensez que vous avez utilisé, je l'ai eu à travailler en spécifiant le droit d'architecture:
Il y a des tutoriels sur le web qui dit de spécifier une architecture différente (comme "-arch x86_64" pour les personnes qui ont utilisé MacPorts) mais ça ne marchait pas pour moi parce que j'ai utilisé le seul fichier installer.
Si l'aide de Yosemite:
Alors:
Et (facultatif) enfin, si vous souhaitez lancer autovacuum...
Peut-être vous pouvez essayer celui-ci:
De connaître l'architecture de votre bibliothèque, vous pouvez utiliser
qui a donné seulement 1 architecture dans mon cas (installé via homebrew):
Solution: réinstallé PostgreSQL avec Homebrew.
Faux hors
gem
en préfixant les variables d'environnement appropriées. Si vous ont été l'installation de MacPorts, vous devriez être capable de marcher à travers la procédure suivante:À partir de là, tirez sur la
LIBDIR
,INCLUDEDIR
,CPPFLAGS
,LIBS
etLDFLAGS
(celui que je pense à vous permettront de courir estLIBDIR
, cependant). Vous devez alors exécuter:Qui devrait le faire pour vous. Laissez-moi savoir si ça ne marche pas.
locate pg_config
CPPFLAGS
ouLDFLAGS
(je ne sais pas ce que c'est, désolé).locate pg_config
ne me montrer quelques trucs, si. Et j'ai essayé d'installer PostgreSQL via MacPorts et à l'aide de votre commande n'a pas fonctionné.pg_config
à votrePATH
?pg_config
à monPATH
.LDFLAGS
n'était pas le répertoire qui contenaitlibpq
. Voir les détails ci-dessus.Le problème que nous avions était assez bizarre.
mais quand nous avons fait un bundle install en fait, bundler n'a pas été installée pour la version de ruby qui a été installé par rbenv, de sorte que, lorsque nous avons tapé bundle install, il a utilisé le système de regroupement du système.
Donc, avant de bundle install, assurez-vous que vous avez installé bundler en exécutant
Je ne pense pas que vous avez besoin de la postgres fichiers de développement, tout ce dont vous avez besoin devrait avoir été inclus avec votre installateur. Il est plus probable que le chemin qu'ils sont installés à n'est pas dans votre chemin d'accès d'environnement et, par conséquent, gem peut pas le trouver lorsqu'il essaie de compiler pg.
Vous ne devriez pas avoir à exécuter
gem install pg
en tant que root, en fait, si vous le faites, il est probable que votre CHEMIN (de la racine du CHEMIN d'accès si run w/sudo) ne contiennent pas les informations nécessaires.Suivantes travaille habituellement pour moi:
gem install pg
(avec vos deux commandes précédentes) au lieu desudo gem install pg
donne toujours les mêmes résultats./Library/PostgreSQL/...
à l'emplacement correct de partout où votre copie de l'installation de postgres est?sudo port install postgresql83 postgresql83-server
, semblable à ces instructions: flux88.com/2010/06/installing-postgresql-for-rails-on-mac-os-x. Il semble que le programme d'installation autonome est de 32 bits, si vous souhaitez définir votre arc drapeaux à 32 bits même si votre machine 64 bits. Si vous ne pouvez pas le faire fonctionner, je te suggère de désinstaller et de réinstaller via MacPorts, puis de suivre les instructions ci-dessus. Espérons que ça aide!C'est ce que finalement il l'a fait pour moi (combinaison de plusieurs solutions fournies avant le long de avec d'autres postes):
$ sudo env ARCHFLAGS="-arch x86_64" gem install pg-avec-pg-include=/Library/PostgreSQL/9.6/include/
La
ARCHFLAGS
réponse que d'autres ont proposé de ne fonctionnera pas si vous en quelque sorte retrouvé avec une version 64 bits de postgres (homebrew qui va installer) et une version 32 bits de ruby. Pour une raison quelconquerbenv
insiste sur la construction de ruby 1.9.2-p290 32 bits, pour moi, ce qui fait qu'il est impossible de lier contre 64 bits postgres.Vérifier l'architecture de votre ruby binaire avec
ou si vous utilisez rbenv
Et comparez-vous à vos postgres:
Si il y a un mauvais match, vous aurez besoin de ré-installer postgres ou ruby. Avec rbenv j'ai résolu ce problème simplement en passant à une version différente:
1.9.3-p194
au lieu de1.9.2-p290
.C'est comment j'ai fait pour travailler sur Mavericks. Note: j'ai déjà installé postgresql 9.3 de homebrew.
Mise à jour de Xcode de 5.0 à partir de l'App Store
Installer en ligne de commande outils de développement
xcode-select --installer
D'accord pour Xcode licence
sudo xcodebuild -licence
Installer gem
ARCHFLAGS="-arch x86_64" gem install pg
Donc, fondamentalement, je l'ai fait 😉
Je suis probablement un peu en retard pour la fête ici, mais dans mon cas, j'ai été en utilisant rbenv et la mise à niveau vers Ruby 2.2.3. J'ai dû installer Bundler pour obtenir le mien à travailler, j'avais une vieille version du système d'.
gem install bundler
Comme mentionné ci-dessus, cela a à voir avec le fait d'avoir deux rubis ponts sur rbenv
/usr/bin/ruby: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [i386:Mach-O executable i386]
ce que j'avais à faire était de simplement installerpg
gem forcerx86_64
arc pour être utilisés avec cette commande:sudo env ARCHFLAGS="-arch x86_64" gem install pg
N'oubliez pas d'avoir votre
bash_profile
à jourAjouter le chemin d'accès de votre postgres, dans ce cas, im en utilisant Postgres application (
OSX
) au lieu debrew
(https://postgresapp.com/) par défaut c'est l'emplacement:export PATH=/Applications/Postgres.app/Contents/Versions/10/bin:$PATH
Recharger bash avec
sudo vi ~/.bash_profile
Après avoir fait cela, j'ai pu enfin réussi à installer
pg gem
Espérons que cette aide!
Sur Mac, vous pouvez essayer ceci (pour moi):
gem install pg-avec-pg-include=/Library/PostgreSQL/9.5/include
Extraction: pg-1.0.0.gem (100%)
La construction d'extensions natives avec: "avec-pg-include=/Library/PostgreSQL/9.5/include'
Cela pourrait prendre un certain temps...
Installé avec succès pg-1.0.0
L'analyse de la documentation pour pg-1.0.0
L'installation de ri documentation pour pg-1.0.0
Terminé l'installation de la documentation pour pg au bout de 3 secondes
1 gemme installé
(cette partie "/Bibliothèque/PostgreSQL/9.5/include" vous devez mettre votre Postgres chemin)