967 Stimmen

Der Header 'libpq-fe.h' kann nicht gefunden werden, wenn man versucht, pg gem zu installieren

Ich verwende die Vorversion von Ruby on Rails 3.1. Ich würde gerne PostgreSQL verwenden, aber das Problem ist die Installation der pg gem. Ich erhalte die folgende Fehlermeldung:

$ gem install pg
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
    ERROR: Failed to build gem native extension.

        /home/u/.rvm/rubies/ruby-1.9.2-p0/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=/home/u/.rvm/rubies/ruby-1.9.2-p0/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 /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0 for inspection.
Results logged to /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0/ext/gem_make.out

Wie kann ich dieses Problem lösen?

33voto

lfender6445 Punkte 29514

Der Header libpq-fe.h kann nicht gefunden werden

Ich hatte Erfolg bei CentOS 7.0.1406 Ausführung der folgenden Befehle:

~ % psql --version # => psql (PostgreSQL) 9.4.1
yum install libpqxx-devel
gem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config

Alternativ dazu können Sie Bundler so konfigurieren, dass es immer installiert pg mit diesen Optionen (hilfreich für die Ausführung von Bundler in Bereitstellungsumgebungen),

  • bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config

19voto

pablomarti Punkte 2047

Nur um das festzuhalten:

Ruby on Rails 4 Anwendung in OS X mit PostgresApp (in diesem Fall wird die Version 0.17.1 benötigt - es handelt sich um ein altes Projekt):

gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

18voto

Yash Dubey Punkte 151

Es ist nur eine Frage der fehlenden libpq-fe.h

Unter Ubuntu müssen wir nur das Programm ausführen: sudo apt-get install libpq-dev

Der obige Befehl installiert ein NEUES Paket libpq-dev und danach können Sie wieder bundle install um Ihre Bundle-Installation fortzusetzen.

13voto

Michael A. Punkte 965

Für MacOS ohne die Installation des PostgreSQL-Servers:

brew install libpq
gem install pg -- --with-pg-config="/usr/local/Cellar/libpq/9.6.6/bin/pg_config"

12voto

Aarón Castro Punkte 319

Meine Lösung für Fedora 30:

sudo dnf install /usr/include/libpq-fe.h

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X