在mac-therubyracer上运行"bundle install"时出错,无法安装

Ami*_*mir 4 macos rubygems ruby-on-rails osx-mavericks

我正在尝试在运行OS X 10.9(Mavericks)的新macbook pro上第一次安装rails,我遇到了安装therubyracer的问题.当我做"捆绑安装"时,我收到此错误:

安装therubyracer(0.10.2)时发生错误,Bundler无法继续.gem install therubyracer -v '0.10.2'在捆绑之前确保成功.

然后我按照他们的指示运行

gem install therubyracer -v '0.10.2'

然后我收到此错误消息:

构建原生扩展.这可能需要一段时间...错误:安装therubyracer时出错:错误:无法构建gem原生扩展.

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb

在-lobjc中检查main()...是创建Makefile

make"DESTDIR ="编译rr.cpp clang:warning:编译期间未使用的参数:' - undynamic'rr.cpp:48:1:warning:control到达非void函数的结尾[-Wreturn-type]} ^ 1警告产生.编译v8.cpp clang:warning:编译期间未使用的参数:' - undynamic'编译v8_array.cpp clang:warning:编译期间未使用的参数:' - undynamic'编译v8_callbacks.cpp clang:warning:编译期间未使用的参数:' - dynamic '编译v8_context.cpp clang:warning:编译期间未使用的参数:' - undynamic'编译v8_date.cpp clang:warning:编译期间未使用的参数:' - undynamic'编译v8_debug.cpp clang:warning:编译期间未使用的参数:' - rdynamic'编译v8_exception.cpp clang:warning:编译期间未使用的参数:' - daynamic'v8_exception.cpp:10:16:警告:未使用的变量'stack'[-Wunused-variable] static void*stack [20]; 生成^ 1警告.编译v8_external.cpp clang:warning:编译期间未使用的参数:' - undynamic'v8_external.cpp:10:9:警告:未使用的变量'references'[-Wunused-variable] VALUE引用; 生成^ 1警告.编译v8_function.cpp clang:warning:编译期间未使用的参数:' - undynamic'编译v8_handle.cpp clang:warning:编译期间未使用的参数:' - undynamic'编译v8_locker.cpp clang:warning:编译期间未使用的参数:' - deynamic 'v8_locker.cpp:45:5:警告:控制到达非空函数的结尾[-Wreturn-type]} ^ v8_locker.cpp:85:5:警告:控制到达非空函数的结尾[-Wreturn-type生成了} ^ 2个警告.编译v8_message.cpp clang:warning:编译期间未使用的参数:' - undynamic'编译v8_object.cpp clang:warning:编译期间未使用的参数:' - undynamic'v8_object.cpp:77:19:warning:unused variable'proto'[ -Wunused-variable]处理proto(rr_rb2v8(prototype)); 生成^ 1警告.编译v8_script.cpp clang:warning:编译期间未使用的参数:' - undynamic'编译v8_string.cpp clang:warning:编译期间未使用的参数:' - undynamic'编译v8_template.cpp clang:warning:编译期间未使用的参数:' - deynamic '编译v8_try_catch.cpp clang:warning:编译期间未使用的参数:' - daynamic'v8_try_catch.cpp:15:14:警告:将类型'v8 :: TryCatch*'的指针从常量布尔表达式初始化为null [-Wbool -conversion]返回false; 生成了^ ~~~~ 1个警告.编译v8_v8.cpp clang:warning:编译期间未使用的参数:' - undynamic'编译v8_value.cpp clang:warning:编译期间未使用的参数:' - undynamic'v8_value.cpp:100:9:warning:unused function'ToInt32'[ -Wunused-function] VALUE ToInt32(VALUE self){^ 1警告生成.编译v8_weakref.cpp clang:warning:编译期间未使用的参数:' - undynamic'链接共享对象v8.bundle clang:错误:没有这样的文件或目录:'/ Library/Ruby/Gems/2.0.0/gems/libv8- 3.3.10.4/lib/libv8/build/v8/libv8.a"化妆:* [v8.bundle]错误1

Gem文件将保留在/Library/Ruby/Gems/2.0.0/gems/therubyracer-0.10.2中以供检查.结果记录到/Library/Ruby/Gems/2.0.0/gems/therubyracer-0.10.2/ext/v8/gem_make.out

我不确定这意味着什么或如何解决这个问题.

我真正想做的就是运行我的rails项目.

谁知道问题是什么?

Leo*_*cci 11

做这个:

$ gem uninstall libv8 # ignore if this fails
$ gem install libv8 -v 3.16.14.3 -- --with-system-v8 # 2013-08 x86_64-darwin-12 (32.6 MB)
Run Code Online (Sandbox Code Playgroud)

同时编辑你的Gemfile并强制推出更新的版本therubyracer

gem "therubyracer", "~> 0.12"
Run Code Online (Sandbox Code Playgroud)

然后再试一次:

$ bundle update
Run Code Online (Sandbox Code Playgroud)

  • @Amir,很高兴听到你解决了你的问题,但我鼓励你阅读我关于使用像rvm这样的事先推荐的帖子. (2认同)

Feu*_*uda 6

奇迹般有效!谢谢/sf/answers/4118957811/

$ brew install v8@3.15
$ bundle config build.libv8 --with-system-v8
$ bundle config build.therubyracer --with-v8-dir=$(brew --prefix v8@3.15)
$ bundle install
Run Code Online (Sandbox Code Playgroud)

@3.15 可以替换为任何其他版本。