2015-12-21 18 views
9

Próbuję zainstalować pakiet, ale z jakiegoś dziwnego powodu, gem pg zwraca następujący błąd na zainstalowanie:Nie można zainstalować pg gem on Rails

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

    /Users/username/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20151221-23315-1tkv3fd.rb 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 
    --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=/Users/username/.rvm/rubies/ruby-2.2.1/bin/$(RUBY_BASE_NAME) 
    --with-pg 
    --without-pg 
    --enable-windows-cross 
    --disable-windows-cross 
    --with-pg-config 
    --without-pg-config 
    --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 

extconf failed, exit code 1 

Gem files will remain installed in /Users/username/.rvm/gems/ruby-2.2.1/gems/pg-0.18.4 for inspection. 
Results logged to /Users/username/.rvm/gems/ruby-2.2.1/extensions/x86_64-darwin-15/2.2.0/pg-0.18.4/gem_make.out 

Czy ktoś może mi pomóc zainstalować ten klejnot i czy mój pakiet zakończy się pomyślnie?

+1

Googling dla komunikatu o błędzie (dobry pierwszy krok dla czegoś podobnego), tj. Dla * "Nie można znaleźć nagłówka" libpq-fe.h "* ujawnia wiele pytań na temat SO dla tego, np. Http: // stackoverflow.com/questions/6040583/cant-find-the-libpq-fe-h-header-when-trying-to-install-pg-gem –

+2

najpierw przetrzyj 'bundle config build.pg --with-pg-config = /Applications/Postgres.app/Contents/Versions/(YOUR POSTGRES VERSION)/bin/pg_config' następnie 'bundle install' –

+0

Dzięki @AwladLiton, który działał :) – gespinha

Odpowiedz

5

Musisz skonfigurować str poprawnie.

Run:

bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/(YOUR POSTGRES VERSION)/bin/pg_config 

Następnie spróbuj uruchomić pakiet:

bundle install 
14

Powinieneś prawdopodobnie zainstalować biblioteki programowania PostgreSQL.

Jeśli jesteś na Ubuntu to pomoże:

sudo apt-get install libpq-dev 

Na komputerze Mac:

brew install postgresql 
+1

Wygląda na to, że są na OS X. –

+0

Zobaczyłem/Users/... po fakcie. Dzięki za wskazanie. – azazeal

+0

Dla Alpine użyj ['postgres-dev'] (https://pkgs.alpinelinux.org/package/edge/main/x86/postgresql-dev):' apk add postgresql-dev' – gabe

0

Jeśli zainstalowano biblioteki klienta PostgreSQL, to trzeba powiedzieć, gem, gdzie szukać plików należą, który go robi, pytając pg_config. Używam mały plik shell aby ułatwić gem znaleźć tego narzędzia:

#!/bin/sh -x 

PATH=/Library/PostgreSQL/9.4/bin:$PATH 
gem install pg [email protected] 

Można też ręcznie ustawić PATH, aby zawsze zawierać katalogu bin PostgreSQL, który powinien rozwiązać problem na stałe.

Po uaktualnieniu PostgreSQL ta ścieżka ulegnie zmianie, więc może być konieczna ponowna instalacja pg i/lub zmiana ustawienia zmiennej PATH.

Po zainstalowaniu pg, dalsze aktualizacje gem będą mogły zostać zainstalowane bez ponownego uruchamiania skryptu.

Powiązane problemy