web-dev-qa-db-fra.com

Impossible d'installer pg gem sous Windows

J'ai 2 versions de Ruby: 1.8.7 et 1.9.2 et PostgreSQL 8.3. Je ne peux pas installer pg gem sur aucun d'entre eux. Obtenir cette erreur:

C:/Development/Ruby187/bin/Ruby.exe extconf.rb
checking for pg_config... yes
not recorded
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=C:/Development/Ruby187/bin/Ruby
 --with-pg
 --without-pg
 --with-pg-config
 --without-pg-config
 --with-pg-dir
 --without-pg-dir
 --with-pg-include
 --without-pg-include=${pg-dir}/include
 --with-pg-lib
 --without-pg-lib=${pg-dir}/lib

Je sais que c'est un problème courant, mais je n'ai pas encore trouvé de solution qui fonctionne ... Oh, j'ai ajouté C:\Program Files (x86)\PostgreSQL\8.3\bin à PATH.

32
sNiCKY

Le message que vous recevez est une indication claire qu'il vous manque quelque chose pour l'installation correcte de cette gemme:

Impossible de créer le Makefile pour une raison quelconque, probablement le manque de bibliothèques et/ou en-têtes nécessaires. Consultez le fichier mkmf.log pour plus d'informations détails. Vous pouvez avoir besoin d'options de configuration.

Il n'y a pas de version native Windows de la dernière version de pg (0.10.0) publiée hier, mais si vous installez la version 0.9.0, vous devez installer les fichiers binaires sans problème.

Quoi qu'il en soit, si vous souhaitez installer la gemme, vous devez installer un environnement de construction. Si vous utilisez RubyInstaller, vous avez besoin du DevKit

L'installation de la gem ne nécessitera que la fourniture d'options supplémentaires pour son installation (comme --with-pg-dir)

subst X: "C:\Program Files (x86)\PostgreSQL\8.3"
gem install pg -- --with-pg-dir=X:
subst X: /D
31
Luis Lavena

PsAdding pour les utilisateurs de Linux.

J'ai résolu cette erreur en installant libpq-dev.

27
FabricioFCarv

Je me suis battu pendant deux jours. Je fais mes commandes en ligne de commande Rails à partir de l'excellente fenêtre de commande semblable à unixy fournie par msysgit. J'ai créé un fichier postgresql-path.bat qui contenait

@set PATH=%PATH%;C:\Progra~1\PostgreSQL\8.3\bin
@set PATH=%PATH%;C:\Progra~1\PostgreSQL\8.3\include
@set PATH=%PATH%;C:\Progra~1\PostgreSQL\8.3

En haut du fichier msys.bat que j'ai ajouté

CALL postgresql-path.bat

Dès que j'ai eu de la place dans ma variable PATH pour les répertoires postgreSQL, mes problèmes d'installation de "pg" ont disparu. J'espère que cela sauve quelqu'un des problèmes que j'ai eu.

12
seehad

Après près de deux jours d’essais et d’erreur (et en grande partie grâce aux conseils du billet précédent dans ce fil de discussion et ailleurs, j’ai pu installer avec succès la page 0.10.0 dans Ruby 1.8.7 (pour mon RubyInstaller et mon Versions InstantRails). Si quelqu'un rencontre à nouveau ce problème, je vais résumer mon processus d'installation final.

Premièrement, je devais installer DevKit , en suivant les instructions d’installation. Je devais copier (pour des raisons de sécurité) puis supprimer le fichier operating_system.rb du dossier\Ruby187\lib\Ruby\site_Ruby\1.8\rubygems\defaults afin que l'installation puisse fonctionner correctement.

Deuxièmement, j'ai installé le compilateur rake, et gdoc rdoc . Gem install rake-compilateur Gem install rdoc -platform = option de configuration win32)

Une fois ceux-ci installés, l’installation finale de pg était: 

gem install pg --platform = mswin32 --version = 0.9.0 - - with-pg = {nom abrégé du répertoire Postgres} \

par exemple . gem installer pg --platform = mswin32 --version = 0.9.0 - - avec-pg = C:\PostgreSQL \

Le dernier '\' semble être nécessaire pour la manière dont l'installateur analyse les chaînes de répertoires. Je me rends compte que mon utilisation des options de configuration est peut-être un peu plus que nécessaire, mais une installation apparemment réussie de la version 0.10.0 (lorsque j’ai exclu l’option --version) ne fonctionnait pas réellement.

Merci encore à ceux de ce fil qui m'ont aidé à cette séquence.

8
DGB

Cela peut sembler une évidence, mais j'ai eu cette même erreur avec une légère torsion. Après avoir obtenu la construction pour trouver les en-têtes, il a immédiatement échoué et a prétendu être incapable de trouver libpq. J'en ai finalement déduit que j'essayais de construire contre une installation postgres 64 bits avec un Ruby 32 bits. L'installation de Postgres 32 bits a entraîné une correction instantanée. Je pensais juste que j'ajouterais ceci au cas où quelqu'un d'autre avec la même erreur trébucherait sur ce fil. 

3
Rob Nesius

Première installation de Ruby DevKit

Sous Windows XP et à partir de MSysGIT bash terminal, procédez comme suit En fonction du chemin d'installation

subst X: "D:/Program Files/PostgreSQL/9.0"

gem installer pg - --with-pg = X:

Mon bijou pg-0.10.1 a été installé avec succès.

3
David Fernandez

"gem install pg" ne fonctionne pas

Récupération: pg-0.17.0.gem (100%) Création d'extensions natives. Cela pourrait prendre un certain temps ... ERROR: Erreur lors de l'installation de pg: ERREUR: Impossible de créer une extension native de gem.

Essayez cela a fonctionné pour moi et je suis sûr que cela fonctionnera aussi pour vous ::

#On Ubuntu
    $ Sudo apt-get install postgresql-client libpq5 libpq-dev
    $ Sudo gem install pg

Cela devrait fonctionner aussi avec "Bash sur Ubuntu sous Windows"

2
Anand Kothari

Le message "Impossible de trouver l'en-tête 'libpq-fe.h" signifie que l'installateur ne peut pas trouver l'en-tête.

  • Vérifiez que votre installation Postgre contient des outils de développement (dossier "include"). Installez les outils de développement postgre en cas d'absence.
  • Vérifiez l'emplacement de pg_config.exe. Vous avez besoin d'une installation comme
    gem install pg -- --with-pg-config="C:/PROGRA~2/POSTGR~1/8.3/bin/pg_config.exe".
    Notez que vous devez utiliser les noms de dossiers short.

Pour construire une extension native pour pg gem, vous avez besoin d’un Ruby DevKit ( http://rubyinstaller.org/downloads/ ).

Je rencontre un autre problème:

D:\app1>rake test
(in D:/app1)
rake aborted!
no such file to load -- 1.9/pg_ext
 

Dans ce cas, vous devez copier manuellement le contenu de la copie
C:\Ruby\192\lib\Ruby\gems\1.9.1\gems\pg-0.10.0\lib\
à
C:\Ruby\192\lib\Ruby\gems\1.9.1\gems\pg-0.10.0\lib\1.9 

2
Alex

Merci Luis! pg 0.9.0 installé très bien.

Pour la dernière version (0.10.0), vous avez besoin du devkit et de cette commande "gem install pg - --with pg-dir = chemin/to/votre/postgresql/dir"

Lorsque je laisse le "-" supplémentaire, cela me donne une erreur: "Gem install pg --with-pg-dir = C: /postgresql/9.0"

1
daniel

Windows 7, PostgreSQL 8.4, Ruby 1.9.2:

subst X:\ "C:\Program Files\PostgreSQL\8.4"

gem install pg -- --with-pg=X:/

Cela l'a installé avec succès.

1
Denis Gorbunov

Autre moyen facile, sur les fenêtres 

  1. Installez ODBC postgresql.

  2. Copiez libpq.dll à partir du répertoire pgqlODBC lib

  3. Collez-le dans le répertoire PostGreSQL lib

  4. Exécutez cette commande (adaptez le chemin PostGreSQL dans cette commande, en fonction de la vôtre):

    gem install pg -- --with-pg-config="C:\Dev\Databases\PostgreSQL\9.0\bin\pg_config.exe"
    
1
Morgan

J'ai eu le même problème… .. Vous avez probablement une installation de Perl dans votre chemin avant PostgreSQL. L'installation Perl la plus courante pour Windows a un nom d'exécutable pg_config dans sa corbeille, ce qui provoque des conflits.

pg v0.10.0 s’installe parfaitement avec rubyinstaller + devkit tant que vous spécifiez des chemins sans espaces (par exemple, C:/PROGRA ~) - sinon, indiquez nmoke.

1
glebm

J? ai compris:

ET LE TOUR MAGIQUE:

is that you do not have this installed -- > postgres-devel

alors allez le chercher:

install postgresql-devel

C’est tout… plus qu’une gemme installer pg et le tour est joué.

0
Sumit Munot

PostgreSQL 9.0:

gem install pg --platform=mswin32 --version=0.9.0 -- '--with-pg="C:\Progra~1\PostgreSQL\"'

notez l'encapsulation en une seule fois. (~ 1 signifie "Program Files", passez à ~ 2 si PostgreSQL est dans Program Files (x86) sur Win64)

0
James C.

À partir de la version 0.13.0 de la gemme pg, vous devriez pouvoir l'installer de la manière suivante:

subst X: "C:\Program Files\PostgreSQL\9.0"
gem install pg -- -- with-pg=X:
subst X: /D

Ensuite, vous pouvez exécuter avec succès bundle install et voir la ligne suivante dans le résultat:

Using pg (0.13.0)

au lieu des erreurs.

0
Kenny Evitt

J'ai rencontré le même problème. Je voulais accéder à une base de données postgres en utilisant dbi et je devais installer Pg . Il m'a fallu un jour pour compiler avec succès le module avec des instructions similaires aux autres messages de ce fil de discussion. Mais la deuxième fois que j'ai dû le faire, j'ai trouvé une autre solution: utiliser ODBC.

  1. Installez le pilote ODBC pour postgresql ( http://www.postgresql.org/ftp/odbc/versions/ )
  2. Configurez la source de données ( http://www.xtuple.org/SettingUpPostgresAndOdbc )
  3. Installer les gemmes Ruby dbi et odbc

    gem install dbi
    gem install Ruby-odbc
    gem install dbd-odbc
    
  4. Se connecter à postgres

    require 'dbi'
    dbh = DBI.connect('dbi:ODBC:DSN_NAME', 'USER', 'PASS')
    

Cela a fonctionné pour moi avec Ruby 1.9.1 sous Windows XP 32 bits . De plus, cela ne change rien dans votre code, à l'exception de la ligne DBI.connect, si vous utilisiez déjà DBI.

0
ZeWaren