Après la mise à jour vers OS X 10.9 Mavericks j'ai essayé de démarrer une application Rails 3, mais la connexion à la base de données PG ne fonctionnait pas. En vérifiant sur PGAdmin III, la base de données est toujours là et fonctionne bien. J'ai donc essayé de réinstaller le pg gem:
gem uninstall pg
gem install pg
Mais la dernière commande n'aboutit pas et donne l'erreur suivante:
Construire des extensions natives. Cela pourrait prendre un certain temps ... ERREUR: Erreur En installant pg:
ERREUR: Impossible de créer une extension native de gem.
/Users/XXX/.rvm/rubies/Ruby-1.9.3-p194/bin/Ruby extconf.rb checking for pg_config... yes Using config values from
/usr/local/bin/pg_config * extconf.rb échoué * Impossible de créer le 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.
/Users/XXX/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:381:in `Try_do ': Le compilateur n'a pas réussi à générer un fichier exécutable .
(RuntimeError) Vous devez d'abord installer les outils de développement. de /Users/XXX/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:461:in
try_link0' from /Users/XXX/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:476:in
try_link 'de extconf.rb Dans ''
Je suppose que le problème est lié aux Outils de développement Xcode . J'ai mis à jour Xcode avec la dernière version, mais cela n'a pas résolu le problème. Savez-vous comment résoudre ce problème?
Utiliser homebrew corrige cela pour moi:
gem uninstall pg
brew install Apple-gcc42
gem install pg
EDIT: j'ai aussi installé manuellement "devtools"
xcode-select --install
Vous avez raison de dire que le problème est lié aux outils de développement Xcode. Ce n'est pas une mauvaise idée de vous assurer que tous les outils de développement sont installés (au lieu d'installer uniquement gcc comme mentionné dans la réponse précédente):
Si vous avez une nouvelle installation de l’application Postgres 9.3.0 sur Mac OS X Mavericks (c’est-à-dire que vous n’utilisez pas Homebrew pour votre installation Postgres), vous remarquerez peut-être que même si vous pouvez créer le gem ne peut pas exécuter rake à cause d'un problème de dylib:
rake aborted!
dlopen(/Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/Ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle, 9): Library not loaded: @loader_path/../lib/libpq.5.dylib
Referenced from: /Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/Ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle
Reason: image not found - /Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/Ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle
Malheureusement, ceci est un problème avec la version actuelle de 9.3.0 de Postgres. Remonter à une version précédente résoudra le problème pour vous:
gem uninstall pg
gem install pg
* Merci au commentaire de jhiro009 sur ce fil pour m'avoir orienté dans la bonne direction pour cette dernière partie de l'application Postgres, bien que la version 9.2.4.3 qu'il a mentionnée ne me fonctionne pas.
Sur OS X Mavericks
Sudo ln -s /usr/bin/llvm-gcc /usr/bin/gcc-4.2
gem uninstall pg; gem install pg;
fonctionne avec l’installation Homebrew Postgresql (9.3.1) et les outils de ligne de commande Apple installés (p. 0.17.0).
Aucune des solutions ne fonctionnait pour moi et je ne voulais pas utiliser MacPorts. Essayez de télécharger le Postgres App et mettez-le dans le répertoire Application.
Ensuite, spécifiez l'emplacement du pg_config
nouvellement téléchargé, qui réside dans l'application:
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Si vous rencontrez un problème d'en-tête manquant, essayez de spécifier le répertoire include
de l'application:
gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/MacOS/include/'
Aucune des solutions précédentes ne fonctionnait pour moi (je viens de passer à Mavericks et de mettre à jour XCode). Au lieu de cela, j'ai installé Postgress.app . et appelé
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Si vous recherchez une solution rapide, ajoutez les éléments suivants à votre fichier database.yml:
Host: localhost
J'ai eu le problème exact, ajouté cette ligne, et maintenant tout va bien.
J'ai eu de la chance en suivant ce post des gars de New-Bamboo:
3 astuces rapides pour coder avec OS X 10.9 Mavericks
Après avoir installé les outils de développement xcode, la troisième étape a tout trié:
brew tap homebrew/versions && brew install Apple-gcc42
brew link --force Apple-gcc42
ln -nsf $(which gcc-4.2) /usr/bin/gcc-4.2