it-swarm.com.de

Pg gem kann nicht unter Windows installiert werden

Ich habe 2 Ruby-Versionen: 1.8.7 und 1.9.2 und PostgreSQL 8.3. Ich kann nicht pg gem auf jedem von ihnen installieren. Diesen Fehler erhalten:

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

Ich weiß, dass es ein häufiges Problem ist, aber ich habe noch keine funktionierende Lösung gefunden ... Oh, ich habe C:\Programme (x86)\PostgreSQL\8.3\bin zu meinem PFAD hinzugefügt.

32
sNiCKY

Die Nachricht, die Sie erhalten, ist ein deutlicher Hinweis darauf, dass Ihnen etwas für die korrekte Installation dieses Edelsteins fehlt:

Makefile konnte aus irgendeinem Grund nicht erstellt werden, wahrscheinlich fehlten Erforderliche Bibliotheken und/oder Header. Überprüfen Sie die Datei mkmf.log auf weitere Details. Möglicherweise benötigen Sie Konfigurationsoptionen.

Die neuste Version von pg (0.10.0), die gestern veröffentlicht wurde, enthält keine native Version von Windows. Wenn Sie jedoch 0.9.0 installieren, sollten Binärdateien ohne Probleme installiert werden.

Wenn Sie den Edelstein installieren möchten, benötigen Sie eine installierte Build-Umgebung. Wenn Sie RubyInstaller verwenden, benötigen Sie das DevKit

Für die Installation des Edelsteins müssen Sie lediglich zusätzliche Optionen für die Installation des Edelsteins angeben (wie --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 für Linux-Benutzer.

Ich habe diesen Fehler bei der Installation von libpq-dev behoben.

27
FabricioFCarv

Ich habe das zwei Tage lang bekämpft. Ich mache meine Rails-Kommandozeilen-Sachen aus dem ausgezeichneten Unixy-Kommando-Fenster von msysgit. Ich habe eine postgresql-path.bat -Datei erstellt, die enthält

@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

Am Anfang der Datei msys.bat habe ich hinzugefügt

CALL postgresql-path.bat

Sobald ich den Platz meiner PATH-Variablen für die PostgreSQL-Verzeichnisse zur Verfügung hatte, waren meine Probleme bei der Installation von 'pg' verschwunden. Ich hoffe, das erspart jemandem die Probleme, die ich hatte.

12
seehad

Nach fast zwei Tagen Versuch und Irrtum (und zu einem großen Teil dank der Ratschläge des vorherigen Beitrags in diesem Thread und anderswo) konnte ich in Ruby 1.8.7 (für meinen RubyInstaller und meinen InstantRails-Versionen.) Falls wieder jemand auf dieses Problem stößt, fasse ich meinen letzten erfolgreichen Installationsvorgang zusammen.

Zuerst musste ich DevKit installieren und den Installationsanweisungen folgen. Ich musste (zur Sicherheit) kopieren und dann die Datei operating_system.rb im Ordner\Ruby187\lib\Ruby\site_Ruby\1.8\rubygems\defaults löschen, damit die Installation erfolgreich ausgeführt werden kann.

Zweitens habe ich den Rake-Compiler und die rdoc-Steine ​​installiert. Gem install rake-compiler Gem install rdoc (Wenn Sie Probleme mit einem der beiden haben, würde ich empfehlen eine großzügige Verwendung der Konfigurationsoption --platform = win32)

Nachdem diese erfolgreich installiert wurden, lautete die endgültige Installation von pg: 

gem install pg --platform = mswin32 --version = 0.9.0 - - with-pg = {Kurzname des Postgres-Verzeichnisses} \

b. gem install pg --platform = mswin32 --version = 0.9.0 - - with-pg = C:\PostgreSQL \

Das abschließende '\' scheint notwendig zu sein, damit das Installationsprogramm Verzeichnisstrings analysiert. Ich stelle fest, dass meine Verwendung von Konfigurationsoptionen ein wenig mehr als notwendig ist, aber eine anscheinend erfolgreiche Installation von Version 0.10.0 (wenn ich die Option --version ausgeschlossen habe) hat nicht wirklich funktioniert.

Nochmals vielen Dank an alle in diesem Thread, die mir bei dieser Sequenz geholfen haben.

8
DGB

Dies mag wie ein Kinderspiel erscheinen, aber ich hatte den gleichen Fehler mit einer leichten Drehung. Nachdem der Build die Header gefunden hatte, schlug er sofort fehl und behauptete, libpq nicht finden zu können. Ich folgerte schließlich, dass ich versuchte, gegen eine 64-Bit-Postgres-Installation mit einem 32-Bit-Ruby zu bauen. Die Installation der 32-Bit-Postgres führte zu einer sofortigen Korrektur. Ich dachte nur, ich würde dies hinzufügen, falls jemand mit dem gleichen Fehler über diesen Thread stolpert. 

3
Rob Nesius

Installieren Sie zuerst Ruby DevKit

Unter Windows XP und vom MSysGIT bash-Terminal führen Sie je nach Installationspfad die folgenden Aus

subst X: "D:/Programme/PostgreSQL/9.0"

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

Mein Juwel pg-0.10.1 wurde erfolgreich installiert.

3
David Fernandez

"gem install pg" funktioniert nicht

Abrufen von: pg-0.17.0.gem (100%) Erstellen nativer Erweiterungen. Dies kann eine Weile dauern ... FEHLER: Fehler beim Installieren von pg: FEHLER: Fehler beim Erstellen der nativen Gem-Erweiterung.

Probieren Sie es aus, es hat für mich funktioniert und ich bin mir ziemlich sicher, dass es auch für Sie funktionieren wird:

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

Dies sollte auch mit "Bash unter Ubuntu unter Windows" funktionieren

2
Anand Kothari

Die Meldung "Der Header 'libpq-fe.h kann nicht gefunden werden' bedeutet, dass das Installationsprogramm den Header nicht finden kann

  • Stellen Sie sicher, dass Ihre Postgre-Installation Entwicklungswerkzeuge enthält (Ordner "Include"). Installieren Sie Postgre-Entwicklungstools für den Fall der Abwesenheit.
  • Überprüfen Sie den Speicherort von pg_config.exe. Sie benötigen eine Installation wie
    gem install pg -- --with-pg-config="C:/PROGRA~2/POSTGR~1/8.3/bin/pg_config.exe".
    Beachten Sie, dass Sie die Ordnernamen short verwenden müssen.

Um eine native Erweiterung für pg gem zu erstellen, benötigen Sie ein Ruby DevKit ( http://rubyinstaller.org/downloads/ ).

Ich habe ein anderes Problem:

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

In diesem Fall müssen Sie den Inhalt der Kopie manuell kopieren
C:\Ruby\192\lib\Ruby\gems\1.9.1\gems\pg-0.10.0\lib\
zu
C:\Ruby\192\lib\Ruby\gems\1.9.1\gems\pg-0.10.0\lib\1.9 

2
Alex

Danke Luis! pg 0.9.0 gut installiert.

Für die neueste Version (0.10.0) benötigen Sie das Devkit und diesen Befehl "gem install pg - --with pg-dir = Pfad/zu/your/postgresql/dir"

Wenn ich das zusätzliche "-" weglasse, wird ein Fehler angezeigt: "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:/

Dies hat es erfolgreich installiert.

1
Denis Gorbunov

Andere einfache Möglichkeit, an Fenstern 

  1. Installieren Sie postgresql ODBC.

  2. Kopieren Sie die Datei libpq.dll aus dem Verzeichnis pgqlODBC lib

  3. Fügen Sie es in das PostGreSQL-Verzeichnis lib ein

  4. Führen Sie diesen Befehl aus (passen Sie den PostGreSQL-Pfad in diesem Befehl entsprechend Ihrem Befehl an):

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

Ich hatte das gleiche Problem. Sie haben wahrscheinlich vor Per PostgreSQL eine Perl-Installation in Ihrem Pfad. Die häufigste Perl-Installation für Windows hat einen ausführbaren Namen pg_config in der Bin, der Konflikte verursacht.

pg v0.10.0 wird mit rubyinstaller + devkit installiert, solange Sie Pfade ohne Leerzeichen angeben (z. B. C:/PROGRA ~) - andernfalls Drosseln.

1
glebm

Ich habe es verstanden:

UND DER MAGIE-TRICK:

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

also hol es dir:

install postgresql-devel

Das ist alles ... als einfach nur gem pg installieren und da gehts.

0
Sumit Munot

PostgreSQL 9.0:

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

beachten Sie die Single-Tick-Kapselung. (~ 1 bedeutet "Programmdateien", ändern Sie in ~ 2, wenn sich PostgreSQL unter Win64 in Programmdateien (x86) befindet.)

0
James C.

Ab Version 0.13.0 des Gems pg sollte es in der Lage sein, ihn folgendermaßen zu installieren:

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

Dann können Sie erfolgreich bundle install ausführen und die folgende Zeile in der Ausgabe sehen:

Using pg (0.13.0)

anstelle der Fehler.

0
Kenny Evitt

Ich bin auf das gleiche Problem gestoßen. Ich wollte mit dbi auf eine Postgres-Datenbank zugreifen und musste Pg. Installieren. Es dauerte einen Tag, bis ich das Modul erfolgreich mit kompilierten Anweisungen wie die anderen Beiträge dieses Threads kompilieren konnte. Als ich es das zweite Mal tun musste, fand ich eine andere Lösung: mit ODBC.

  1. Installieren Sie den ODBC Treiber für postgresql ( http://www.postgresql.org/ftp/odbc/versions/ ).
  2. Konfigurieren Sie die Datenquelle ( http://www.xtuple.org/SettingUpPostgresAndOdbc )
  3. Installiere die Ruby dbi und odbc Edelsteine

    gem install dbi
    gem install Ruby-odbc
    gem install dbd-odbc
    
  4. Verbinde dich mit Postgres

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

Dies funktionierte für mich mit Ruby 1.9.1 unter Windows XP 32-Bit. Außerdem ändert dies nichts an Ihrem Code, außer der Zeile DBI.connect, wenn Sie bereits DBI verwenden.

0
ZeWaren