Ich habe versucht, gem install pg
zu verwenden, aber es scheint nicht zu funktionieren.
gem install pg
gibt diesen Fehler aus
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
C:/Ruby/bin/Ruby.exe 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=C:/Ruby/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 C:/Ruby/lib/Ruby/gems/1.8/gems/pg-0.10.1 for
inspection.
Results logged to C:/Ruby/lib/Ruby/gems/1.8/gems/pg-0.10.1/ext/gem_make.out
Beantwortet hier: pg gem kann nicht unter Windows installiert werden
Es gibt keine native Windows-Version von neueste Version von pg (0.10.0) veröffentlicht gestern, aber wenn Sie 0.9.0 installieren, ist es sollte Binärdateien ohne .__ installieren. Probleme.
Ich hatte dieses Problem, das funktionierte für mich:
Installieren Sie das Paket postgresql-devel. Dadurch wird das Problem des fehlenden pg_config gelöst.
Sudo apt-get install libpq-dev
Das Problem ist die Abhängigkeit von Gems. Bevor Sie pg installieren, stellen Sie sicher, dass Sie "libpq-dev" installiert haben
Ubuntu-Systeme:
Sudo apt-get install libpq-dev
RHEL-Systeme:
yum install postgresql-devel
Mac:
brew installieren Postgresql
gem install pg -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config
@ Winfield sagte es :
Der pg gem erfordert, dass der postgresql-Client libraries eine Bindung herstellt. Dieser Fehler bedeutet normalerweise, dass er Ihre Postgres-Bibliotheken nicht finden kann. Entweder haben Sie sie nicht installiert oder Sie müssen den
--with-pg-dir=
an Ihre gem-Installation übergeben.
Darüber hinaus benötigen Sie nur --with-pg-config=
, um es zu installieren.
Wenn Sie zufällig auch Postgres über das Website-Bundle auf dem Mac installiert haben, wird es irgendwo wie /Applications/Postgres.app/Contents/Versions/9.3/bin
angezeigt.
Also, entweder übergeben Sie es bei der Edelsteininstallation:
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Oder Sie stellen Sie den PFAD richtig ein . Da das vielleicht zu viel ist, kann man den PFAD vorübergehend setzen:
export PATH=%PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin/
Ich hatte kein postgresql installiert, also habe ich es einfach mit installiert
Sudo apt-get install postgresql postgresql-server-dev-9.1
auf Ubuntu 12.04.
Das hat es gelöst.
Aktualisieren:
Verwenden Sie die neueste Version:
Sudo apt-get install postgresql-9.3 postgresql-server-dev-9.3
In meinem Fall arbeite ich ubuntu 14.04.2 LTS
Sudo apt-get install libpq-dev
und ich benutze
Ruby 2.2.2 & Schienen 4.2.1
Wenn Sie Postgres.app auf einem Mac verwenden, können Sie dieses Problem ein für alle Mal beheben:
Zuerst gem uninstall pg
, dann bearbeiten Sie Ihre ~/.bash_profile
- oder ~/.zshrc
-Datei oder ein gleichwertiges Element und fügen Sie hinzu:
# PostgreSQL bin path
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin
Dann sollten bundle install
und gem install pg
wie erwartet funktionieren.
$ PATH=$PATH:/Library/PostgreSQL/9.1/bin Sudo gem install pg
ersetzen Sie 9.1 für die auf Ihrem System installierte Version.
Unter Mac OS (El Capitano). Sie können einfach Folgendes verwenden: brew install postgresql
Der pg-gem erfordert, dass die postgresql-Client-Bibliotheken eine Bindung herstellen. Dieser Fehler bedeutet normalerweise, dass er Ihre Postgres-Bibliotheken nicht finden kann. Entweder haben Sie sie nicht installiert oder Sie müssen vielleicht --with-pg-dir = an Ihre Gem-Installation übergeben.
Verwenden Sie diese Option mit dem Flag Arch
.
Sudo env ARCHFLAGS="-Arch x86_64" gem install pg
Dies hat das gleiche Problem gelöst, das Sie haben.
Ich würde dieses Problem unter Linux Mint (Maya) 13 behandeln, und ich habe es durch Installieren von postgresql und postgresql-server behoben:
apt-get install postgresql-9.1
Sudo apt-get install postgresql-server-dev-9.1
Unabhängig von dem Betriebssystem, das Sie ausführen, sehen Sie sich die Protokolldatei von "Makefile"
an, um zu sehen, was los ist.
In meinem Fall, MAC OS, ist die Protokolldatei hier:
/Users/za/.rbenv/versions/2.3.0/lib/Ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0-static/pg-1.0.0/mkmf.log
Die Protokolle zeigten, dass die Make-Datei aus folgenden Gründen nicht erstellt werden konnte:
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers
In der Datei "mkmf.log" werden Sie feststellen, dass die erforderlichen Bibliotheken zum Abschluss des Builds nicht gefunden werden konnten.
checking for pg_config... no
Can't find the 'libpq-fe.h header
blah blah
Nachdem ich "brew install postgresql"
ausgeführt habe, kann ich sehen, dass alle benötigten Bibliotheken vorhanden sind:
za:myapp za$ cat /Users/za/.rbenv/versions/2.3.0/lib/Ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0-static/pg-1.0.0/mkmf.log | grep yes
find_executable: checking for pg_config... -------------------- yes
find_header: checking for libpq-fe.h... -------------------- yes
find_header: checking for libpq/libpq-fs.h... -------------------- yes
find_header: checking for pg_config_manual.h... -------------------- yes
have_library: checking for PQconnectdb() in -lpq... -------------------- yes
have_func: checking for PQsetSingleRowMode()... -------------------- yes
have_func: checking for PQconninfo()... -------------------- yes
have_func: checking for PQsslAttribute()... -------------------- yes
have_func: checking for PQencryptPasswordConn()... -------------------- yes
have_const: checking for PG_DIAG_TABLE_NAME in libpq-fe.h... -------------------- yes
have_header: checking for unistd.h... -------------------- yes
have_header: checking for inttypes.h... -------------------- yes
checking for C99 variable length arrays... -------------------- yes
Für Mac-Benutzer
PATH=$PATH:/Library/PostgreSQL/9.4/bin/ gem install pg
Das sollte den Trick tun
Wenn Sie jruby anstelle von Ruby verwenden, treten bei der Installation des pg-gem ähnliche Probleme auf. Stattdessen müssen Sie den Adapter installieren:
gem 'activerecord-jdbcpostgresql-adapter'
Ich musste dies auf CentOS 5.8 tun. Die Ausführung von bundle install
verursachte weiterhin Probleme, da ich nicht die Verwendung einer bestimmten PG-Version erzwingen konnte.
Ich kann yum erase postgresql postgresql-devel
auch nicht, wegen Abhängigkeitsproblemen (es würde PHP, http usw. entfernen)
Die Lösung? $ PATH vorübergehend angeben, um dem Update pgsql den Vorzug zu geben, anstatt dem Standard-Update:
export PATH=/usr/pgsql-9.2/bin:$PATH
bundle install
Grundsätzlich wird mit den obigen Befehlen auf /usr/pgsql-9.2/bin/pg_config
vor dem in /usr/bin/pg_config
Auf dem Mac brew install postgres
DANN bundle install
Gehen Sie einfach zu here , um zu prüfen, ob Ihre PG-Version die Win32-Plattform unterstützt.
gem install pg -v 0.14.1 --platform = x86-mingw32
Ich habe seit Jahren dieses lästige Problem mit PG. Ich habe diese Gist erstellt, um zu helfen.
Der folgende Befehl funktioniert immer für mich.
# Substitute Postgres.app/Contents/Versions/9.5 with appropriate version number
Sudo ARCHFLAGS="-Arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config