J'essaye d'installer PostgreSQL for Rails sur Mac OS X 10.6. J'ai d'abord essayé l'installation de MacPorts mais cela ne s'est pas bien passé, alors j'ai fait l'installation DMG en un clic. Cela semblait fonctionner.
Je soupçonne que j'ai besoin d'installer les packages de développement PostgreSQL mais je ne sais pas comment faire cela sur OS X.
Voici ce que j'obtiens lorsque j'essaye 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
ruby-on-rails
ruby-on-rails-3
postgresql
rubygems
Jason Swett
la source
la source
pg_config
? Cela devrait nous faciliter l’aide.Réponses:
TRAVAILLÉ!
la source
env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config
J'ai essayé la réponse la mieux notée ici:
Mais quand j'ai essayé d'exécuter à nouveau l'installation de bundle, il y avait la même erreur. Ensuite, j'ai essayé l'installation complète du bundle avec ARCHFLAGS comme ceci:
A travaillé pour moi! Assurez-vous de remplacer x86_64 par i386 en fonction de l'architecture dont vous disposez.
la source
J'avais juste ce problème lors de l'utilisation d'EnterpiseDB .dmg. Si c'est la même chose que vous pensez utilisée, je l'ai fait fonctionner en spécifiant la bonne architecture:
Il y a quelques tutoriels sur le web qui disaient de spécifier une architecture différente (comme "-arch x86_64" pour les personnes qui utilisaient MacPorts) mais cela ne fonctionnait pas pour moi car j'ai utilisé l'installation de fichier unique.
la source
Si vous utilisez Yosemite:
Ensuite:
Et (optionnel) enfin, si vous souhaitez lancer l'autovacuum ...
la source
Peut-être que vous pouvez essayer celui-ci:
Pour connaître l'architecture de votre bibliothèque, vous pouvez utiliser
ce qui n'a donné qu'une architecture dans mon cas (installée via homebrew):
la source
Solution: réinstallé PostgreSQL avec Homebrew.
la source
Fake out
gem
en préfixant les variables d'environnement appropriées. Si vous installez à partir de MacPorts, vous devriez pouvoir suivre la procédure suivante:A partir de là, retirez le
LIBDIR
,INCLUDEDIR
,CPPFLAGS
,LIBS
etLDFLAGS
(celui que je pense que vous obtiendrez en cours d' exécution estLIBDIR
, cependant). Ensuite, vous courriez:Cela devrait le faire pour vous. Faites-moi savoir si ce n'est pas le cas.
la source
locate pg_config
CPPFLAGS
ouLDFLAGS
(je ne sais pas ce que c'est, désolé).locate pg_config
m'a montré des trucs, cependant. Et j'ai simplement essayé d'installer PostgreSQL via MacPorts et d'utiliser votre commande - cela n'a pas fonctionné.LDFLAGS
n'était pas défini sur le répertoire qui contenaitlibpq
. Voir ci-dessus pour plus de détails.Le problème que nous avions était assez étrange.
mais quand nous avons fait une installation de bundle en fait, le bundler n'était pas installé pour la version de ruby qui avait été installée par rbenv, donc, quand nous avons tapé bundle install, il utilisait le bundler du système.
Donc, avant d'exécuter l'installation du bundle, assurez-vous d'avoir installé le bundler en exécutant
la source
Je ne pense pas que vous ayez besoin des fichiers de développement postgres, tout ce dont vous avez besoin aurait dû être inclus avec votre programme d'installation. Il est plus probable que le chemin sur lequel ils sont installés ne se trouve pas dans le chemin de votre environnement et que, par conséquent, gem ne puisse pas les trouver lorsqu'il essaie de compiler pg.
Vous ne devriez pas avoir à exécuter en
gem install pg
tant que root, en fait, si vous le faites, il est probable que votre PATH (le PATH de la racine s'il est exécuté avec sudo) ne contiendra pas les informations nécessaires.Ce qui suit fonctionne généralement pour moi:
la source
gem install pg
(avec vos deux commandes précédentes) au lieu desudo gem install pg
donne toujours exactement les mêmes résultats./Library/PostgreSQL/...
l'emplacement correct de l'emplacement de votre copie de l'installation postgres?sudo port install postgresql83 postgresql83-server
, similaire à ces instructions: flux88.com/2010/06/installing-postgresql-for-rails-on-mac-os-x . Il semble que le programme d'installation autonome soit 32 bits, vous voulez donc définir vos indicateurs d'archive sur 32 bits même si votre machine est 64 bits. Si vous ne pouvez pas le faire fonctionner, je vous suggère de désinstaller et de réinstaller via MacPorts, puis d'essayer les instructions ci-dessus. J'espère que cela pourra aider!C'est ce qui a finalement fait pour moi (combinaison de plusieurs solutions fournies auparavant avec d'autres articles):
$ sudo env ARCHFLAGS = "- arch x86_64" gem install pg - with-pg-include = / Bibliothèque / PostgreSQL / 9.6 / include /
la source
La
ARCHFLAGS
réponse que d'autres ont proposée ne fonctionnera pas si vous vous retrouvez avec une version 64 bits de postgres (que l'homebrew installera) et une version 32 bits de ruby. Pour une raison quelconque,rbenv
insiste sur la construction de ruby 1.9.2-p290 en 32 bits pour moi, ce qui rend impossible la liaison avec des postgres 64 bits.Vérifiez l'architecture de votre binaire ruby avec
ou si vous utilisez rbenv
Et comparez avec vos postgres:
En cas de non-correspondance, vous devrez 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
.la source
C'est ainsi que je l'ai fait fonctionner sur Mavericks. Remarque: j'avais déjà installé postgresql 9.3 à partir de homebrew.
Mettre à jour Xcode vers 5.0 depuis l'App Store
Installer les outils de développement en ligne de commande
xcode-select - installer
Accepter la licence Xcode
sudo xcodebuild -license
Installer la gemme
ARCHFLAGS = "- arch x86_64" gem install pg
la source
Donc en gros, j'ai fait ça ;-)
la source
Je suis probablement un peu en retard à la fête ici, mais dans mon cas, j'utilisais rbenv et je passais à Ruby 2.2.3. J'ai dû installer Bundler pour que le mien fonctionne, j'avais une ancienne version du système.
gem install bundler
la source
Comme mentionné ci-dessus, cela a à voir avec le fait d'avoir deux arcs rubis 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 je devais faire était simplement d'installer lapg
gemme forçantx86_64
arch à être utilisé avec cette commande:sudo env ARCHFLAGS="-arch x86_64" gem install pg
N'oubliez pas d'avoir votre
bash_profile
à jourAjoutez le chemin de vos postgres, dans ce cas, j'utilise l'application Postgres (
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 finalement réussi à installer
pg gem
J'espère que cela t'aides!
la source
Sur Mac, vous pouvez essayer ceci (fonctionne pour moi): gem install pg - with-pg-include = / Library / PostgreSQL / 9.5 / include Récupération: pg-1.0.0.gem (100%) Construire des extensions natives avec: ' with-pg-include = / Library / PostgreSQL / 9.5 / include 'Cela pourrait prendre un certain temps ... Installation réussie de la documentation de pg-1.0.0 Analyse syntaxique pour pg-1.0.0 Installation de la documentation ri pour pg-1.0.0 Installation de la documentation terminée pour pg après 3 secondes 1 gemme installée
(cette partie "/Library/PostgreSQL/9.5/include" vous devez mettre votre chemin Postgres)
la source