web-dev-qa-db-fra.com

Problèmes avec Rails et postgres après la mise à jour vers OS X 10.9 Mavericks

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?

20
Abramodj

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
19
codenamev

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):

  1. Ouvrez Xcode
  2. Dans l'élément de menu de l'application "Xcode", sélectionnez Ouvrir l'outil de développement> Plus d'outils de développement ...
  3. Cela vous amène à un site avec un tas de logiciels. Allez-y, téléchargez et installez "Outils de ligne de commande (OS X Mavericks) pour Xcode - Fin octobre 2013".
  4. Vous pourrez maintenant installer correctement la gemme.

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:

  1. désinstaller le pg gem: gem uninstall pg
  2. supprimez votre application 9.3.0 Postgres en la faisant glisser dans la corbeille et en la vidant
  3. installez la version 9.2.2.0 de l'application Postgres ici: http://postgres-app.s3.amazonaws.com/PostgresApp-9-2-2-0.Zip
  4. réinstallez le pg gem: 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.

22
schmielson

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).

8
guapolo

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/'
3
Yuri

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
3
iceui2

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.

2
Don Sullivan

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
0
purpletonic