2015-03-02 13 views
7

finden Immer, wenn ich bundle install auf meinem VPS laufen (CentOS Linux-Version 7.0.1406 (Core)) Ich erhalte eine Fehlermeldung, wenn Sie den pg gem installieren.pg gem install fehlschlägt, kann nicht libpq-fe.h Header

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. 

kann ich pg Standalone installieren mit: gem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config und das Problem behoben ist.

Also habe ich eine Capistrano-Aufgabe hinzugefügt, um eine ./bundle/config für die Bereitstellung mit dem Schlüssel build.pg mit dem Pfad zu pg_config auf meinem VPS zu erstellen. In der Capistrano config/deploy.rb wird dies before bundler:install aufgerufen.

desc "Create bundle config" 
task :prepare_bundle_config do 
    on roles(:app) do 
    within release_path do 
     execute :bundle, 'config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config --local' 
    end 
    end 
end 

Ich habe die notwendigen Pakete installiert:

postgresql94-server.x86_64 
postgresql94-devel.x86_64 
postgresql94-libs.x86_64 
libpqxx.x86_64 
libpqxx-devel.x86_64 

Hier sind die Capistrano * Steine ​​I

bundle list | grep capistrano 
* capistrano (3.3.5) 
* capistrano-bundler (1.1.4) 
* capistrano-rails (1.1.2) 
* capistrano-rbenv (2.0.3) 
* capistrano-stats (1.1.1) 

installiert haben Was ich hier fehlt erfolgreich mit bundler pg installieren? Bitte hinterlassen Sie einen Kommentar, wenn Sie weitere Informationen benötigen und ich werde diesen Beitrag aktualisieren.

Antwort

18

Die Postgres-Binärdateien sind in dem Pfad nicht. Symlink sie in einem Verzeichnis in Ihrem Pfad und Sie sollten gut sein: ln -s /usr/pgsql-9.4/bin/p* /usr/local/bin.

Hat bauen Sie Postgres oder aus yum installieren?

+0

Kann Ihre benutzerdefinierte Aufgabe erfolgreich und unabhängig durch Capistrano laufen? Was hast du von Capistrano? – JoePasq

+0

Danke für die Antwort: hier ist ein Kern mit der Ausgabe von Capistrano (mit debug) https://gist.github.com/whargrove/03ff94d1b6e7648030ed – whargrove

+0

: prepare_bundle_config kann nicht unabhängig voneinander laufen, weil sie release_path verwendet, so ist es nur verfügbar ist, während der Bereitstellungsaufgabe. – whargrove

0

Ich finde, dass, wenn ich pgsql mit Quellcode zu kompilieren, und PATH ENV nicht mit pgsql/ist configed, diese happends. Sie können es versuchen.