web-dev-qa-db-fra.com

Rails 3 - impossible d'installer pg gem

Lorsque j'essaie d'exécuter bundle (installation de bundle), 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 la 9.1. J'ai trouvé que le problème se trouve dans libpq-dev , comment pourrais-je installer/réparer cela?

96
user984621

Comme indiqué dans votre journal des erreurs, vous devez indiquer le chemin d'accès à pg_config. Essayez d'installer la gemme 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 sous Linux ou Mac, vous pouvez exécuter la commande suivante:

which pg_config

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

77
Ethan

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

Ensuite 

gem install pg

puis 

bundle install

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

98
E.E.33

Si vous utilisez Postgress.app , vous aurez alors besoin d'accéder à ses outils de ligne de commande . Entrez la ligne suivante dans votre terminal ou dans 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.)

Note Le nouveau chemin des versions ressemble à ceci:

/Applications/Postgres.app/Contents/Versions/<version>/bin
56
Ari

Si vous avez un homebrew, tapez simplement:

$ brew installer postgresql

Si vous ne l'avez pas, téléchargez en tapant ceci dans votre terminal:

Ruby -e "$ (curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install )"

21
user2373148

Recherche de libpq:

brew search libpq

Doit produire libpqxx

Ensuite, essayez de l'installer:

brew install libpqxx
12
jlucasps

Il vous suffit d'installer libpq-dev:

Sudo apt-get install libpq-dev

Ensuite, la gemme devrait installer très bien.

7
Travis Reeder

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

Pour installer la gemme pg, assurez-vous que vous avez correctement configuré votre $ PATH (comme indiqué dans http://postgresapp.com/documentation/cli-tools.html ), puis exécutez 

Sudo ARCHFLAGS="-Arch x86_64" gem install pg

Je fortement recommande de lire les deux pages. Il suffit de les écrémer et j'ai perdu 1 heure de ma vie. Lisez-les, le problème est résolu.

7
CGK

Le problème que j’avais, c’est que pour une raison quelconque, il essayait de compiler avec /usr/bin/gcc-4.2. Je l'ai découvert en modifiant try_cpp dans mkmf.rb (que j'ai vu dans la trace de la pile) pour générer une exception avec la ligne de compilation qui échouait.

Je soft-lié gcc à 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-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration  -fno-common -pipe  conftest.c -o conftest.i (RuntimeError)
3
dfrankow

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 bundle update et cela a également fonctionné pour moi. Merci Ari.

3
Trang Tung Nguyen

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

[arup@to_do_app]$ Sudo zypper in postgresql-devel postgresql-contrib
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...
#....

Ensuite, j'ai relancé bundle install, et le succès !!!

1
Arup Rakshit

Vous pouvez définir une option de configuration 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 d'accès à pg_config peut être différent pour vous, celui-ci concerne Postgresapp 9.3.5.0)

1

Tout d’abord, désinstallez toutes les versions de 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

Éditez/etc/profile et supprimez toutes les lignes qui font 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.

0
pabloverd

Ce qui a fonctionné pour moi sur El Capitan était de mettre Ruby à niveau depuis la version 2.3.1 par défaut du système, qui semblait trouver les bonnes bibliothèques dont la gemme pg avait besoin.

0
Abe Petrillo

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

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

Cd maintenant dans votre dossier que vous essayez de regrouper l’installation 

  1. obtenir que votre pg fonctionne avec votre fichier postgesql que vous venez de télécharger gem installer pg - --with-pg-config =/opt/local/lib/postgresql93/bin/pg_config

lancez maintenant bundle install 

0
user3256740

Sur Fedora:

dnf install postgresql-devel
0

Pour une solution OSX opérationnelle, 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 à travers l’installation de PostgreSQL en utilisant homebrew. Testé et travaillant pour moi sous OSX 10.8.3, PostgreSQL 9.2.3 et Ruby 2.0.0-p0

0
Kristofor Carle