2013-03-05 3 views
4

я, наконец, удалось получить «пг» камень установить после того, как тратить часы, пытаясь выяснить, почему это не работает ...не удается установить стр драгоценный камень

в конце я вошел sudo env ARCHFLAGS="-arch x86_64" gem install pg -v 0.12.2 -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config, который работал как шарм. Но теперь у меня все еще такая же ошибка, когда я пытаюсь подключиться к поставщику - так что, я думаю, я действительно не решал проблему? Во всяком случае, вот что bundle install говорит:

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

      /Users/thomas/.rvm/rubies/ruby-1.9.3-p392/bin/ruby extconf.rb --with-pg-config=/usr/pgsql-9.2/bin/pg_config 
    Using config values from /usr/pgsql-9.2/bin/pg_config 
    sh: /usr/pgsql-9.2/bin/pg_config: No such file or directory 
    sh: /usr/pgsql-9.2/bin/pg_config: No such file or directory 
    checking for libpq-fe.h... yes 
    checking for libpq/libpq-fs.h... yes 
    checking for PQconnectdb() in -lpq... yes 
    checking for PQconnectionUsedPassword()... yes 
    checking for PQisthreadsafe()... yes 
    checking for PQprepare()... yes 
    checking for PQexecParams()... yes 
    checking for PQescapeString()... yes 
    checking for PQescapeStringConn()... yes 
    checking for PQgetCancel()... yes 
    checking for lo_create()... yes 
    checking for pg_encoding_to_char()... yes 
    checking for PQsetClientEncoding()... yes 
    checking for rb_encdb_alias()... yes 
    checking for rb_enc_alias()... yes 
    checking for struct pgNotify.extra in libpq-fe.h... yes 
    checking for unistd.h... yes 
    checking for ruby/st.h... yes 
    creating extconf.h 
    creating Makefile 

make 
    compiling compat.c 
    compiling pg.c 
    pg.c: In function ‘pgconn_wait_for_notify’: 
    pg.c:2117: warning: ‘rb_thread_select’ is deprecated (declared at /Users/thomas/.rvm/rubies/ruby-1.9.3-p392/include/ruby-1.9.1/ruby/intern.h:380) 
    pg.c: In function ‘pgconn_block’: 
    pg.c:2592: warning: format not a string literal and no format arguments 
    pg.c:2598: warning: ‘rb_thread_select’ is deprecated (declared at /Users/thomas/.rvm/rubies/ruby-1.9.3-p392/include/ruby-1.9.1/ruby/intern.h:380) 
    pg.c:2607: warning: format not a string literal and no format arguments 
    linking shared-object pg_ext.bundle 
    ld: warning: directory not found for option '-L-Wl,-undefined,dynamic_lookup' 
    Undefined symbols for architecture x86_64: 

.... 

    ld: symbol(s) not found for architecture x86_64 
    collect2: ld returned 1 exit status 
    make: *** [pg_ext.bundle] Error 1 

Я думаю, что проблема в том, что пакетирования пытается установить камень с помощью pg_config из другой установки postresql (который я удалила). Есть ли способ гарантировать, что связной путь использует правильный путь?

+2

нашел решение, мне нужно запустить 'расслоение конфигурации build.pg --with-pg-config =/Applications/Postgres.app/Содержание/MacOS/bin/pg_config', прежде чем я смог запустить 'bund le install' –

+1

О, хорошо знать. Я почти не использую Bundler, но я добавлю это в README, поэтому он, надеюсь, поможет другим людям, которые его используют. –

+0

Просто для полноты - путь, о котором я говорил, необходим в сочетании с [Postgres App] (http://postgresapp.com/) –

ответ

7

Я застрял на своем комплекте в течение 3 дней. Пробовал все как добавление env ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config =/usr/local/Cellar/postgresql/9.3.5_1/bin/pg_config

Я был в состоянии видеть pg gem, установленный после этой команды, но все же он не устанавливался из установки пакета, что было больно, потому что я не знаю, что писать в Gemfile, кроме gem 'pg'

Вещь, которая, наконец, работала для меня, заключалась в том, чтобы найти, что мой pg_config был в /Library/PostgreSQL/9.3/bin/pg_config, и по умолчанию установка пакета Gemfile выглядит в/usr/local/bin/pg_config

Я только что выполнил следующую команду и волшебство. bundle config build.pg --with-pg-config =/Library/PostgreSQL/9.3/bin/pg_config

+0

Не удалось найти каталог Gemfile или .bundle /. спасибо за помощь – lopezdp

3

Некоторая коррекция. Для тех, кто установил postgres, используя доморощенный.

1) написать следующую строку в файл ~/.bash_profile

экспорт ARCHFLAGS = "- арка x86_64"

2) перезапуска консоли

3) выполнить следующую команду

комплект конфигурации build.pg --with-pg-config =/usr/local/Cellar/postgresql/9.3.5_1/bin/pg_config (это должно быть ваш пг конфигурации адрес может отличаться для каждого в зависимости от версии Postgres)

4) Установите стр раз локально, выполнив команду

Судо окр ARCHFLAGS = «- арка x86_64» камень установить стр - - с-Pg-конфиг =/USR/местные/погреб/PostgreSQL/9.3.5_1/бен/pg_config

5) комплект установки

+0

КАК вы пишете следующую строку:. bash_profile ... будет УДИВИТЕЛЬНЫ !!! – lopezdp

Смежные вопросы