2013-02-19 3 views
9

Я пытаюсь заставить рельсы работать и не могу пройти мимо драгоценного камня binding_of_caller, который пытается установить с другими камнями после запуска sudo gem install rails. Я не думаю, что жемчужина требуется для работы рельсов, но не может понять, как пропустить ее или остановить ее от попытки установить.gem install rails не работает при bind_of_caller gem

Каждый раз, когда список драгоценных камней попадает в binding_of_callers я получаю следующее:

Installing binding_of_callers (0.6.9) with native extensions 

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

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
creating Makefile 

make 
xcrun cc -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin12.0 -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin12.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE  -fno-common  -pipe -fno-common  -O0 -std=c99  -c binding_of_caller.c 
binding_of_caller.c:4:10: fatal error: 'vm_core.h' file not found 
#include "vm_core.h" 
         ^ 
1 error generated. 
make: *** [binding_of_caller.o] Error 1 


Gem files will remain installed in /Users/ericavirtue/.bundler/tmp/54559/gems/binding_of_caller-0.6.9 for inspection. 
Results logged to /Users/ericavirtue/.bundler/tmp/54559/gems/binding_of_caller-0.6.9/ext/binding_of_caller/gem_make.out 
An error occurred while installing binding_of_caller (0.6.9), and Bundler cannot continue. 
Make sure that `gem install binding_of_caller -v '0.6.9'` succeeds before bundling. 

Я бегу OSX 10.8.2 и используя POW веб-сервер с rbenv управлять рубин. Я также управляю ruby ​​1.9.3-p385

ответ

11

Попробуйте обновить перл:

$ bundle update binding_of_caller

+4

, который вызывает ту же ошибку. – Arel

+2

Обратите внимание, что это _is_ ответ, если вы получили эту ошибку при обновлении до Ruby 2.0. Это потому, что вам, вероятно, нужно обновить binding_of_caller до 0.7.1. Найдено здесь: http://www.gavinmorrice.com/blog/posts/37-ruby-2-0-0-an-error-occurred-while-installing-binding_of_caller – Taytay

+0

Возможно, вам нужно запустить 'bundle update' в качестве все .. но да, это так. Благодаря! – Tigraine

-3

Похоже, вы используете Linux. Попробуйте выполнить установку рельсов, сначала установив ruby ​​и rvm. Это может быть причиной устаревшей версии рубина. бросьте в темноте, хотя.

+0

Я запускаю OSX 10.8.2 и используя веб-сервер pow с rbenv для управления ruby. Я также запускаю ruby ​​1.8.7 p-358. Я здесь полностью потерян. Я провел весь день и ночь, пытаясь заставить это работать. Я обновлю вопрос с приведенной выше информацией и попробую обновить свой рубин. – Arel

+0

Теперь я использую ruby ​​1.9.3-p385. Та же проблема. Проблема, насколько я могу судить, - binding_of_caller, поэтому я считаю, что решение включает в себя пропуск или удаление этого драгоценного камня, или как-то решение проблемы выше. – Arel

+0

говорит, что vm_core.h не найден. попробуйте эту установку gem ruby-debug19 - --with-ruby-include = $ rvm_path/src/ruby-1.9.3-p385 – TakaGoto

3

Перед установкой Rails, добавьте драгоценный камень со следующим (также отметить, что имя камень в единственном числе):

$ gem install binding_of_caller 

Затем запустите:

$ bundle update rails 

или:

$ gem install rails 

(или любой другой rbenv предложения)

+0

К сожалению, я даже не могу зайти так далеко. Я получаю сообщение об ошибке, когда пытаюсь установить камень. Я получу какую-то помощь в автономном режиме и отправлю решение, когда у меня есть. – Arel

+0

Вы получаете то же сообщение об ошибке, что и в исходном сообщении? – Rich

1

ОК, так что проблема в том, что версия RBENV рубин не распознается как версия рубин используется в проекте. Поэтому, пытаясь заставить rbenv работать некоторое время, я переключился на RVM, прошел через некоторую отладку и установил некоторые зависимости, у меня был установлен ruby ​​2.0.0p0 и был признан рубином проекта. Тогда я смог расслоить. Поэтому, чтобы ответить на мой вопрос ... Это была проблема с рубиной версией.

1

Был ли прогресс в решении этой проблемы с помощью rbenv?

Я использую rbenv для загрузки jruby 2.0 локально, и я хотел бы продолжать использовать это решение, а не rvm.

Ascended:Ascended foundation3 $ rbenv local 
jruby-1.7.4 
Ascended:Ascended foundation3 $ jruby --version 
jruby 1.7.4 (2.0.0) 2013-05-16 2390d3b on Java HotSpot(TM) 64-Bit Server VM 1.6.0_51-b11-457-11M4509 [darwin-x86_64] 
Ascended:Ascended foundation3 $ gcc --version 
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) 
Copyright (C) 2007 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

Мой ~/.jrubyconf установлен в

compat.version=2.0                           
cext.enabled=true                
errno.backtrace=true 

при попытке установить связывание вызывающего я получаю следующее -

Ascended:Ascended foundation3 $ gem install binding_of_caller -v '0.7.2' 
Building native extensions. This could take a while... 
ERROR: Error installing binding_of_caller: 
     ERROR: Failed to build gem native extension. 

     /Users/Ascended/.rbenv/versions/jruby-1.7.4/bin/jruby extconf.rb 
/Users/Ascended/.rbenv/versions/jruby-1.7.4/lib/ruby/shared/mkmf.rb:1:in `(root)': Use RbConfig instead of obsolete and depreca 
ted Config. 
/Users/Ascended/.rbenv/versions/jruby-1.7.4/lib/ruby/shared/mkmf.rb:1791:in `init_mkmf': Use RbConfig instead of obsolete and deprecated Config. 
/Users/Ascended/.rbenv/versions/jruby-1.7.4/lib/ruby/shared/mkmf.rb:1791:in `init_mkmf': Use RbConfig instead of obsolete and $eprecated Config. 
creating Makefile 

make 
cc -I. -I/Users/Ascended/.rbenv/versions/jruby-1.7.4/lib/native/include -I/Users/Ascended/.rbenv/versions/jruby-1.7.4/lib/nati$e/include/ruby -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE  -fPIC -DTARGET_RT_MAC_CFM=0 -fno-omit-frame-pointer -fno-strict-al$asing -fexceptions -O0 -std=c99 -arch x86_64 -c binding_of_caller.c 
binding_of_caller.c:4:10: fatal error: 'vm_core.h' file not found 
#include "vm_core.h" 
     ^
1 error generated. 
make: *** [binding_of_caller.o] Error 1 


Gem files will remain installed in /Users/Ascended/.rbenv/versions/jruby-1.7.4/lib/ruby/gems/shared/gems/binding_of_caller-0.7$2 for inspection. 
Results logged to /Users/Ascended/.rbenv/versions/jruby-1.7.4/lib/ruby/gems/shared/gems/binding_of_caller-0.7.2/ext/binding_of$caller/gem_make.out 

Теперь в соответствии с ответом, который отмечен Правильно в этом потоке, это проблема с rbenv, но jruby 1.7.4 - это правильная версия, которая получена и работает на уровне 2.0. Разве это не работает? Что я не понимаю?

+0

Проблема, с которой я столкнулась с rbenv, заключалась в том, что она не загружала правильную версию ruby ​​для моей среды. Я бы сделал команду изменить мою рубиновую версию, и ее просто не потребовалось. Этот рубинский вопрос оказался причиной того, что 'binding_of_caller' не будет построен, и именно поэтому я переключился на rvm. Если 'ruby -v' возвращает ожидаемую версию ruby, я не уверен, что вам нужно делать. – Arel

+0

Хорошо, я не мог заставить его работать прошлой ночью, поэтому пока я просто перестаю использовать pry-debugger, но не имея возможности установить такой камень, это значительно снижает способность рубина к интроспекции, мне нужно будет скоро начнется работа. – Theta

+0

Пожалуйста, напишите, если вы это сделаете, и я дам вам галочку, потому что я скорее вернусь к использованию rbenv. – Arel

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