2016-07-09 5 views
1

Я переключился с RVM на rbenv на теперь используя chruby. Я убедился, что RVM и rbenv были полностью удалены. Я использую ruby ​​2.2.5. У меня возникают проблемы, когда расслоение установка:У меня проблема с управлением ruby ​​/ gem и postgres libpq

Установка стр 0.18.4 с родными расширениями

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb 
checking for pg_config... yes 
Using config values from /usr/local/bin/pg_config 
checking for libpq-fe.h... yes 
checking for libpq/libpq-fs.h... yes 
checking for pg_config_manual.h... yes 
checking for PQconnectdb() in -lpq... no 
checking for PQconnectdb() in -llibpq... no 
checking for PQconnectdb() in -lms/libpq... no 
Can't find the PostgreSQL client library (libpq) 
*** 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. 

У меня есть вопрос о том, как мои рубиновые камни управляются. Я замечаю, что пакетщик ищет в системном файле (Ruby.framework/Versions/2.0) для драгоценных камней, но я использую ruby ​​2.2.5. Я также заметил, что драгоценные файлы устанавливаются в рубин/2.2.5/рубин/2.0.0/драгоценные камни - (см код ниже) -

Gem files will remain installed in /Users/phillipjones/.gem/ruby/2.2.5/ruby/2.0.0/gems/pg-0.18.4 for inspection. 
Results logged to /Users/phillipjones/.gem/ruby/2.2.5/ruby/2.0.0/gems/pg-0.18.4/ext/gem_make.out 

Вот мой Gem окр:

ruby 2.2.5p319 (2016-04-26 revision 54774) [x86_64-darwin14] 
~/w/Rafftopia ❯❯❯ gem env 
RubyGems Environment: 
    - RUBYGEMS VERSION: 2.4.5.1 
    - RUBY VERSION: 2.2.5 (2016-04-26 patchlevel 319) [x86_64-darwin14] 
    - INSTALLATION DIRECTORY: /Users/phillipjones/.gem/ruby/2.2.5 
    - RUBY EXECUTABLE: /Users/phillipjones/.rubies/ruby-2.2.5/bin/ruby 
    - EXECUTABLE DIRECTORY: /Users/phillipjones/.gem/ruby/2.2.5/bin 
    - SPEC CACHE DIRECTORY: /Users/phillipjones/.gem/specs 
    - SYSTEM CONFIGURATION DIRECTORY: /Users/phillipjones/.rubies/ruby-2.2.5/etc 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-darwin-14 
    - GEM PATHS: 
    - /Users/phillipjones/.gem/ruby/2.2.5 
    - /Users/phillipjones/.rubies/ruby-2.2.5/lib/ruby/gems/2.2.0 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - https://rubygems.org/ 
    - SHELL PATH: 
    - /Users/phillipjones/.gem/ruby/2.2.5/bin 
    - /Users/phillipjones/.rubies/ruby-2.2.5/lib/ruby/gems/2.2.0/bin 
    - /Users/phillipjones/.rubies/ruby-2.2.5/bin 
    - /usr/local/bin 
    - /usr/local/sbin 
    - /usr/bin 
    - /bin 
    - /usr/sbin 
    - /sbin 

Я пробовал много предложений для решения этой проблемы безрезультатно. Любая помощь будет принята с благодарностью.

ответ

0

Драгоценный камень pg содержит расширение для интерпретатора Ruby, написанное на C. Когда вы устанавливаете драгоценный камень, расширение компилируется с помощью компилятора C, установленного в вашей системе. Когда вы запускаете приложение и подключается к серверу PostgreSQL, это расширение загружается и выполняется как часть Ruby.

Однако для расширения необходимы библиотеки PostgeSQL и файлы заголовков C, которые необходимо скомпилировать. Bundler не может их найти и не может скомпилировать расширение.

Вы должны сообщить Bundler, где найти библиотеки для компиляции расширения pg. Он может получить эту информацию из программы pg_config, поэтому вам нужно сообщить ей, где найти pg_config. Предполагая, что вы запустите последнюю версию PostgreSQL:

bundle config build.pg -- --with-pgconfig=/usr/local/Cellar/postgresql/9.5.3/bin/pg_config 

Выполнить эту команду, а затем bundle install снова. Он должен работать.

Когда вы используете любого из менеджеров версий Ruby, вам больше не нужно использовать системный Ruby от Ruby.framework/Versions/2.0. Администратор версии Ruby должен сделать это, когда вы запускаете ruby, вы используете специальную версию, которую вы выбрали.

+0

мой ruby ​​-v говорит 2.2.1, но когда я устанавливаю пакет, он показывает мой рубиновый System. – phillipjones1

+0

~/w/Rafftopia ❯❯❯ ruby ​​-v ruby ​​2.2.1p85 (2015-02-26 revision 49769) [x86_64-darwin14] ~/w/Rafftopia ❯❯❯ комплект установить /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby ​​/ 2.0.0/rubygems/dependency.rb: 296: in 'to_specs ': Не удалось найти« bundler »(> = 0) среди 8 общих драгоценных камней (ов) Gem :: LoadError) /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb307:in – phillipjones1

+0

, который не решил мою проблему, но спасибо за предложение. – phillipjones1