Rails 3 – impossible d’installer pg gem

Lorsque j’essaie d’exécuter un bundle (installation groupée), je reçois tout le temps

Installing pg (0.13.2) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/ryan/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config checking for libpq-fe.h... no Can't find the 'libpq-fe.h header *** 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=/Users/ryan/.rvm/rubies/ruby-1.9.2-p290/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 Gem files will remain installed in /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2 for inspection. Results logged to /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2/ext/gem_make.out An error occured while installing pg (0.13.2), and Bundler cannot continue. Make sure that `gem install pg -v '0.13.2'` succeeds before bundling. 

J’utilise Mac OS X 10.6, la version de PostgreSQL installée est 9.1. J’ai trouvé le problème dans libpq-dev , comment pourrais-je installer / réparer?

Comme indiqué dans votre journal des erreurs, vous devez transmettre le chemin d’access au fichier pg_config. Essayez d’installer la gem en utilisant:

 gem install pg -- --with-pg-config= 'PATH_TO_YOUR_PG_CONFIG' 

Si vous ne savez pas où se trouve votre pg_config et si vous êtes sur Linux ou Mac, vous pouvez exécuter la commande suivante:

 which pg_config 

Votre pg-config peut se trouver à différents endroits en fonction de la manière dont vous avez installé postgres.

Si vous utilisez Linux, vous pouvez être intéressé par ce qui a fonctionné pour moi:

 sudo apt-get install postgresql sudo apt-get install libpq-dev 

alors

 gem install pg 

puis

 bundle install 

src: http://wikimatze.de/installing-postgresql-gem-under-ubuntu-and-mac

Si vous utilisez Postgress.app, vous voudrez accéder à ses outils de ligne de commande . Entrez la ligne suivante dans votre terminal ou votre profil PATH :

  PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH" 

gem install pg devrait maintenant fonctionner. (C’est ce qui a fonctionné pour moi.)

Remarque Le chemin de la nouvelle version ressemble à ceci:

 /Applications/Postgres.app/Contents/Versions//bin 

Si vous avez un homebrew, tapez simplement:

$ brew install postgresql

Si vous ne l’avez pas, téléchargez-le en tapant dans votre terminal:

ruby -e “$ (curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install )”

Rechercher libpq:

 brew search libpq 

Devrait sortir libpqxx

Ensuite, essayez de l’installer:

 brew install libpqxx 

Il suffit d’installer libpq-dev :

 sudo apt-get install libpq-dev 

Alors la gemme devrait s’installer correctement.

Suivez les instructions de post-installation: http://postgresapp.com/documentation/configuration-ruby.html

Pour installer le gem pg, assurez-vous d’avoir configuré correctement votre $ PATH (comme spécifié dans http://postgresapp.com/documentation/cli-tools.html ), puis exécutez

sudo ARCHFLAGS="-arch x86_64" gem install pg

Je recommande fortement de lire les deux pages. Juste les écrémé et perdu 1 heure de ma vie. Lisez-les, problème résolu.

Le problème que j’avais était que pour une raison quelconque, il essayait de comstackr avec /usr/bin/gcc-4.2. J’ai découvert cela en changeant try_cpp dans mkmf.rb (que j’ai vu dans la trace de la stack) pour générer une exception avec la ligne de compilation qui échouait.

J’ai gcc lié à gcc-4.2 et cela a fonctionné:

 sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2 

Pourquoi essayait-il d’utiliser gcc-4.2? Aucune idée.

La ligne de compilation actuelle:

 /usr/bin/gcc-4.2 -E -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/backward -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/usr/local/Cellar/postgresql/9.1.4/include -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-ssortingngs -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration -fno-common -pipe conftest.c -o conftest.i (RuntimeError) 

J’ai eu le même problème mais mon Postgres a été installé dans

/Library/PostgreSQL/9.3

Mise à jour du fichier ~ / .bash_profile en ajoutant:

 export PATH=/Library/PostgreSQL/9.3/bin:$PATH 

Ouvrez un nouveau terminal, lancez la bundle update et cela a aussi fonctionné pour moi. Merci Ari.

Vous pouvez définir une option de bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config et utiliser gem install pg sans aucune option (le chemin de pg_config peut être différent pour vous, celui-ci est pour le Postgresapp 9.3.5.0)

J’ai eu le même problème dans ma machine openSUSE13.1 KDE. Avant ce problème, je n’avais installé que les paquets postgresql et postgresql-server utilisant la commande zypper . Puis installé à nouveau 2 autres paquets:

 [[email protected]_do_app]$ sudo zypper in postgresql-devel postgresql-consortingb root's password: Loading repository data... Reading installed packages... Resolving package dependencies... #.... 

Ensuite, j’ai couru encore une fois et réussi !!!

Pour une solution OSX qui fonctionne, consultez ce guide http://krugerdavid.com/journal/how-to-install-xcode-homebrew-git-rvm-postgresql-ruby-1-9-3-on-snow-leopard/

Il vous guidera lors de l’installation de PostgreSQL en utilisant l’homebrew. Testé et fonctionnant pour moi sur OSX 10.8.3, PostgreSQL 9.2.3 et Ruby 2.0.0-p0

Tout d’abord, désinstallez les versions Homebrew. L’option –force permet de désinstaller toutes les versions.

 brew rm postgresql --force 

Modifiez les chemins en conséquence pour votre version.

 sudo /sbin/SystemStarter stop postgresql-8.4 sudo rm -rf /Applications/PostgreSQL\ 8.4 sudo rm -rf /etc/postgres-reg.ini sudo rm -rf /Library/StartupItems/postgresql-8.4 sudo rm -rf /Library/PostgreSQL/8.4 sudo dscl . delete /users/postgres 

Editez / etc / profile et supprimez toutes les lignes faisant référence à “postgres”.

 nano /etc/profile 

Installer PostgresSQL

 brew update brew install postgresql 

Installer de PG GEM

 gem install pg 

C’est tout. Cordialement.

Vous pouvez d’abord vérifier si vous avez un fichier postrgresql dans votre terminal en allant dans le fichier lib. aller cd ~ / opt / local / lib / puis tapez ls et le bouton enter. Cela vous montrera une liste de tous les fichiers situés dans le répertoire lib.

1.si vous n’avez pas de postreseql, vous pouvez télécharger via macports. sudo port install postgresql93 @ 9.3.2_1

Maintenant cd dans votre dossier que vous essayez de regrouper l’installation

  1. faire fonctionner votre pg avec votre fichier postgesql ou simplement télécharger gem install pg – –with-pg-config = / opt / local / lib / postgresql93 / bin / pg_config

maintenant exécuter l’installation groupée

Sur Fedora:

 dnf install postgresql-devel 

Ce qui a fonctionné pour moi sur El Capitan était la mise à niveau de ruby ​​du système par défaut à 2.3.1 semblait trouver les bibliothèques correctes dont le pg gem avait besoin.