7

我最近将 OSX 升级到 Mountain Lion (10.8) 和 Xcode (4.4),但在尝试让我的 rails 环境正常工作时遇到了问题。我开始运行并在安装库bundle install时遇到错误。libv8以下是完整错误的粘贴。我四处搜索并寻找类似的问题,但到目前为止我在 stackoverflow 上发现的内容并未适用于我的问题。以下是我迄今为止尝试过的几件事无济于事:

  • 安装 Xcode 命令行工具
  • 安装 MySQL
  • 安装 X11
  • 通过 gemfile 安装不同版本的 libv8

现在我的问题似乎超出了我的红宝石技能。如果有人对我可以尝试的方法有什么想法或遇到类似问题,我希望您能提供帮助。谢谢!

这是我的 gemfile 的样子:

source 'https://rubygems.org'

gem 'rails', '3.2.6'
gem 'bundler'
gem 'rake'
gem 'sqlite3'
gem 'haml'
gem 'nokogiri'
gem 'whenever'
gem 'mysql'
gem 'mysql2'
gem 'jquery-rails'
gem 'capistrano'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
end

这是尝试安装 gems 时的错误日志:

sudo bundle install
Password:
Fetching source index for https://rubygems.org/
Using rake (0.9.2.2) 
Using i18n (0.6.0) 
Using multi_json (1.3.6) 
Using activesupport (3.2.6) 
Using builder (3.0.0) 
Using activemodel (3.2.6) 
Using erubis (2.7.0) 
Using journey (1.0.4) 
Using rack (1.4.1) 
Using rack-cache (1.2) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.3) 
Using actionpack (3.2.6) 
Using mime-types (1.19) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.4.4) 
Using actionmailer (3.2.6) 
Using arel (3.0.2) 
Using tzinfo (0.3.33) 
Using activerecord (3.2.6) 
Using activeresource (3.2.6) 
Using bundler (1.0.15) 
Using highline (1.6.13) 
Using net-ssh (2.5.2) 
Using net-scp (1.0.4) 
Using net-sftp (2.0.5) 
Using net-ssh-gateway (1.1.0) 
Using capistrano (2.12.0) 
Using chronic (0.6.7) 
Using coffee-script-source (1.3.3) 
Using execjs (1.4.0) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using json (1.7.3) 
Using rdoc (3.12) 
Using thor (0.15.4) 
Using railties (3.2.6) 
Using coffee-rails (3.2.2) 
Using haml (3.1.6) 
Using jquery-rails (2.0.2) 
Installing libv8 (3.3.10.4) with native extensions /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/installer.rb:482:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
*** 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
    --without-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=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
extconf.rb:13: uninitialized constant Gem (NameError)
Checking for Python...

Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/libv8-3.3.10.4 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/libv8-3.3.10.4/ext/libv8/gem_make.out
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/installer.rb:445:in `each'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/installer.rb:445:in `build_extensions'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/installer.rb:197:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/source.rb:101:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:78:in `preserve_paths'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/source.rb:91:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/installer.rb:58:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:93:in `with_build_args'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/installer.rb:57:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/spec_set.rb:12:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/spec_set.rb:12:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/installer.rb:49:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/installer.rb:8:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/cli.rb:222:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor/task.rb:22:in `send'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor/task.rb:22:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor.rb:246:in `dispatch'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor/base.rb:389:in `start'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/bin/bundle:13
    from /usr/bin/bundle:19:in `load'
    from /usr/bin/bundle:19
4

5 回答 5

7

尝试添加

gem 'therubyracer', '0.11.0beta5'
gem 'libv8', '~> 3.11.8'

到您的 Gemfile。它对我有帮助。

于 2012-07-27T10:16:52.780 回答
4

这是有关如何在 10.8 上运行 rails 的快速指南:http ://robots.thoughtbot.com/post/27985816073/the-hitchhikers-guide-to-riding-a-mountain-lion

从指南:

如果您需要安装任何早于 1.9.3 的 Ruby,例如 1.9.2、1.8.7 或 REE,则需要安装 GCC 4.2。

于 2012-07-26T20:55:33.497 回答
1

好的,经过一番挖掘,发现我不是唯一一个有问题的人,我找到了解决方案。最终,这是因为“therubyracer”gem 引用了一个未在 Mountain Lion 上编译的 libv8 版本。修复是更新 gem 以使用 gem 的 beta 版本,该版本使用更新版本的 libv8。这是 github 上问题的链接:https ://github.com/cowboyd/therubyracer/issues/181

我保留了一份关于让轨道重新启动和运行的整个过程的婴儿床笔记清单,这里有一个简短的清单,供任何人参考。

  • 卸载并重新安装 Brew(它不会更新到 0.9 brew update,因此需要手动重新安装)
  • 安装 @Joe 提到的不再包含的 GCC 编译器 - chown /Library/Caches 目录
  • 安装 MySQL
  • 安装 X11
  • 更新 Gemfile 以使用 'therubyracer' gem "therubyracer", "~> 0.11.0beta5" 的 beta 版本
  • 修复 Nokigiri 和 LibXML 冲突的问题,如下所述: 警告:Nokogiri 是针对 LibXML 版本 2.7.3 构建的,但已动态加载 2.7.8

bundle install赢!

于 2012-07-26T22:52:24.910 回答
0

我有几个建议。rvm使用 Ruby 的系统版本或rbenv代替系统版本可能会有所帮助:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

另一个建议是使用最新版本的 libv8 和将针对它进行编译的 therubyracer 的预发布版本。

于 2012-07-26T22:20:57.280 回答
0

虽然它没有更新到最新的构建环境。(Xcode 4.4),按照 这个答案(关于问题:使用 Xcode 4.3.1 在 Mac 上更新 Ruby 的问题)可能会有所帮助。

虽然 Xcode 版本不同,但基本设置相同。

我正在尝试使用 Xcode 4.4 构建环境,此时特定 gem(capybara-webkit) 存在小问题。将更新答案。

于 2012-07-26T23:32:08.550 回答