安装 ruby​​racer 时出错

Posted

技术标签:

【中文标题】安装 ruby​​racer 时出错【英文标题】:Getting error while installing therubyracer 【发布时间】:2012-11-27 00:53:43 【问题描述】:

我在捆绑安装我的更新时收到错误消息。这是我的gemfile:

source 'https://rubygems.org'

gem 'rails', '3.2.1'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'mysql2'
gem 'libv8'
gem 'therubyracer'
gem 'haml'
gem 'haml-rails'
gem 'sass-rails',   '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'compass-rails'
gem 'chosen-rails'
gem "bootstrap-wysihtml5-rails", "~> 0.3.1.10"
gem 'hpricot'
gem "rest-open-uri", "~> 1.0.0"
gem 'jquery-datatables-rails', github: 'rweng/jquery-datatables-rails'

# Gems used only for assets and not required
# in production environments by default.
group :assets do

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer'

  gem 'uglifier', '>= 1.0.3'
  gem "commonjs", "~> 0.2.6"
  gem "less", "~> 2.2.2"
  gem "less-rails", "~> 2.2.6"
end


gem 'jquery-rails'
gem 'simple_form'
gem 'client_side_validations'
gem 'client_side_validations-simple_form'

# To use ActiveModel has_secure_password
gem 'bcrypt-ruby', '~> 3.0.0'

这是我在生产环境中运行 bundle install 命令后遇到的错误:

安装 ruby​​racer (0.11.0) 和 Bundler 时出错 无法继续。确保gem install therubyracer -v '0.11.0' 在捆绑之前成功。

【问题讨论】:

在运行 bundle install 之前您是否尝试过手动安装 libv8?这是您收到的唯一错误消息吗? 【参考方案1】:

我做了以下对我有用的事情:

我从我的 Gemfile 中注释掉了 therubyracer 运行“捆绑安装” 使用“gem install therubyracer”安装了最新版本的 therubyracer(在撰写本文时为 0.11.2) 我取消注释 therubyracer 以将其放回我的 Gemfile 中 再次运行“捆绑安装”,一切正常

【讨论】:

我跑了bundle update therubyracer,这对我有用。我猜我的 v8 安装与我正确的 therubyracer 版本不匹配。 2018 我在这里... 在 AWS Cloud9 上 gem install therubyracer 导致 Successfully installed therubyracer-0.12.3 将 gem 放回我的 gemfile 导致 Bundler could not find compatible versions for gem "libv8": + In Gemfile: mini_racer was resolved to 0.1.3, which depends on libv8 (~> 5.0) + therubyracer (= 0.12.3) was resolved to 0.12.3, which depends on libv8 (~> 3.16.14.15) + @987654328 @ + Could not find gem 'mini_racer' in any of the sources.【参考方案2】:

Gemfile 中包含libv8 似乎可以解决这个问题:

gem 'libv8', '~> 3.11.8.3'

通过https://github.com/cowboyd/therubyracer/issues/215

【讨论】:

【参考方案3】:

我做了一个 gem 卸载 therubyracer 和 gem 卸载 libv8,然后从 gemfile 中删除 libv8 并只使用 therubyracer,然后运行 ​​'bundle install'

【讨论】:

【参考方案4】:
group :assets do
  gem 'therubyracer'
end

如果还是不行,试试安装NodeJS

【讨论】:

【参考方案5】:

可能您的 libv8 版本和 therubyracer 版本不匹配。

所以,您可以在 Gemfile 中包含正确的 libv8 版本,这类似于 jibiel的解决方案

gem 'libv8', '~> 3.11.8.3'

但是,我更愿意执行这两个步骤,因此,您不必担心找到合适的 libv8 版本:

Gemfile

gem 'therubyracer'

terminal

gem uninstall libv8
bundle install

而且,这就是我为解决同样的问题所做的工作

【讨论】:

以上是关于安装 ruby​​racer 时出错的主要内容,如果未能解决你的问题,请参考以下文章

安装 ruby​​racer 时出错

Rails:安装 ruby​​racer 时出错

修复 Mavericks 上的 ruby​​racer/libv8 (0.12.1) 安装

惰性符号绑定失败 Ruby Racer

无法安装 ruby​​racer gem

therubyracer 安装错误