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.
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
PsAdding pour les utilisateurs de Linux.
J'ai résolu cette erreur en installant libpq-dev.
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.
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.
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.
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.
"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
Le message "Impossible de trouver l'en-tête 'libpq-fe.h" signifie que l'installateur ne peut pas trouver l'en-tête.
gem install pg -- --with-pg-config="C:/PROGRA~2/POSTGR~1/8.3/bin/pg_config.exe"
.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 copieC:\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
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"
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.
Autre moyen facile, sur les fenêtres
Installez ODBC postgresql.
Copiez libpq.dll à partir du répertoire pgqlODBC lib
Collez-le dans le répertoire PostGreSQL lib
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"
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.
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é.
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)
À 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.
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.
Installer les gemmes Ruby dbi et odbc
gem install dbi
gem install Ruby-odbc
gem install dbd-odbc
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.