2012-02-10 13 views
59

WhenI uruchomić (jako root)gem install str --with-PG-config prace, pakiet nie powiedzie

gem install pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config 

pojawia się następujący komunikat:

#-> gem instal pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config 
Building native extensions. This could take a while... 
Successfully installed pg-0.12.0 
1 gem installed 
Installing ri documentation for pg-0.12.0... 
Installing RDoc documentation for pg-0.12.0... 
#-> 

Kiedy uruchomić pakiet zainstalować:

Installing pg (0.12.0) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

    /usr/local/rvm/rubies/ruby-1.9.2-p290/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 
--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=/usr/local/rvm/rubies/ruby-1.9.2-p290/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 /var/www/simpletrac/vendor/cache/ruby/1.9.1/gems/pg- 0.12.0 for inspection. 
Results logged to /var/www/simpletrac/vendor/cache/ruby/1.9.1/gems/pg-0.12.0/ext/gem_make.out 
An error occured while installing pg (0.12.0), and Bundler cannot continue. 
Make sure that `gem install pg -v '0.12.0'` succeeds before bundling. 

Mam zainstalowane libpq-fe.h w /usr/pgsql-9.1/include/libpq-fe.h. Tak więc próbowałem:

gem install pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config --with-pg-lib=/usr/pgsql-9.1/include/libpq-fe.h but still no go. 

Każda pomoc zostanie bardzo doceniona.

Zainstalowałem również Postgresql91-devel i ruby-devel. Uruchamianie CentOS 6.

Odpowiedz

148

Czy próbowałeś go uruchomić przed uruchomieniem bundle install?

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

Zobacz http://bundler.io/v1.3/bundle_config.html

+8

Jesteś magikiem. Dziękuję bardzo! – YuKagi

+0

Jeśli używasz MacOS + MacPorts, zobacz post Lester dla rozwiązania. – Matthias

+0

Mam ten sam błąd, ale używam bazy danych mysql. Co będzie polecenie pls? –

16

Na wypadek, gdyby ktoś wykorzystywane DarwinPorts zainstalować postgres i mają problemy ze znalezieniem ich pg_config, spróbuj tego:

bundle config build.pg --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config 

Mam nadzieję, że to pomoże ktoś zaoszczędzić trochę czasu. Twoje zdrowie!

+0

Jesteś ratownikiem !!!! –

+0

Naprawiłem to dla mnie, okrzyki! – Matthias

4

Możesz uzyskać ten błąd, jeśli masz zainstalowany pg_config, ale nie ma go w żadnej ścieżce. Możesz dodać go do swojej zmiennej środowiskowej PATH w swoim katalogu ~/.bashrc.

Na przykład.

export PATH=${PATH}:/usr/pgsql-9.2/bin 
+0

Czy może to być wynikiem instalacji ze źródła, zamiast z menedżera pakietów? Pracował dla mnie w każdym razie - Po prostu ciekawy, dlaczego napotkałem problem. – FantasticSponge

3

Musiałem to zrobić, aby naprawić kopalnię na OS X:

export PATH=/opt/local/lib/postgresql84/bin/:$PATH 

I musiałem zrobić to pomimo faktu, że już miałem to w mojej ścieżce:

[[email protected] ~] which psql84 
/opt/local/bin/psql84 

[[email protected] ~] ls -altrh /opt/local/bin/psql84 
lrwxr-xr-x 1 root admin 36B Dec 7 02:15 /opt/local/bin/psql84 -> /opt/local/lib/postgresql84/bin/psql 

Mam nadzieję, że pomaga to innym użytkownikom komputerów Mac z tym problemem.

+0

Ten działał dla mnie, dzięki. – holms

+0

Dzięki temu przetestowałem to rozwiązanie na komputerze Mac Yosemite. – newguy

1

Spróbuj tego:

yum install libpqxx-devel 

Współpracuje z Postgr9.2.

3

Klejnot PostgreSQL nie może znaleźć pliku konfiguracyjnego PostgreSQL. Musisz powiedzieć, gdzie to jest. Najbardziej przyjemnym rozwiązaniem jest, moim zdaniem, pominięcie Brew i MacPorts i po prostu skorzystanie z aplikacji Postgres.Pobrać i zainstalować tutaj:

http://postgresapp.com/

Teraz dodać folder bin do ścieżki:

PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH" 

Można również dodać to do ~/.bash_profile

Teraz zainstalować klejnot:

gem install pg 

powinien przebiegać sprawnie.

4

Jestem na Mac i używać Homebrew, tak aby rozwiązać ten problem Właśnie zainstalowałem PostgreSQL z wywaru:

brew install postgresql 

a następnie zainstalować gem.

2

Używam Arch Linux i miałem podobne problemy. Użyto sudo pacman -S libpqxx i ponownie zainstalowałem pg gem, a następnie uruchomiono ponownie bundle install i tym razem w końcu udało się!

+0

Używam również Arch Linux, a to rozwiązało mój problem! –

+0

2016, postgresql 9.5 i pg 0.18.4 nie wydaje się działać z wymienionym rozwiązaniem (używam również arch-linux). –

1

Ten link zasugerował użycie:

gem install pg --pre 

nie mogłem dostać pg gem zainstalować przez kilka dni, ale ta metoda ostatecznie pracował dla mnie. Mam nadzieję, że to będzie pomocne.

9

Jeżeli nie jesteś pewien gdzie pg_config jest, i zakładając, że jesteś na Linux lub Mac, można uruchomić następujące polecenie:

which pg_config 

ten powróci ==>/usr/pgsql-9.1/bin/pg_config

używać teraz ta ścieżka jako

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

Sporządzono teraz bundle install

3

Kopiuj Wklej &:

bundle config build.pg --with-pg-config=`which pg_config` && bundle 

Szczegóły:

wizyta uzyskać więcej informacji:

Pierwszą rzeczą jaką należy zrobić, to upewnić się, że „pg_config” narzędzie, które pochodzi z PostgreSQL jest na swojej drodze. Jeśli nie jest, lub ten, który jest pierwszy na twojej ścieżce, nie jest tym, który został zainstalowany z Postgresem, który chcesz zbudować, możesz podać ścieżkę do niego za pomocą opcji -with-pg-config.

Źródło:https://github.com/ged/ruby-pg/blob/1f274f68c16f1af1c642db1b9d3d28aef169dc84/ext/extconf.rb#L27

0

Upewnij się, że zainstalowany postgress. jeśli nie, zainstaluj go jako pierwszy. Na przykład za pomocą terminala.

brew install postgresql 

Po tym okresie

bundle install 
Powiązane problemy