2014-06-26 3 views
6

Dieser Fehler scheint auf Windows-Boxen üblich, aber meine Amazon Linux EC2-Instanz diesen Fehler wirft, wenn ich npm install pg:Fehler bei der Installation von Node-Postgres auf Amazon Linux. Fehlende pg_config.h Datei

../src/binding.cc:1:23: fatal error: pg_config.h: No such file or directory 
#include <pg_config.h> 
        ^
compilation terminated. 
make: *** [Release/obj.target/binding/src/binding.o] Error 1 
make: Leaving directory `/home/ec2-user/macros/test/stateHash/node_modules/pg/build' 
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2 
gyp ERR! stack  at ChildProcess.onExit (/usr/lib/node_modules/node-gyp/lib/build.js:267:23) 
gyp ERR! stack  at ChildProcess.EventEmitter.emit (events.js:98:17) 
gyp ERR! stack  at Process.ChildProcess._handle.onexit (child_process.js:807:12) 
gyp ERR! System Linux 3.4.82-69.112.amzn1.x86_64 
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" 
gyp ERR! cwd /home/ec2-user/macros/test/stateHash/node_modules/pg 
gyp ERR! node -v v0.10.28 
gyp ERR! node-gyp -v v0.10.6 
gyp ERR! not ok 

Ich bin auf Amazon Linux 2.014,03, und es ist ein Mikro Instanz läuft Knoten 0.10.28.

Postgres 9.2.7 wird von den Amazon-Repos installiert. Insbesondere die postgresql9* Pakete.

Auf einem frischen updatedb, locate pg_config kehrt

/usr/bin/pg_config 
/usr/share/locale/cs/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/de/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/es/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/fr/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/it/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/ja/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/ko/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/nb/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/pl/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/pt_BR/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/ro/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/ru/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/sv/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/ta/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/tr/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/zh_CN/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/locale/zh_TW/LC_MESSAGES/pg_config-9.2.mo 
/usr/share/man/man1/pg_config.1.gz 

Aber locate pg_config.h nichts zurückkehrt.

Irgendwelche Ideen?

Antwort

7

Die postgresql9, postgresql9-libs und postgresql9-server wurden standardmäßig installiert, aber nicht postgresql9-devel.

Die von node-postgres benötigten Header-Dateien befinden sich im fehlenden Entwicklungspaket. Die folgenden Schritte festgelegt mein Problem:

  1. Entfernen Sie die node-postgres Verzeichnis:

    $ rm -rf node_modules/pg

  2. das Paket postgres Entwicklung Installieren von den repos (Ihre Version übereinstimmen sorgfältig - die Amazon repos sind ein einziges Chaos wenn es um postgres geht):

    $ sudo yum install postgresql9-devel

  3. Neu installieren node-postgres (ich tue es lokal verwenden könnten Sie die -g Option):

    $ npm install pg

Die pg_config.h Datei dort sein sollte, so sollte die Installation funktionieren!

+2

Ich kann nicht glauben, dass dies nicht mehr upvotes hat. Löste mein Problem. – Sebastian