Nie można zainstalować pg gem w Mavericks z Postgres.aplikacja

Próbuję zainstalować PG gem do użytku z Postgres.aplikacja na moim lokalnym komputerze. Prowadzę Mavericks.

Postgres.aplikacja jest zainstalowana i działa dobrze, ale nie mogę uruchomić klejnotu. Zrobiłem:
  1. użyto polecenia ' env ARCHFLAGS=" - arch x86_64 " Gem install pg -- -- with-pg-config = /Applications / Postgres.app / Contents / MacOS/ bin / pg_config ' z Postgres.dokumentacja aplikacji
  2. Zaktualizowano Homebrew i zainstalowano Apple GCC 4.2
  3. zainstalowany narzędzia programistyczne Xcode
  4. zaktualizowałem moją $PATH, aby odwoływać się do obu Postgresów.katalogi bin i lib aplikacji
Wszystkie bez powodzenia. Oto konkretny komunikat o błędzie, który otrzymuję:
Building native extensions with: '--with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config'
This could take a while...
ERROR:  Error installing pg:
    ERROR: Failed to build gem native extension.

    /Users/Brian/.rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Using config values from /Applications/Postgres.app/Contents/MacOS/bin/pg_config
sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
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/Brian/.rvm/rubies/ruby-2.0.0-p353/bin/ruby
    --with-pg
    --without-pg
    --with-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}/
Będę wdzięczny za każdą pomoc. Dzięki!
Author: blundin, 2013-11-26

8 answers

Prawdopodobnie masz złą ścieżkę dla --with-pg-config, sprawdź, czy rzeczywiście tam jest.

Możesz znaleźć właściwą ścieżkę do pg_config za pomocą:

find /Applications -name pg_config

W najnowszym Postgres.wersja aplikacji ścieżka jest:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config
 240
Author: Tom De Leu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-28 12:30:51

W moim przypadku (uruchamianie Postgres.app v9.3.4.2) wydawało się, że działa tylko podczas poprzedzania FLAG architektury środowiska:

env ARCHFLAGS="-arch x86_64" gem install pg -- \
--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config 
 16
Author: Marius Butuc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-22 20:41:58

[[2]}będąc na nowiutkim Macu, oto co musiałem zrobić:

  1. Zainstaluj narzędzia Xcode z app store
  2. Otwórz Narzędzia Xcode i zaakceptuj licencję
  3. Teraz uruchom (miejmy nadzieję, że przyszłościowe polecenie):

    version=$(ls /Applications/Postgres.app/Contents/Versions/ | tail -1) gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/$version/bin/pg_config .

Jeśli masz problemy, możesz trochę rozwiązać, sprawdzając rzeczywisty błąd w mkmf.log, który możesz znaleźć uruchamiając (jeśli używasz rvm):

cd ~/.rvm ; find . -name mkmf.log | grep pg
 13
Author: Louis Sayers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-17 23:10:54

Udało mi się zainstalować pg za pomocą tego polecenia

    gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

I found my path by running

    sudo find / -name "pg_config"

I pomyślnie zainstalowałem pg-0.17.1

 5
Author: ylemp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-29 05:00:27

Aby rozwiązać ten problem zainstalowałem postgres używając homebrew używając następującego w oknie Terminala:

brew install postgres

Homebrew można znaleźć tutaj

Http://brew.sh

 2
Author: Geoff Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-03 20:42:27

To mi pomogło:

gem install pg -- --with-pg-config=`which pg_config`
 1
Author: Gerry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-08 11:50:09

Dodanie katalogu bin postgress do ścieżki również działa. po prostu dodaj kosz do PATA w ten sposób. przy ostatnich instalacjach najnowsze dowiązanie symboliczne upewnia się, że ścieżka ta powinna być 'stabilna'dla przyszłych aktualizacji wersji.

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
 1
Author: koen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-14 21:41:11

Na przyszłość, ponieważ wielu z nas publikuje nowe ścieżki dla nowych numerów wersji:

Obecnie widzę link symboliczny o nazwie latest w /Applications/Postgres.app/Contents/Versions/.

Powinieneś być w stanie po prostu zrobić:

$ gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config

I zapomnij o numerze wersji. Może to nie dotyczy każdej (starszej) wersji, ale sam szukałem fragmentu, który mógłbym zapisać i ponownie wykorzystać.

 0
Author: Gabriel Osorio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-03 16:23:58